#ifndef CGI_HH #define CGI_HH #include #include #include #include namespace stuff { class CGI { public: enum request_type { GET, HEAD, POST, PUT, TRACE, UNKNOWN, }; virtual void post_data(std::vector* data) = 0; // Return true if post data is multipart, false otherwise virtual bool post_data(std::map* data) = 0; virtual void query_data(std::map* data) = 0; virtual std::string request_path() = 0; virtual request_type request_type() = 0; virtual std::string content_type() = 0; static int run(std::function handle_request); protected: CGI() {} virtual ~CGI() {} CGI(const CGI&) = delete; CGI& operator=(const CGI&) = delete; }; } // namespace stuff #endif /* CGI_HH */