/* */ #ifndef _D_BT_MESSAGE_H_ #define _D_BT_MESSAGE_H_ #include "common.h" #include #include "SharedHandle.h" #include "BtAbortOutstandingRequestEvent.h" #include "BtCancelSendingPieceEvent.h" #include "BtChokingEvent.h" namespace aria2 { class BtEvent; class BtMessage { private: uint8_t id_; public: BtMessage(uint8_t id):id_(id) {} virtual ~BtMessage() {} virtual bool isSendingInProgress() = 0; virtual bool isInvalidate() = 0; virtual bool isUploading() = 0; uint8_t getId() { return id_; } virtual void doReceivedAction() = 0; virtual void send() = 0; virtual void validate() = 0; virtual void onAbortOutstandingRequestEvent (const BtAbortOutstandingRequestEvent& event) = 0; virtual void onCancelSendingPieceEvent (const BtCancelSendingPieceEvent& event) = 0; virtual void onChokingEvent(const BtChokingEvent& event) = 0; virtual void onQueued() = 0; virtual std::string toString() const = 0; }; typedef SharedHandle BtMessageHandle; } // namespace aria2 #endif // _D_BT_MESSAGE_H_