diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-07-01 21:42:51 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-07-01 21:42:51 +0900 |
| commit | 529b9fdceb7b5a277a983badd29dca3cc69259c5 (patch) | |
| tree | 39a3aa941dce2817c0640282ef9a78f9c1984e67 /src/UTMetadataRequestExtensionMessage.cc | |
| parent | 9e35750bb8db4376052898e3ed0e1bfa0bd0bfaf (diff) | |
Use std::unique_ptr for ExtensionMessage
Diffstat (limited to 'src/UTMetadataRequestExtensionMessage.cc')
| -rw-r--r-- | src/UTMetadataRequestExtensionMessage.cc | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/src/UTMetadataRequestExtensionMessage.cc b/src/UTMetadataRequestExtensionMessage.cc index 21795929..42b9a887 100644 --- a/src/UTMetadataRequestExtensionMessage.cc +++ b/src/UTMetadataRequestExtensionMessage.cc @@ -54,13 +54,13 @@ namespace aria2 { UTMetadataRequestExtensionMessage::UTMetadataRequestExtensionMessage -(uint8_t extensionMessageID):UTMetadataExtensionMessage(extensionMessageID), - dispatcher_(0), - messageFactory_(0) +(uint8_t extensionMessageID) + : UTMetadataExtensionMessage{extensionMessageID}, + dctx_{nullptr}, + dispatcher_{nullptr}, + messageFactory_{nullptr} {} -UTMetadataRequestExtensionMessage::~UTMetadataRequestExtensionMessage() {} - std::string UTMetadataRequestExtensionMessage::getPayload() { Dict dict; @@ -81,25 +81,22 @@ void UTMetadataRequestExtensionMessage::doReceivedAction() uint8_t id = peer_->getExtensionMessageID (ExtensionMessageRegistry::UT_METADATA); if(attrs->metadata.empty()) { - std::shared_ptr<UTMetadataRejectExtensionMessage> m - (new UTMetadataRejectExtensionMessage(id)); + auto m = make_unique<UTMetadataRejectExtensionMessage>(id); m->setIndex(getIndex()); dispatcher_->addMessageToQueue - (messageFactory_->createBtExtendedMessage(m)); + (messageFactory_->createBtExtendedMessage(std::move(m))); }else if(getIndex()*METADATA_PIECE_SIZE < attrs->metadataSize) { - std::shared_ptr<UTMetadataDataExtensionMessage> m - (new UTMetadataDataExtensionMessage(id)); + auto m = make_unique<UTMetadataDataExtensionMessage>(id); m->setIndex(getIndex()); m->setTotalSize(attrs->metadataSize); - std::string::const_iterator begin = - attrs->metadata.begin()+getIndex()*METADATA_PIECE_SIZE; - std::string::const_iterator end = + auto begin = std::begin(attrs->metadata)+getIndex()*METADATA_PIECE_SIZE; + auto end = (getIndex()+1)*METADATA_PIECE_SIZE <= attrs->metadata.size()? - attrs->metadata.begin()+(getIndex()+1)*METADATA_PIECE_SIZE: - attrs->metadata.end(); + std::begin(attrs->metadata)+(getIndex()+1)*METADATA_PIECE_SIZE: + std::end(attrs->metadata); m->setData(begin, end); dispatcher_->addMessageToQueue - (messageFactory_->createBtExtendedMessage(m)); + (messageFactory_->createBtExtendedMessage(std::move(m))); } else { throw DL_ABORT_EX (fmt("Metadata piece index is too big. piece=%lu", @@ -108,14 +105,27 @@ void UTMetadataRequestExtensionMessage::doReceivedAction() } void UTMetadataRequestExtensionMessage::setDownloadContext -(const std::shared_ptr<DownloadContext>& dctx) +(DownloadContext* dctx) { dctx_ = dctx; } -void UTMetadataRequestExtensionMessage::setPeer(const std::shared_ptr<Peer>& peer) +void UTMetadataRequestExtensionMessage::setPeer +(const std::shared_ptr<Peer>& peer) { peer_ = peer; } +void UTMetadataRequestExtensionMessage::setBtMessageDispatcher +(BtMessageDispatcher* disp) +{ + dispatcher_ = disp; +} + +void UTMetadataRequestExtensionMessage::setBtMessageFactory +(BtMessageFactory* factory) +{ + messageFactory_ = factory; +} + } // namespace aria2 |
