diff options
Diffstat (limited to 'PlexReqHandlerFactory.cpp')
-rw-r--r-- | PlexReqHandlerFactory.cpp | 33 |
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(); +} + +} |