/* */ #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, int32_t blockIndex) = 0; virtual BtMessageHandle createCancelMessage(int32_t index, int32_t begin, uint32_t length) = 0; virtual BtMessageHandle createPieceMessage(int32_t index, int32_t begin, uint32_t length) = 0; virtual BtMessageHandle createHaveMessage(int32_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(int32_t index, int32_t begin, uint32_t length) = 0; virtual BtMessageHandle createAllowedFastMessage(int32_t index) = 0; }; typedef SharedHandle BtMessageFactoryHandle; typedef WeakHandle BtMessageFactoryWeakHandle; #endif // _D_BT_MESSAGE_FACTORY_H_