#pragma once class http_servlet : public acl::HttpServlet { public: http_servlet(acl::redis_client_cluster& cluster, size_t max_conns); ~http_servlet(); acl::session& get_session() const { return *session_; } protected: // @override bool doError(acl::HttpServletRequest&, acl::HttpServletResponse&); // @override bool doUnknown(acl::HttpServletRequest&, acl::HttpServletResponse&); // @override bool doGet(acl::HttpServletRequest&, acl::HttpServletResponse&); // @override bool doPost(acl::HttpServletRequest&, acl::HttpServletResponse&); // @override bool doWebSocket(acl::HttpServletRequest&, acl::HttpServletResponse&); private: acl::session* session_; bool doPing(acl::websocket&, acl::websocket&); bool doPong(acl::websocket&, acl::websocket&); bool doClose(acl::websocket&, acl::websocket&); bool doMsg(acl::websocket&, acl::websocket&); bool getFilename(acl::websocket&, acl::string&); long long getFilesize(acl::websocket& in); bool saveFile(acl::websocket&, const acl::string&, long long); bool saveFile(acl::websocket&, acl::ofstream&, long long); int saveFile(acl::websocket&, acl::ofstream&); };