DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ers::PluginManager Class Reference

#include <PluginManager.hpp>

Classes

class  SharedLibrary

Public Member Functions

 PluginManager ()
 ~PluginManager ()

Private Types

typedef std::map< std::string, SharedLibrary * > LibMap

Private Attributes

LibMap libraries_

Detailed Description

Definition at line 48 of file PluginManager.hpp.

Member Typedef Documentation

◆ LibMap

typedef std::map<std::string, SharedLibrary*> ers::PluginManager::LibMap
private

Definition at line 68 of file PluginManager.hpp.

Constructor & Destructor Documentation

◆ PluginManager()

ers::PluginManager::PluginManager ( )

Constructor loads the plugins.

Definition at line 67 of file PluginManager.cpp.

68{
69 const char* env = ::getenv(EnvironmentName);
70 std::string config(env ? std::string(env) + SEPARATOR + DefaultLibraryName : DefaultLibraryName);
71
72 std::vector<std::string> libs;
73 ers::tokenize(config, SEPARATOR, libs);
74
75 for (size_t i = 0; i < libs.size(); i++) {
76 LibMap::iterator it = libraries_.find(libs[i]);
77 if (it == libraries_.end()) {
78 try {
79 libraries_[libs[i]] = new SharedLibrary(libs[i]);
80 } catch (PluginException& ex) {
81 ERS_INTERNAL_ERROR("Library " << libs[i] << " can not be loaded because " << ex.reason())
82 }
83 }
84 }
85}
SharedLibrary(const std::string &name)
#define ERS_INTERNAL_ERROR(message)
Definition macro.hpp:71
void tokenize(const std::string &text, const std::string &separators, std::vector< std::string > &tokens)
Definition Util.cpp:18

◆ ~PluginManager()

ers::PluginManager::~PluginManager ( )

Destructor unloads the plugins.

Definition at line 58 of file PluginManager.cpp.

59{
60 LibMap::iterator it = libraries_.begin();
61 for (; it != libraries_.end();) {
62 delete it->second;
63 libraries_.erase(it++);
64 }
65}

Member Data Documentation

◆ libraries_

LibMap ers::PluginManager::libraries_
private

Definition at line 70 of file PluginManager.hpp.


The documentation for this class was generated from the following files: