diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-06-24 13:03:20 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-06-24 13:03:20 (GMT) |
commit | 758bda908ded461c9d34d274a18454ffba4b7450 (patch) | |
tree | fb7f1ba28eab9f20b4ca16ed4dbc36d07dfce06e /src/uscxml/server/HTTPServer.cpp | |
parent | febde41c4c69d8f38967d5c195328d468834d037 (diff) | |
download | uscxml-758bda908ded461c9d34d274a18454ffba4b7450.zip uscxml-758bda908ded461c9d34d274a18454ffba4b7450.tar.gz uscxml-758bda908ded461c9d34d274a18454ffba4b7450.tar.bz2 |
- Prolog DM compiles with recent SWI release again
- Bugfixes for stress test
- Beautified code
Diffstat (limited to 'src/uscxml/server/HTTPServer.cpp')
-rw-r--r-- | src/uscxml/server/HTTPServer.cpp | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/src/uscxml/server/HTTPServer.cpp b/src/uscxml/server/HTTPServer.cpp index e5c83d7..9efdc07 100644 --- a/src/uscxml/server/HTTPServer.cpp +++ b/src/uscxml/server/HTTPServer.cpp @@ -596,6 +596,20 @@ bool HTTPServer::registerServlet(const std::string& path, HTTPServlet* servlet) return true; } +void HTTPServer::unregisterServlet(HTTPServlet* servlet) { + HTTPServer* INSTANCE = getInstance(); + tthread::lock_guard<tthread::recursive_mutex> lock(INSTANCE->_mutex); + http_servlet_iter_t servletIter = INSTANCE->_httpServlets.begin(); + while(servletIter != INSTANCE->_httpServlets.end()) { + if (servletIter->second == servlet) { + evhttp_del_cb(INSTANCE->_http, std::string("/" + servletIter->first).c_str()); + INSTANCE->_httpServlets.erase(servletIter); + break; + } + servletIter++; + } +} + bool HTTPServer::registerServlet(const std::string& path, WebSocketServlet* servlet) { HTTPServer* INSTANCE = getInstance(); @@ -636,6 +650,20 @@ bool HTTPServer::registerServlet(const std::string& path, WebSocketServlet* serv return true; } +void HTTPServer::unregisterServlet(WebSocketServlet* servlet) { + HTTPServer* INSTANCE = getInstance(); + tthread::lock_guard<tthread::recursive_mutex> lock(INSTANCE->_mutex); + ws_servlet_iter_t servletIter = INSTANCE->_wsServlets.begin(); + while(servletIter != INSTANCE->_wsServlets.end()) { + if (servletIter->second == servlet) { + evhttp_del_cb(INSTANCE->_http, std::string("/" + servletIter->first).c_str()); + INSTANCE->_wsServlets.erase(servletIter); + break; + } + servletIter++; + } +} + std::string HTTPServer::getBaseURL(ServerType type) { HTTPServer* INSTANCE = getInstance(); std::stringstream servletURL; @@ -658,20 +686,6 @@ std::string HTTPServer::getBaseURL(ServerType type) { return servletURL.str(); } -void HTTPServer::unregisterServlet(HTTPServlet* servlet) { - HTTPServer* INSTANCE = getInstance(); - tthread::lock_guard<tthread::recursive_mutex> lock(INSTANCE->_mutex); - http_servlet_iter_t servletIter = INSTANCE->_httpServlets.begin(); - while(servletIter != INSTANCE->_httpServlets.end()) { - if (servletIter->second == servlet) { - evhttp_del_cb(INSTANCE->_http, std::string("/" + servletIter->first).c_str()); - INSTANCE->_httpServlets.erase(servletIter); - break; - } - servletIter++; - } -} - void HTTPServer::start() { _isRunning = true; _thread = new tthread::thread(HTTPServer::run, this); |