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/PeerInteractionCommand.cc | |
| parent | 9e35750bb8db4376052898e3ed0e1bfa0bd0bfaf (diff) | |
Use std::unique_ptr for ExtensionMessage
Diffstat (limited to 'src/PeerInteractionCommand.cc')
| -rw-r--r-- | src/PeerInteractionCommand.cc | 69 |
1 files changed, 34 insertions, 35 deletions
diff --git a/src/PeerInteractionCommand.cc b/src/PeerInteractionCommand.cc index f4940435..bddd81d5 100644 --- a/src/PeerInteractionCommand.cc +++ b/src/PeerInteractionCommand.cc @@ -132,25 +132,22 @@ PeerInteractionCommand::PeerInteractionCommand utMetadataRequestTracker.reset(new UTMetadataRequestTracker()); } - DefaultExtensionMessageFactory* extensionMessageFactoryPtr - (new DefaultExtensionMessageFactory(getPeer(), exMsgRegistry)); - extensionMessageFactoryPtr->setPeerStorage(peerStorage); - extensionMessageFactoryPtr->setDownloadContext - (requestGroup_->getDownloadContext()); - extensionMessageFactoryPtr->setUTMetadataRequestTracker + auto extensionMessageFactory = + make_unique<DefaultExtensionMessageFactory>(getPeer(), + exMsgRegistry.get()); + extensionMessageFactory->setPeerStorage(peerStorage.get()); + extensionMessageFactory->setDownloadContext + (requestGroup_->getDownloadContext().get()); + extensionMessageFactory->setUTMetadataRequestTracker (utMetadataRequestTracker.get()); // PieceStorage will be set later. - std::shared_ptr<ExtensionMessageFactory> extensionMessageFactory - (extensionMessageFactoryPtr); - - DefaultBtMessageFactory* factoryPtr(new DefaultBtMessageFactory()); factoryPtr->setCuid(cuid); factoryPtr->setDownloadContext(requestGroup_->getDownloadContext().get()); factoryPtr->setPieceStorage(pieceStorage.get()); factoryPtr->setPeerStorage(peerStorage.get()); - factoryPtr->setExtensionMessageFactory(extensionMessageFactory); + factoryPtr->setExtensionMessageFactory(extensionMessageFactory.get()); factoryPtr->setPeer(getPeer()); if(family == AF_INET) { factoryPtr->setLocalNode(DHTRegistry::getData().localNode.get()); @@ -218,6 +215,30 @@ PeerInteractionCommand::PeerInteractionCommand reqFactoryPtr->setCuid(cuid); std::shared_ptr<BtRequestFactory> reqFactory(reqFactoryPtr); + // reverse depends + factoryPtr->setBtMessageDispatcher(dispatcherPtr); + factoryPtr->setBtRequestFactory(reqFactoryPtr); + factoryPtr->setPeerConnection(peerConnection.get()); + + extensionMessageFactory->setBtMessageDispatcher(dispatcherPtr); + extensionMessageFactory->setBtMessageFactory(factoryPtr); + + if(metadataGetMode) { + utMetadataRequestFactory->setCuid(cuid); + utMetadataRequestFactory->setDownloadContext + (requestGroup_->getDownloadContext().get()); + utMetadataRequestFactory->setBtMessageDispatcher(dispatcherPtr); + utMetadataRequestFactory->setBtMessageFactory(factoryPtr); + utMetadataRequestFactory->setPeer(getPeer()); + utMetadataRequestFactory->setUTMetadataRequestTracker + (utMetadataRequestTracker.get()); + } + + getPeer()->allocateSessionResource + (requestGroup_->getDownloadContext()->getPieceLength(), + requestGroup_->getDownloadContext()->getTotalLength()); + getPeer()->setBtMessageDispatcher(dispatcherPtr); + DefaultBtInteractive* btInteractivePtr (new DefaultBtInteractive(requestGroup_->getDownloadContext(), getPeer())); btInteractivePtr->setBtRuntime(btRuntime_); @@ -228,7 +249,8 @@ PeerInteractionCommand::PeerInteractionCommand btInteractivePtr->setDispatcher(dispatcher); btInteractivePtr->setBtRequestFactory(reqFactory); btInteractivePtr->setPeerConnection(peerConnection); - btInteractivePtr->setExtensionMessageFactory(extensionMessageFactory); + btInteractivePtr->setExtensionMessageFactory + (std::move(extensionMessageFactory)); btInteractivePtr->setExtensionMessageRegistry(exMsgRegistry); btInteractivePtr->setKeepAliveInterval (getOption()->getAsInt(PREF_BT_KEEP_ALIVE_INTERVAL)); @@ -264,29 +286,6 @@ PeerInteractionCommand::PeerInteractionCommand btInteractive_ = btInteractive; - // reverse depends - factoryPtr->setBtMessageDispatcher(dispatcherPtr); - factoryPtr->setBtRequestFactory(reqFactoryPtr); - factoryPtr->setPeerConnection(peerConnection.get()); - - extensionMessageFactoryPtr->setBtMessageDispatcher(dispatcherPtr); - extensionMessageFactoryPtr->setBtMessageFactory(factoryPtr); - - if(metadataGetMode) { - utMetadataRequestFactory->setCuid(cuid); - utMetadataRequestFactory->setDownloadContext - (requestGroup_->getDownloadContext()); - utMetadataRequestFactory->setBtMessageDispatcher(dispatcherPtr); - utMetadataRequestFactory->setBtMessageFactory(factoryPtr); - utMetadataRequestFactory->setPeer(getPeer()); - utMetadataRequestFactory->setUTMetadataRequestTracker - (utMetadataRequestTracker.get()); - } - - getPeer()->allocateSessionResource - (requestGroup_->getDownloadContext()->getPieceLength(), - requestGroup_->getDownloadContext()->getTotalLength()); - getPeer()->setBtMessageDispatcher(dispatcherPtr); btRuntime_->increaseConnections(); requestGroup_->increaseNumCommand(); |
