/* */ #ifndef _D_BT_MESSAGE_FACTORY_H_ #define _D_BT_MESSAGE_FACTORY_H_ #include "common.h" #include "SharedHandle.h" namespace aria2 { class BtMessage; class Piece; class ExtensionMessage; class BtMessageFactory { public: virtual ~BtMessageFactory() {} virtual SharedHandle createBtMessage(const unsigned char* msg, int32_t msgLength) = 0; virtual SharedHandle createHandshakeMessage(const unsigned char* msg, int32_t msgLength) = 0; virtual SharedHandle createHandshakeMessage(const unsigned char* infoHash, const unsigned char* peerId) = 0; virtual SharedHandle createRequestMessage(const SharedHandle& piece, int32_t blockIndex) = 0; virtual SharedHandle createCancelMessage(int32_t index, int32_t begin, int32_t length) = 0; virtual SharedHandle createPieceMessage(int32_t index, int32_t begin, int32_t length) = 0; virtual SharedHandle createHaveMessage(int32_t index) = 0; virtual SharedHandle createChokeMessage() = 0; virtual SharedHandle createUnchokeMessage() = 0; virtual SharedHandle createInterestedMessage() = 0; virtual SharedHandle createNotInterestedMessage() = 0; virtual SharedHandle createBitfieldMessage() = 0; virtual SharedHandle createKeepAliveMessage() = 0; virtual SharedHandle createHaveAllMessage() = 0; virtual SharedHandle createHaveNoneMessage() = 0; virtual SharedHandle createRejectMessage(int32_t index, int32_t begin, int32_t length) = 0; virtual SharedHandle createAllowedFastMessage(int32_t index) = 0; virtual SharedHandle createPortMessage(uint16_t port) = 0; virtual SharedHandle createBtExtendedMessage(const SharedHandle& msg) = 0; }; typedef SharedHandle BtMessageFactoryHandle; typedef WeakHandle BtMessageFactoryWeakHandle; } // namespace aria2 #endif // _D_BT_MESSAGE_FACTORY_H_