2 * @file HTTPDaemon.cpp
\r
9 #include "Raym/Log.h"
\r
12 #include "ry0/iPTd/HTTPD.h"
\r
13 #include "ry0/iPTd/Controller.h"
\r
15 using namespace Raym;
\r
22 HTTPDaemon::HTTPDaemon()
\r
30 HTTPDaemon::~HTTPDaemon()
\r
38 HTTPDaemon *HTTPDaemon::alloc()
\r
40 return new HTTPDaemon();
\r
43 HTTPDaemon *HTTPDaemon::initWithController(Controller *controller, int port, String *path)
\r
45 _controller = controller;
\r
47 _path = path->retain();
\r
52 bool HTTPDaemon::start()
\r
56 _httpd = NET::HTTPDaemon::alloc()->initWithPort(_port, 10);
\r
57 _httpd->setRootPath(_path);
\r
58 _httpd->setDelegate(this);
\r
60 return _httpd->start();
\r
63 void HTTPDaemon::stop()
\r
68 NET::HTTPResponse *HTTPDaemon::request(NET::HTTPRequest *request, struct sockaddr_in *client)
\r
70 DebugLog2("%s\n", __FUNCTION__);
\r
74 EnterCriticalSection(&_cs);
\r
75 // flag = _initialized;
\r
76 LeaveCriticalSection(&_cs);
\r
82 NET::HTTPResponse *response = NULL;
\r
84 if (request->method()->isEqualToString("GET") ||
\r
85 request->method()->isEqualToString("HEAD"))
\r
88 String *uri = request->URI();
\r
89 DebugLog0("request: %s\n", uri->cString());
\r