rendered paste body#include <stdio.h>#include <stdlib.h>#include <dlfcn.h>#include <iostream>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);};