diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-06-30 16:55:15 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-06-30 22:55:43 +0900 |
| commit | 098f1571be6f9d30d394eb83d35cc67f8e9ebcb0 (patch) | |
| tree | 1fd7ae9d1173704f39291c5f438c3388a3ab3d65 /src/BtMessageFactory.h | |
| parent | abcb0745ed3c60f17942ce65fb63159a157854ea (diff) | |
Wrap BtMessage objects by std::unique_ptr instead of std::shared_ptr
Diffstat (limited to 'src/BtMessageFactory.h')
| -rw-r--r-- | src/BtMessageFactory.h | 61 |
1 files changed, 40 insertions, 21 deletions
diff --git a/src/BtMessageFactory.h b/src/BtMessageFactory.h index cb244d9b..a664828a 100644 --- a/src/BtMessageFactory.h +++ b/src/BtMessageFactory.h @@ -43,58 +43,77 @@ namespace aria2 { class BtMessage; class BtHandshakeMessage; -class Piece; +class BtAllowedFastMessage; +class BtBitfieldMessage; +class BtCancelMessage; +class BtChokeMessage; +class BtHaveAllMessage; +class BtHaveMessage; +class BtHaveNoneMessage; +class BtInterestedMessage; +class BtKeepAliveMessage; +class BtNotInterestedMessage; +class BtPieceMessage; +class BtPortMessage; +class BtRejectMessage; +class BtRequestMessage; +class BtUnchokeMessage; +class BtExtendedMessage; class ExtensionMessage; +class Piece; class BtMessageFactory { public: virtual ~BtMessageFactory() {} - virtual std::shared_ptr<BtMessage> + virtual std::unique_ptr<BtMessage> createBtMessage(const unsigned char* msg, size_t msgLength) = 0; - virtual std::shared_ptr<BtHandshakeMessage> + virtual std::unique_ptr<BtHandshakeMessage> createHandshakeMessage(const unsigned char* msg, size_t msgLength) = 0; - virtual std::shared_ptr<BtHandshakeMessage> + virtual std::unique_ptr<BtHandshakeMessage> createHandshakeMessage(const unsigned char* infoHash, const unsigned char* peerId) = 0; - virtual std::shared_ptr<BtMessage> - createRequestMessage(const std::shared_ptr<Piece>& piece, size_t blockIndex) = 0; + virtual std::unique_ptr<BtRequestMessage> + createRequestMessage(const std::shared_ptr<Piece>& piece, + size_t blockIndex) = 0; - virtual std::shared_ptr<BtMessage> + virtual std::unique_ptr<BtCancelMessage> createCancelMessage(size_t index, int32_t begin, int32_t length) = 0; - virtual std::shared_ptr<BtMessage> + virtual std::unique_ptr<BtPieceMessage> createPieceMessage(size_t index, int32_t begin, int32_t length) = 0; - virtual std::shared_ptr<BtMessage> createHaveMessage(size_t index) = 0; + virtual std::unique_ptr<BtHaveMessage> createHaveMessage(size_t index) = 0; - virtual std::shared_ptr<BtMessage> createChokeMessage() = 0; + virtual std::unique_ptr<BtChokeMessage> createChokeMessage() = 0; - virtual std::shared_ptr<BtMessage> createUnchokeMessage() = 0; + virtual std::unique_ptr<BtUnchokeMessage> createUnchokeMessage() = 0; - virtual std::shared_ptr<BtMessage> createInterestedMessage() = 0; + virtual std::unique_ptr<BtInterestedMessage> createInterestedMessage() = 0; - virtual std::shared_ptr<BtMessage> createNotInterestedMessage() = 0; + virtual std::unique_ptr<BtNotInterestedMessage> + createNotInterestedMessage() = 0; - virtual std::shared_ptr<BtMessage> createBitfieldMessage() = 0; + virtual std::unique_ptr<BtBitfieldMessage> createBitfieldMessage() = 0; - virtual std::shared_ptr<BtMessage> createKeepAliveMessage() = 0; + virtual std::unique_ptr<BtKeepAliveMessage> createKeepAliveMessage() = 0; - virtual std::shared_ptr<BtMessage> createHaveAllMessage() = 0; + virtual std::unique_ptr<BtHaveAllMessage> createHaveAllMessage() = 0; - virtual std::shared_ptr<BtMessage> createHaveNoneMessage() = 0; + virtual std::unique_ptr<BtHaveNoneMessage> createHaveNoneMessage() = 0; - virtual std::shared_ptr<BtMessage> + virtual std::unique_ptr<BtRejectMessage> createRejectMessage(size_t index, int32_t begin, int32_t length) = 0; - virtual std::shared_ptr<BtMessage> createAllowedFastMessage(size_t index) = 0; + virtual std::unique_ptr<BtAllowedFastMessage> + createAllowedFastMessage(size_t index) = 0; - virtual std::shared_ptr<BtMessage> createPortMessage(uint16_t port) = 0; + virtual std::unique_ptr<BtPortMessage> createPortMessage(uint16_t port) = 0; - virtual std::shared_ptr<BtMessage> + virtual std::unique_ptr<BtExtendedMessage> createBtExtendedMessage(const std::shared_ptr<ExtensionMessage>& msg) = 0; }; |
