/[octopus]/octopus/src/PluginManager.cpp
ViewVC logotype

Diff of /octopus/src/PluginManager.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by Sigma, Sun Jan 26 22:07:15 2003 UTC revision 1.5 by Sigma, Thu Jan 30 19:49:56 2003 UTC
# Line 28  using std::cout; Line 28  using std::cout;
28  using std::cerr;  using std::cerr;
29    
30    
31  PluginManager::PluginManager() {}  PluginManager::PluginManager() {
32        connect = 0;
33    }
34    
35  PluginManager::~PluginManager() {  PluginManager::~PluginManager() {
36    for(list<Data>::iterator it = active.begin(); it != active.end(); ++it) {    for(list<Data>::iterator it = active.begin(); it != active.end(); ++it) {
# Line 40  PluginManager::~PluginManager() { Line 42  PluginManager::~PluginManager() {
42    
43  void PluginManager::loadPluginsDirectory(const char* dir_name) {}  void PluginManager::loadPluginsDirectory(const char* dir_name) {}
44    
45  void PluginManager::loadPluginFile(const char* file_name) {  Plugin* PluginManager::loadPluginFile(const char* file_name) {
46    
47      Data d;      Data d;
48            
49      void* plug = dlopen(file_name, RTLD_LAZY);      void* plug = dlopen(file_name, RTLD_LAZY);
50      if (!plug) {      if (!plug) {
51          cerr << "Cannot load library: " << dlerror() << '\n';          cerr << "Cannot load library: " << dlerror() << '\n';
52          return;          return 0;
53      }      }
54      d.handler = plug;      d.handler = plug;
55    
# Line 55  void PluginManager::loadPluginFile(const Line 57  void PluginManager::loadPluginFile(const
57      destroy_t* destroy_plugin = (destroy_t*) dlsym(plug, "destroy");      destroy_t* destroy_plugin = (destroy_t*) dlsym(plug, "destroy");
58      if (!create_plugin || !destroy_plugin) {      if (!create_plugin || !destroy_plugin) {
59          cerr << "Cannot load symbols: " << dlerror() << '\n';          cerr << "Cannot load symbols: " << dlerror() << '\n';
60          return ;          return 0;
61      }      }
62    
63      Plugin* p = create_plugin();      Plugin* p = create_plugin();
64      d.plugin = p;      d.plugin = p;
65            
66      active.push_back(d);      active.push_back(d);
67        
68        return p;
69    }
70    
71    void PluginManager::loadConnectionPluginFile(const char* file_name) {
72        connect = (ConnectionPlugin*)loadPluginFile(file_name);
73        if(!connect) exit(1);
74  }  }
75    
76  Plugin* PluginManager::connectionPlugin() {  ConnectionPlugin* PluginManager::connectionPlugin() {
77      return 0;      return connect;
78  }  }
79    
80  Plugin* PluginManager::databasePlugin() {  Plugin* PluginManager::databasePlugin() {

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26