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