summaryrefslogtreecommitdiff
path: root/orkbasecxx
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-06-16 19:10:27 +0000
committerHenri Herscher <henri@oreka.org>2006-06-16 19:10:27 +0000
commit37e831162bd5080be5e111a39880a51d4406bcca (patch)
tree261fed75d90ebab01efa7ba668ebe3f68ae88cf4 /orkbasecxx
parent5752a8ab946c82cc61b0dc73c1114293a75309f3 (diff)
Successfully moved MultiThreadedServer.cpp and MultiThreadedServer.h from orkaudio to orkbasecxx so that it is accessible by all modules/plugins.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@262 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkbasecxx')
-rw-r--r--orkbasecxx/MultiThreadedServer.cpp32
-rw-r--r--orkbasecxx/MultiThreadedServer.h15
-rw-r--r--orkbasecxx/OrkBase.dsp8
3 files changed, 42 insertions, 13 deletions
diff --git a/orkbasecxx/MultiThreadedServer.cpp b/orkbasecxx/MultiThreadedServer.cpp
index 3dcc417..1d3a8bf 100644
--- a/orkbasecxx/MultiThreadedServer.cpp
+++ b/orkbasecxx/MultiThreadedServer.cpp
@@ -11,30 +11,35 @@
*
*/
-#include "MultiThreadedServer.h"
-
#include "ace/INET_Addr.h"
#include "ace/OS_NS_string.h"
+#include <xercesc/parsers/XercesDOMParser.hpp>
+#include <xercesc/dom/DOMWriter.hpp>
+#include <xercesc/dom/DOMImplementation.hpp>
+#include <xercesc/dom/DOMImplementationRegistry.hpp>
+
#include "ObjectFactory.h"
#include "serializers/SingleLineSerializer.h"
#include "serializers/DomSerializer.h"
#include "serializers/UrlSerializer.h"
-#include "LogManager.h"
#include "Utils.h"
-#include <xercesc/parsers/XercesDOMParser.hpp>
-#include <xercesc/dom/DOMWriter.hpp>
-#include <xercesc/dom/DOMImplementation.hpp>
-#include <xercesc/dom/DOMImplementationRegistry.hpp>
+#include "MultiThreadedServer.h"
+log4cxx::LoggerPtr CommandLineServer::s_log;
+
+// This is run at the start of each connection
int CommandLineServer::open (void *void_acceptor)
{
+ LOG4CXX_INFO(s_log, "new connection");
return this->activate (THR_DETACHED);
}
-
+// This is run at program initialization
void CommandLineServer::run(void* args)
{
+ s_log = log4cxx::Logger::getLogger("interface.commandlineserver");
+
unsigned short tcpPort = (unsigned short)(unsigned int)args;
CommandLineAcceptor peer_acceptor;
ACE_INET_Addr addr (tcpPort);
@@ -43,7 +48,7 @@ void CommandLineServer::run(void* args)
if (peer_acceptor.open (addr, &reactor) == -1)
{
CStdString tcpPortString = IntToString(tcpPort);
- LOG4CXX_ERROR(LOG.rootLog, CStdString("Failed to start command line server on port:") + tcpPortString);
+ LOG4CXX_ERROR(s_log, CStdString("Failed to start command line server on port:") + tcpPortString);
}
else
{
@@ -119,14 +124,19 @@ int CommandLineServer::svc(void)
//==============================================================
+log4cxx::LoggerPtr HttpServer::s_log;
+
+// This is run at the start of each connection
int HttpServer::open (void *void_acceptor)
{
return this->activate (THR_DETACHED);
}
-
+// This is run at program initialization
void HttpServer::run(void* args)
{
+ s_log = log4cxx::Logger::getLogger("interface.httpserver");
+
unsigned short tcpPort = (unsigned short)(unsigned int)args;
HttpAcceptor peer_acceptor;
ACE_INET_Addr addr (tcpPort);
@@ -135,7 +145,7 @@ void HttpServer::run(void* args)
if (peer_acceptor.open (addr, &reactor) == -1)
{
CStdString tcpPortString = IntToString(tcpPort);
- LOG4CXX_ERROR(LOG.rootLog, CStdString("Failed to start http server on port:") + tcpPortString);
+ LOG4CXX_ERROR(s_log, CStdString("Failed to start http server on port:") + tcpPortString);
}
else
{
diff --git a/orkbasecxx/MultiThreadedServer.h b/orkbasecxx/MultiThreadedServer.h
index 19c58bc..b004007 100644
--- a/orkbasecxx/MultiThreadedServer.h
+++ b/orkbasecxx/MultiThreadedServer.h
@@ -17,11 +17,15 @@
#include "ace/Acceptor.h"
#include "ace/SOCK_Acceptor.h"
+#include <log4cxx/logger.h>
+
+#include "OrkBase.h"
+
/** This server accepts permanent telnet like connections.
commands are accepted in "single line" format.
one thread per connection
*/
-class CommandLineServer : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
+class DLL_IMPORT_EXPORT CommandLineServer : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
{
public:
virtual int open (void *);
@@ -29,6 +33,9 @@ public:
static void run(void *args);
/** service routine */
virtual int svc (void);
+
+private:
+ static log4cxx::LoggerPtr s_log;
};
typedef ACE_Acceptor<CommandLineServer, ACE_SOCK_ACCEPTOR> CommandLineAcceptor;
@@ -38,7 +45,7 @@ typedef ACE_Acceptor<CommandLineServer, ACE_SOCK_ACCEPTOR> CommandLineAcceptor;
Example url:
http://localhost:23000/message=print&text=hello
*/
-class HttpServer : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
+class DLL_IMPORT_EXPORT HttpServer : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
{
public:
virtual int open (void *);
@@ -46,6 +53,10 @@ public:
static void run(void *args);
/** service routine */
virtual int svc (void);
+
+private:
+ static log4cxx::LoggerPtr s_log;
+
};
typedef ACE_Acceptor<HttpServer, ACE_SOCK_ACCEPTOR> HttpAcceptor;
diff --git a/orkbasecxx/OrkBase.dsp b/orkbasecxx/OrkBase.dsp
index 68f2b4a..79a3091 100644
--- a/orkbasecxx/OrkBase.dsp
+++ b/orkbasecxx/OrkBase.dsp
@@ -260,6 +260,14 @@ SOURCE=.\g711.h
# End Source File
# Begin Source File
+SOURCE=.\MultiThreadedServer.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\MultiThreadedServer.h
+# End Source File
+# Begin Source File
+
SOURCE=.\Object.cpp
!IF "$(CFG)" == "OrkBase - Win32 Release"