summaryrefslogtreecommitdiff
path: root/src/wrap.cpp
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-15 23:29:40 +0000
committerPaul Buetow <paul@buetow.org>2008-05-15 23:29:40 +0000
commitd891a923bc507f28caa69f625079755d1a2083e7 (patch)
tree03ae20f0ecd1590629ec1e720026ccf34ddaac3f /src/wrap.cpp
moved stuff the trunk
Diffstat (limited to 'src/wrap.cpp')
-rw-r--r--src/wrap.cpp177
1 files changed, 177 insertions, 0 deletions
diff --git a/src/wrap.cpp b/src/wrap.cpp
new file mode 100644
index 0000000..775b936
--- /dev/null
+++ b/src/wrap.cpp
@@ -0,0 +1,177 @@
+/*:*
+ *: File: ./src/wrap.cpp
+ *:
+ *: yChat; Homepage: ychat.buetow.org; Version 0.9.0-CURRENT
+ *:
+ *: Copyright (C) 2003 Paul C. Buetow, Volker Richter
+ *: Copyright (C) 2004 Paul C. Buetow
+ *: Copyright (C) 2005 EXA Digital Solutions GbR
+ *: Copyright (C) 2006, 2007 Paul C. Buetow
+ *:
+ *: This program is free software; you can redistribute it and/or
+ *: modify it under the terms of the GNU General Public License
+ *: as published by the Free Software Foundation; either version 2
+ *: of the License, or (at your option) any later version.
+ *:
+ *: This program is distributed in the hope that it will be useful,
+ *: but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *: GNU General Public License for more details.
+ *:
+ *: You should have received a copy of the GNU General Public License
+ *: along with this program; if not, write to the Free Software
+ *: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *:*/
+
+#ifndef WRAP_CPP
+#define WRAP_CPP
+
+#include "wrap.h"
+
+using namespace std;
+
+//<<*
+chat* wrap::CHAT = NULL;
+#ifdef DATABASE
+data* wrap::DATA = NULL;
+#endif
+gcol* wrap::GCOL = NULL;
+sman* wrap::SMAN = NULL;
+modl* wrap::MODL = NULL;
+//*>>
+
+conf* wrap::CONF = NULL;
+html* wrap::HTML = NULL;
+#ifdef LOGGING
+logd* wrap::LOGD = NULL;
+#endif
+sock* wrap::SOCK = NULL;
+stats* wrap::STAT = NULL;
+timr* wrap::TIMR = NULL;
+dynamic_wrap* wrap::WRAP = NULL;
+
+void
+wrap::system_message(char* c_message, int i_code)
+{
+ wrap::system_message(string(c_message)+" ("+tool::int2string(i_code)+")");
+}
+
+void
+wrap::system_message(const char* c_message, int i_code)
+{
+ wrap::system_message(string(c_message)+" ("+tool::int2string(i_code)+")");
+}
+
+void
+wrap::system_message(char* c_message)
+{
+ wrap::system_message(string(c_message));
+}
+
+void
+wrap::system_message(const char* c_message)
+{
+ wrap::system_message(string(c_message));
+}
+
+void
+wrap::system_message(string* p_message, int i_code)
+{
+ wrap::system_message(*p_message+" ("+tool::int2string(i_code)+")");
+}
+
+void
+wrap::system_message(string* p_message)
+{
+ wrap::system_message(*p_message);
+}
+
+void
+wrap::system_message(string s_message, int i_code)
+{
+ wrap::system_message(s_message+" ("+tool::int2string(i_code)+")");
+}
+
+void
+wrap::system_message( string s_message )
+{
+#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_main_loop_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_main_loop_params );
+ delete p_main_loop_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;
+ //*>>
+ // Init the socket manager.
+ int i_port = tool::string2int( wrap::CONF->get_elem( "httpd.serverport" ) );
+
+#ifndef OPENSSL
+ WRAP->SOCK = SOCK = new sock;
+#else
+
+ WRAP->SOCK = SOCK = new sslsock;
+#endif
+
+ // create the server socket and set it up to accept connections.
+ if (SOCK->_make_server_socket(i_port) <= 0)
+ {
+ system_message(SOCKER1);
+ exit(-1);
+ }
+
+ //<<*
+ // 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(); // TODO
+}
+
+#endif