acl/app/wizard_demo/httpd_download/http_servlet.h

31 lines
917 B
C++

#pragma once
class http_servlet : public acl::HttpServlet
{
public:
http_servlet(const char* filepath, acl::socket_stream* conn,
acl::session* session);
~http_servlet();
protected:
virtual bool doError(acl::HttpServletRequest& req,
acl::HttpServletResponse& res);
virtual bool doUnknown(acl::HttpServletRequest&,
acl::HttpServletResponse& res);
virtual bool doGet(acl::HttpServletRequest& req,
acl::HttpServletResponse& res);
virtual bool doPost(acl::HttpServletRequest& req,
acl::HttpServletResponse& res);
private:
acl::string filepath_;
bool reply(acl::HttpServletRequest& req,
acl::HttpServletResponse& res, int status,
const char* fmt, ...);
bool transfer_file(acl::HttpServletRequest& req,
acl::HttpServletResponse& res);
bool transfer_file(acl::HttpServletRequest& req,
acl::HttpServletResponse& res,
long long range_from, long long range_to);
};