#define MODULE_WRAPPER_H 1 #include #include #include #include #include "module.h" class IRCBot; struct IRCModuleList { bool loaded; IRCModuleInfo* info; IRCModule *module; IRCModuleList *next; }; enum IRCModuleLoadResult { LOAD_SUCCESS = 0, LOAD_NO_OBJ_PTR = 1, LOAD_FILE_NOT_FOUND = 2, LOAD_UNKNOWN_ERROR = 10 }; class IRCModuleWrapper { public: IRCModuleWrapper(IRCBot *bot_pointer); ~IRCModuleWrapper(); IRCModuleLoadResult LoadModule(char *filename); void UnloadModule(char *module_id); void UnloadAllModules(); protected: // private: IRCModuleList *module_list; IRCBot *bot_ptr; void RegisterModule(IRCModuleList *mod_list, IRCModuleInfo *info, IRCModule *module); void UnregisterModule(IRCModuleList *mod_list, bool recursive); };