summaryrefslogtreecommitdiff
path: root/ychat-0.7.9.1/src/wrap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ychat-0.7.9.1/src/wrap.cpp')
-rwxr-xr-xychat-0.7.9.1/src/wrap.cpp125
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