/* */ #ifndef D_ABSTRACT_HTTP_SERVER_RESPONSE_COMMAND_H #define D_ABSTRACT_HTTP_SERVER_RESPONSE_COMMAND_H #include "Command.h" #include "SharedHandle.h" #include "TimerA2.h" namespace aria2 { class DownloadEngine; class SocketCore; class HttpServer; class AbstractHttpServerResponseCommand : public Command { private: DownloadEngine* e_; SharedHandle socket_; SharedHandle httpServer_; Timer timeoutTimer_; bool readCheck_; bool writeCheck_; void updateReadWriteCheck(); protected: DownloadEngine* getDownloadEngine() { return e_; } // Called after content body is completely sent. virtual void afterSend(const SharedHandle& httpServer, DownloadEngine* e) = 0; public: AbstractHttpServerResponseCommand(cuid_t cuid, const SharedHandle& httpServer, DownloadEngine* e, const SharedHandle& socket); virtual ~AbstractHttpServerResponseCommand(); virtual bool execute(); }; } // namespace aria2 #endif // D_ABSTRACT_HTTP_SERVER_RESPONSE_COMMAND_H