1 #include "../../include/http/httpthread.h"
\r
2 #include "../../include/http/fmshttprequesthandlerfactory.h"
\r
3 #include "../../include/option.h"
\r
4 #include "../../include/stringfunctions.h"
\r
6 #include <Poco/Net/ServerSocket.h>
\r
7 #include <Poco/Net/HTTPServer.h>
\r
8 #include <Poco/Net/HTTPServerParams.h>
\r
16 HTTPThread::HTTPThread()
\r
21 void HTTPThread::run()
\r
23 m_log->debug("HTTPThread::run thread started.");
\r
26 Option option(m_db);
\r
28 std::string portstr("8080");
\r
29 option.Get("HTTPListenPort",portstr);
\r
30 StringFunctions::Convert(portstr,m_listenport);
\r
34 Poco::Net::ServerSocket sock(m_listenport);
\r
35 Poco::Net::HTTPServerParams* pParams = new Poco::Net::HTTPServerParams;
\r
36 pParams->setMaxQueued(30);
\r
37 pParams->setMaxThreads(5);
\r
38 Poco::Net::HTTPServer srv(new FMSHTTPRequestHandlerFactory(m_db),sock,pParams);
\r
41 m_log->trace("Started HTTPServer");
\r
45 Poco::Thread::sleep(1000);
\r
46 }while(!IsCancelled());
\r
48 m_log->trace("Trying to stop HTTPServer");
\r
50 m_log->trace("Stopped HTTPServer");
\r
52 m_log->trace("Waiting for current HTTP requests to finish");
\r
53 while(srv.currentConnections()>0)
\r
55 Poco::Thread::sleep(500);
\r
58 catch(Poco::Exception &e)
\r
60 m_log->fatal("HTTPThread::run caught "+e.displayText());
\r
64 m_log->fatal("HTTPThread::run caught unknown exception");
\r
67 m_log->debug("HTTPThread::run thread exiting.");
\r