DLibrary.hpp
1 //
3 // Pluma - Plug-in Management Framework
4 // Copyright (C) 2010-2012 Gil Costa (gsaurus@gmail.com)
5 //
6 // This software is provided 'as-is', without any express or implied warranty.
7 // In no event will the authors be held liable for any damages arising from the use of this software.
8 //
9 // Permission is granted to anyone to use this software for any purpose,
10 // including commercial applications, and to alter it and redistribute it freely,
11 // subject to the following restrictions:
12 //
13 // 1. The origin of this software must not be misrepresented;
14 // you must not claim that you wrote the original software.
15 // If you use this software in a product, an acknowledgment
16 // in the product documentation would be appreciated but is not required.
17 //
18 // 2. Altered source versions must be plainly marked as such,
19 // and must not be misrepresented as being the original software.
20 //
21 // 3. This notice may not be removed or altered from any source distribution.
22 //
24 
25 #ifndef PLUMA_DYNAMIC_LIBRARY_HPP
26 #define PLUMA_DYNAMIC_LIBRARY_HPP
27 
29 // Headers
31 #include <Pluma/Config.hpp>
32 #include <string>
33 
34 // include OS dependent support for DLL
35 #ifdef PLUMA_SYS_WINDOWS
36  #include <Windows.h>
37 #else
38  #include <dlfcn.h>
39 #endif
40 
41 
42 
43 namespace pluma{
44 
49 class DLibrary{
50 
51 
52 public:
53 
62  static DLibrary* load(const std::string& path);
63 
70  ~DLibrary();
71 
81  void* getSymbol(const std::string& symbol);
82 
83 
84 private:
85 
94  DLibrary();
95 
104  DLibrary(void* handle);
105 
106 
107 
109 // Member data
111 
112 
113 private:
114 
115  void* handle;
116 
117 };
118 
119 
120 } // namespace pluma
121 
122 
123 #endif // PLUMA_DYNAMIC_LIBRARY_HPP
static DLibrary * load(const std::string &path)
Load a library.
Definition: DLibrary.cpp:37
Manages a Dynamic Linking Library.
Definition: DLibrary.hpp:49
void * getSymbol(const std::string &symbol)
Get a symbol from the library.
Definition: DLibrary.cpp:79
~DLibrary()
Destructor.
Definition: DLibrary.cpp:67