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
19 std::string portstr;
\r
20 Option::Instance()->Get("HTTPListenPort",portstr);
\r
21 StringFunctions::Convert(portstr,m_listenport);
\r
24 void HTTPThread::run()
\r
26 m_log->debug("HTTPThread::run thread started.");
\r
28 Poco::Net::ServerSocket sock(m_listenport);
\r
29 Poco::Net::HTTPServerParams* pParams = new Poco::Net::HTTPServerParams;
\r
30 pParams->setMaxQueued(30);
\r
31 pParams->setMaxThreads(5);
\r
32 Poco::Net::HTTPServer srv(new FMSHTTPRequestHandlerFactory,sock,pParams);
\r
35 m_log->trace("Started HTTPServer");
\r
39 Poco::Thread::sleep(1000);
\r
40 }while(!IsCancelled());
\r
42 m_log->trace("Trying to stop HTTPServer");
\r
44 m_log->trace("Stopped HTTPServer");
\r
46 m_log->trace("Waiting for current HTTP requests to finish");
\r
47 while(srv.currentConnections()>0)
\r
49 Poco::Thread::sleep(500);
\r
52 m_log->debug("HTTPThread::run thread exiting.");
\r