/* */ #ifndef _D_BT_MESSAGE_FACTORY_H_ #define _D_BT_MESSAGE_FACTORY_H_ #include "common.h" #include "SharedHandle.h" namespace aria2 { class BtMessage; class BtHandshakeMessage; class Piece; class ExtensionMessage; class BtMessageFactory { public: virtual ~BtMessageFactory() {} virtual SharedHandle createBtMessage(const unsigned char* msg, size_t msgLength) = 0; virtual SharedHandle createHandshakeMessage(const unsigned char* msg, size_t msgLength) = 0; virtual SharedHandle createHandshakeMessage(const unsigned char* infoHash, const unsigned char* peerId) = 0; virtual SharedHandle createRequestMessage(const SharedHandle& piece, size_t blockIndex) = 0; virtual SharedHandle createCancelMessage(size_t index, uint32_t begin, size_t length) = 0; virtual SharedHandle createPieceMessage(size_t index, uint32_t begin, size_t length) = 0; virtual SharedHandle createHaveMessage(size_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(size_t index, uint32_t begin, size_t length) = 0; virtual SharedHandle createAllowedFastMessage(size_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_