EventAnalysis  1.0.0
DynamicLoader.h
Go to the documentation of this file.
1 /*
2  * DynamicLoader.h
3  *
4  * Created on: 3 Aug 2017
5  * Author: Nicola Mori
6  */
7 
10 #ifndef DYNAMICLOADER_H_
11 #define DYNAMICLOADER_H_
12 
13 #include <string>
14 #include <vector>
15 
16 namespace EA {
17 
26 
27 public:
33 
42  template <class T> bool AddPluginFolders(const T &foldersList);
43 
71  bool LoadPlugin(const std::string &pluginName);
72 
79  void AutoLoad(const std::string &autoLoadFolder = "");
80 
81 private:
82  std::vector<std::string> _pluginFolders;
83  std::vector<void *> _files; // Opaque handles to the opened files
84 };
85 
86 template <class T> bool DynamicLoader::AddPluginFolders(const T &folders) {
87  std::copy(folders.begin(), folders.end(), std::back_inserter(_pluginFolders));
88  return true;
89 }
90 
91 } // namespace EA
92 
93 #endif /* DYNAMICLOADER_H_ */
~DynamicLoader()
Destructor.
Definition: DynamicLoader.cpp:28
void AutoLoad(const std::string &autoLoadFolder="")
Loads all the shared libraries in a given folder.
Definition: DynamicLoader.cpp:84
std::vector< void * > _files
Definition: DynamicLoader.h:83
std::vector< std::string > _pluginFolders
Definition: DynamicLoader.h:82
IncludeFileExc.h IncludeFileExc class declaration.
Definition: Algorithm.h:21
Class to dynamically load and manage shared libraries.
Definition: DynamicLoader.h:25
bool LoadPlugin(const std::string &pluginName)
Loads a plugin library.
Definition: DynamicLoader.cpp:36
bool AddPluginFolders(const T &foldersList)
Adds plugin folders.
Definition: DynamicLoader.h:86