summaryrefslogtreecommitdiff
path: root/src/BtExtendedMessage.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-07-01 21:42:51 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-07-01 21:42:51 +0900
commit529b9fdceb7b5a277a983badd29dca3cc69259c5 (patch)
tree39a3aa941dce2817c0640282ef9a78f9c1984e67 /src/BtExtendedMessage.cc
parent9e35750bb8db4376052898e3ed0e1bfa0bd0bfaf (diff)
Use std::unique_ptr for ExtensionMessage
Diffstat (limited to 'src/BtExtendedMessage.cc')
-rw-r--r--src/BtExtendedMessage.cc19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/BtExtendedMessage.cc b/src/BtExtendedMessage.cc
index 901d72f3..6ecf4790 100644
--- a/src/BtExtendedMessage.cc
+++ b/src/BtExtendedMessage.cc
@@ -51,14 +51,12 @@ namespace aria2 {
const char BtExtendedMessage::NAME[] = "extended";
BtExtendedMessage::BtExtendedMessage
-(const std::shared_ptr<ExtensionMessage>& extensionMessage):
+(std::unique_ptr<ExtensionMessage> extensionMessage):
SimpleBtMessage(ID, NAME),
- extensionMessage_(extensionMessage),
+ extensionMessage_(std::move(extensionMessage)),
msgLength_(0)
{}
-BtExtendedMessage::~BtExtendedMessage() {}
-
unsigned char* BtExtendedMessage::createMessage()
{
/**
@@ -97,16 +95,15 @@ std::string BtExtendedMessage::toString() const {
}
std::unique_ptr<BtExtendedMessage>
-BtExtendedMessage::create(const std::shared_ptr<ExtensionMessageFactory>& factory,
+BtExtendedMessage::create(ExtensionMessageFactory* factory,
const std::shared_ptr<Peer>& peer,
const unsigned char* data, size_t dataLength)
{
bittorrent::assertPayloadLengthGreater(1, dataLength, NAME);
bittorrent::assertID(ID, data, NAME);
assert(factory);
- std::shared_ptr<ExtensionMessage> extmsg = factory->createMessage(data+1,
- dataLength-1);
- return make_unique<BtExtendedMessage>(extmsg);
+ return make_unique<BtExtendedMessage>
+ (factory->createMessage(data+1, dataLength-1));
}
void BtExtendedMessage::doReceivedAction()
@@ -116,4 +113,10 @@ void BtExtendedMessage::doReceivedAction()
}
}
+const std::unique_ptr<ExtensionMessage>&
+BtExtendedMessage::getExtensionMessage() const
+{
+ return extensionMessage_;
+}
+
} // namespace aria2