#include "commonheaders.h" std::list plugins; boost::mutex plugin_list_mutex; std::list services; boost::mutex service_list_mutex; ACE_Log_Msg logger; PLUGINLINK pluglink = {&CreateServiceFunction, &CallService, &ServiceExists}; #ifdef _WIN32 HINSTANCE hInst; int __stdcall WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd ) #else int ACE_MAIN(int argc, char *argv[]) #endif { #ifdef _WIN32 hInst = hInstance; #endif void load_modules(); void run_plugins(); void register_core_services(); register_core_services(); logger.log(LM_DEBUG, "Loading plugins...\n"); load_modules(); logger.log(LM_DEBUG, "Running plugins...\n"); run_plugins(); while(true) { logger.log(LM_DEBUG, "Main threas sleeping...\n"); boost::this_thread::sleep(boost::posix_time::seconds(10)); //warning from compiller on this string can be safely ignored } return 0; } int on_exit() { if(!services.empty()) { std::list::iterator end = services.end(); for(std::list::iterator i = services.begin(); i != end; ++i) delete *i; services.clear(); } if(!plugins.empty()) { std::list::iterator end = plugins.end(); for(std::list::iterator i = plugins.begin(); i != end; ++i) delete *i; plugins.clear(); } return 0; }