summaryrefslogtreecommitdiff
path: root/PlexReqHandlerFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'PlexReqHandlerFactory.cpp')
-rw-r--r--PlexReqHandlerFactory.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/PlexReqHandlerFactory.cpp b/PlexReqHandlerFactory.cpp
new file mode 100644
index 0000000..1b68bcb
--- /dev/null
+++ b/PlexReqHandlerFactory.cpp
@@ -0,0 +1,33 @@
+#include "PlexReqHandlerFactory.h"
+
+namespace plexclient
+{
+
+PlexReqHandlerFactory::PlexReqHandlerFactory()
+{
+}
+
+PlexReqHandlerFactory::~PlexReqHandlerFactory()
+{
+}
+
+Poco::Net::HTTPRequestHandler* PlexReqHandlerFactory::createRequestHandler(const Poco::Net::HTTPServerRequest& request)
+{
+ if(request.getMethod() == Poco::Net::HTTPRequest::HTTP_GET) {
+ std::cout << "GET Request: " << request.getURI() << " from: " << request.clientAddress().toString() << std::endl;
+ }
+ else if(request.getMethod() == Poco::Net::HTTPRequest::HTTP_OPTIONS) {
+ std::cout << "OPTIONS Request: " << request.getURI() << " from: " << request.clientAddress().toString() << std::endl;
+ }
+ else if(request.getMethod() == Poco::Net::HTTPRequest::HTTP_HEAD) {
+ std::cout << "HEAD Request: " << request.getURI() << " from: " << request.clientAddress().toString() << std::endl;
+ }
+
+ if(request.getURI().find("/subscribe")!= std::string::npos) return new SubscribeRequestHandler();
+ else if(request.getURI().find("/resources")!= std::string::npos) return new ResourceRequestHandler();
+ else if(request.getURI().find("/player")!= std::string::npos) return new PlayerRequestHandler();
+
+ return new PlexHTTPRequestHandler();
+}
+
+}