diff options
Diffstat (limited to 'ychat-0.7.9.1/src/wrap.cpp')
| -rwxr-xr-x | ychat-0.7.9.1/src/wrap.cpp | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/ychat-0.7.9.1/src/wrap.cpp b/ychat-0.7.9.1/src/wrap.cpp new file mode 100755 index 0000000..d737038 --- /dev/null +++ b/ychat-0.7.9.1/src/wrap.cpp @@ -0,0 +1,125 @@ +#ifndef WRAP_CPP +#define WRAP_CPP + +#include "wrap.h" + +using namespace std; + +//<<* +chat* wrap::CHAT; +#ifdef DATABASE +data* wrap::DATA; +#endif +gcol* wrap::GCOL; +sman* wrap::SMAN; +modl* wrap::MODL; +//*>> + +conf* wrap::CONF; +html* wrap::HTML; +#ifdef LOGGING +logd* wrap::LOGD; +#endif +#ifdef NCURSES +ncur* wrap::NCUR; +#endif +sock* wrap::SOCK; +stats* wrap::STAT; +timr* wrap::TIMR; +pool* wrap::POOL; +dynamic_wrap* wrap::WRAP; + +void +wrap::system_message( string s_message ) +{ +#ifdef NCURSES + NCUR->print( s_message ); +#endif + +#ifdef SERVMSG + cout << s_message << endl; +#endif + +#ifdef LOGGING + LOGD->log_simple_line( s_message + "\n" ); +#endif +} + +void +wrap::init_wrapper(map<string,string>* p_start_params) +{ + // Init the dynamic wrapper (is needed to pass all wrapped objects through a single pointer). + WRAP = new dynamic_wrap; + + // Init the config manager. + WRAP->CONF = CONF = new conf( CONFILE, p_start_params ); + delete p_start_params, + + // Init the statistic manager. + WRAP->STAT = STAT = new stats; + + // Init the html-template manager. + WRAP->HTML = HTML = new html; + +#ifdef LOGGING + // Init the system message logd + WRAP->LOGD = LOGD = new logd( CONF->get_elem("httpd.logging.systemfile"), + CONF->get_elem("httpd.logging.systemlines") ); +#endif + + //<<* + // Init the session manager. + WRAP->SMAN = SMAN = new sman; + //*>> + + +#ifdef NCURSES + + WRAP->NCUR = NCUR = new ncur; // init the ncurses admin interface. + NCUR->run(); // run the thread + + // Wait until ncurses interface has been initialized. + do { + usleep(1000); + } while ( ! NCUR->is_ready() ); + + HTML->print_cached(0); +#else +#ifdef CLI + cli* p_cli = new cli; + p_cli->run(); +#endif +#endif + + // Init the thread pool + WRAP->POOL = POOL = new pool; + + // Init the socket manager. + WRAP->SOCK = SOCK = new sock; + + //<<* + // Init the chat manager. + WRAP->CHAT = CHAT = new chat; + //*>> + + // Init the system timer. + WRAP->TIMR = TIMR = new timr; + + //<<* + // Init the module-loader manager. + WRAP->MODL = MODL = new modl; + + // Init the garbage collector + WRAP->GCOL = GCOL = new gcol; + + // Init the data manager. +#ifdef DATABASE + WRAP->DATA = DATA = new data; +#endif + //*>> + + // Run threads + TIMR->run(); + +} +#endif |
