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

Diff of /octopus/src/PluginManager.h

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

revision 1.3 by Sigma, Thu Jan 30 19:49:56 2003 UTC revision 1.4 by Sigma, Sat Feb 1 10:16:28 2003 UTC
# Line 25  Line 25 
25    
26  #include <list>  #include <list>
27  #include <string>  #include <string>
28    #include <map>
29  #include "Plugin.h"  #include "Plugin.h"
30  #include "ConnectionPlugin.h"  #include "ConnectionPlugin.h"
31    #include "PluginManagerInterface.h"
32    
33  using std::list;  using std::list;
34  using std::string;  using std::string;
35    
36  class PluginManager {  class PluginManager : public PluginManagerInterface {
37    
38      typedef struct {      typedef struct {
39          Plugin* plugin;          Plugin* plugin;
40          void* handler;          void* handler;
41      } Data;      } Data;
42        
43        typedef struct {
44            Plugin* plugin;
45            int id;
46        } ComRef;
47        
48        typedef std::map<const char*,ComRef> CommandMap;
49        
50  public:  public:
51      PluginManager();      PluginManager();
52      ~PluginManager();      ~PluginManager();
53        
54      void loadPluginsDirectory(const char* dir_name);      void loadPluginsDirectory(const char* dir_name);
55      Plugin* loadPluginFile(const char* file_name);      Plugin* loadPluginFile(const char* file_name);
56      void loadConnectionPluginFile(const char* file_name);      void loadConnectionPluginFile(const char* file_name);
57    
58        void receiveMsg(const string&);
59        void emitMsg(const string&);
60        
61      // access to required plugins      // access to required plugins
62      ConnectionPlugin* connectionPlugin();      ConnectionPlugin* connectionPlugin();
63      Plugin* databasePlugin();      Plugin* databasePlugin();
64      Plugin* defaultPlugin();      Plugin* defaultPlugin();
65        void registerCommand(Plugin* plugin, const char* prefix, int id);
66    
67  private:  private:
68      list<Data> active;      list<Data> active;
69      ConnectionPlugin *connect;      ConnectionPlugin *connect;
70        CommandMap available_commands;
71  };  };
72    
73  #endif // PLUGINMANAGER_H  #endif // PLUGINMANAGER_H

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

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