#ifndef _ipagehandler_\r
#define _ipagehandler_\r
\r
+#include "../ilogger.h"\r
+\r
+#include <Poco/Net/HTTPRequestHandler.h>\r
+#include <Poco/Net/HTTPServerRequest.h>\r
+#include <Poco/Net/HTTPServerResponse.h>\r
+\r
#include <cstdlib>\r
#include <string>\r
#include <map>\r
#include <vector>\r
-#include <shttpd.h>\r
\r
-class IPageHandler\r
+class IPageHandler:public Poco::Net::HTTPRequestHandler,public ILogger\r
{\r
public:\r
IPageHandler() {}\r
IPageHandler(const std::string &templatestr) { m_template=templatestr; }\r
virtual ~IPageHandler() {}\r
+ virtual const bool WillHandleURI(const std::string &uri)=0;\r
+\r
+ virtual IPageHandler *New()=0; // returns a new instance of the object\r
\r
- /**\r
- \brief Handles request for a page\r
- \r
- \return true if request was handled, false if it was ignored\r
- */\r
- const bool Handle(shttpd_arg *arg);\r
+ virtual void handleRequest(Poco::Net::HTTPServerRequest &request, Poco::Net::HTTPServerResponse &response);\r
\r
private:\r
- virtual const bool WillHandleURI(const std::string &uri)=0;\r
virtual const std::string GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)=0;\r
- \r
+\r
protected:\r
- // splits apart data into name,data pairs in args map\r
- void HandleMultiPartData(const std::string &contenttypeheader, char *data, const long datalen, std::map<std::string,std::string> &args);\r
// converts from basename[#] query args into a vector where the vector pos is the index pos #\r
void CreateArgArray(const std::map<std::string,std::string> &vars, const std::string &basename, std::vector<std::string> &args);\r
+ const std::string CreateTrueFalseDropDown(const std::string &name, const std::string &selected);\r
+\r
+ void CreateQueryVarMap(Poco::Net::HTTPServerRequest &request, std::map<std::string,std::string> &vars);\r
\r
- // replaces html control characters with elements (i.e. < becomes <)\r
+ // replaces html elements with encoded characters (i.e. < becomes <)\r
const std::string SanitizeOutput(const std::string &input);\r
\r
std::string m_template;\r