diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-05-16 12:27:14 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-05-16 12:27:14 +0900 |
| commit | 9727b5b256bb12cff42e6aa230ba2020a933562f (patch) | |
| tree | 4fe70a0d78d3a5cd11a80b2dfd8f521db47032ee /src/BtHandshakeMessage.h | |
| parent | 8897d7ec702fca9780033db42db48cced2580112 (diff) | |
| parent | cc8375f0b04918ace028bf58e09f9e25a0440c23 (diff) | |
Merge branch 'master' into dynamic-select-file
Diffstat (limited to 'src/BtHandshakeMessage.h')
| -rw-r--r-- | src/BtHandshakeMessage.h | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/src/BtHandshakeMessage.h b/src/BtHandshakeMessage.h index 51893b57..5bbb0b4f 100644 --- a/src/BtHandshakeMessage.h +++ b/src/BtHandshakeMessage.h @@ -37,21 +37,26 @@ #include "SimpleBtMessage.h" +#include <array> + +#include "BtConstants.h" + namespace aria2 { class BtHandshakeMessage : public SimpleBtMessage { public: - static const size_t PSTR_LENGTH = 19; - static const unsigned char* BT_PSTR; - static const size_t RESERVED_LENGTH = 8; - static const size_t MESSAGE_LENGTH = 68; + constexpr static size_t PSTR_LENGTH = 19; + constexpr static size_t RESERVED_LENGTH = 8; + constexpr static size_t MESSAGE_LENGTH = 68; + const static unsigned char BT_PSTR[]; private: uint8_t pstrlen_; - unsigned char* pstr_; - unsigned char* reserved_; - unsigned char* infoHash_; - unsigned char* peerId_; + std::array<unsigned char, PSTR_LENGTH> pstr_; + std::array<unsigned char, RESERVED_LENGTH> reserved_; + std::array<unsigned char, INFO_HASH_LENGTH> infoHash_; + std::array<unsigned char, PEER_ID_LENGTH> peerId_; + void init(); public: @@ -66,17 +71,11 @@ public: static std::unique_ptr<BtHandshakeMessage> create(const unsigned char* data, size_t dataLength); - virtual ~BtHandshakeMessage() - { - delete[] pstr_; - delete[] reserved_; - delete[] infoHash_; - delete[] peerId_; - } + virtual ~BtHandshakeMessage(); static const uint8_t ID = INT8_MAX; - static const char NAME[]; + const static char NAME[]; virtual void doReceivedAction() CXX11_OVERRIDE{}; @@ -104,15 +103,15 @@ public: uint8_t getPstrlen() const { return pstrlen_; } - const unsigned char* getPstr() const { return pstr_; } + const unsigned char* getPstr() const { return pstr_.data(); } - const unsigned char* getReserved() const { return reserved_; } + const unsigned char* getReserved() const { return reserved_.data(); } - const unsigned char* getInfoHash() const { return infoHash_; } + const unsigned char* getInfoHash() const { return infoHash_.data(); } void setInfoHash(const unsigned char* infoHash); - const unsigned char* getPeerId() const { return peerId_; } + const unsigned char* getPeerId() const { return peerId_.data(); } void setPeerId(const unsigned char* peerId); }; |
