diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-06-18 14:47:09 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-06-18 14:47:09 +0000 |
| commit | 8ba97188ce42be38b5427e9bd70bb7f5ba8238f9 (patch) | |
| tree | 6cba1ad1496b6865c215881e7a0f21c009287912 /src/UTMetadataRequestExtensionMessage.cc | |
| parent | 98dc02192d4b10eb6057a7d6a724b2e05a5767ef (diff) | |
2010-06-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Introduced ValueBase class, which is a replacement of BDE. In
this change ValueBase is used instead of BDE except DHT messages,
UTMetadata messages and XML-RPC. They'll be replaced in the later
commits. DownloadContext::_attrs is now ContextAttribute rather
than BDE.
* src/ActivePeerConnectionCommand.cc
* src/AnnounceList.cc
* src/AnnounceList.h
* src/BtDependency.cc
* src/BtRegistry.cc
* src/BtSetup.cc
* src/ConsoleStatCalc.cc
* src/ContextAttribute.h
* src/DefaultBtAnnounce.cc
* src/DefaultBtInteractive.cc
* src/DownloadContext.cc
* src/DownloadContext.h
* src/HandshakeExtensionMessage.cc
* src/InitiateConnectionCommand.cc
* src/LpdReceiveMessageCommand.cc
* src/MSEHandshake.cc
* src/Makefile.am
* src/Makefile.in
* src/PeerInteractionCommand.cc
* src/PeerListProcessor.h
* src/ProtocolDetector.cc
* src/RequestGroup.cc
* src/RequestGroupMan.cc
* src/TorrentAttribute.h
* src/TrackerWatcherCommand.cc
* src/UTMetadataDataExtensionMessage.cc
* src/UTMetadataPostDownloadHandler.cc
* src/UTMetadataRequestExtensionMessage.cc
* src/ValueBase.cc
* src/ValueBase.h
* src/XmlRpcMethodImpl.cc
* src/XmlRpcMethodImpl.h
* src/bencode2.cc
* src/bencode2.h
* src/bittorrent_helper.cc
* src/bittorrent_helper.h
* src/download_helper.cc
* src/magnet.cc
* src/magnet.h
* test/AnnounceListTest.cc
* test/Bencode2Test.cc
* test/BencodeTest.cc
* test/BittorrentHelperTest.cc
* test/BtDependencyTest.cc
* test/BtRegistryTest.cc
* test/DefaultBtAnnounceTest.cc
* test/DefaultBtProgressInfoFileTest.cc
* test/HandshakeExtensionMessageTest.cc
* test/MSEHandshakeTest.cc
* test/MagnetTest.cc
* test/Makefile.am
* test/Makefile.in
* test/RequestGroupManTest.cc
* test/UTMetadataDataExtensionMessageTest.cc
* test/UTMetadataPostDownloadHandlerTest.cc
* test/UTMetadataRequestExtensionMessageTest.cc
* test/ValueBaseTest.cc
* test/XmlRpcMethodTest.cc
Diffstat (limited to 'src/UTMetadataRequestExtensionMessage.cc')
| -rw-r--r-- | src/UTMetadataRequestExtensionMessage.cc | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/UTMetadataRequestExtensionMessage.cc b/src/UTMetadataRequestExtensionMessage.cc index e9e2e1f8..3bbaf4ac 100644 --- a/src/UTMetadataRequestExtensionMessage.cc +++ b/src/UTMetadataRequestExtensionMessage.cc @@ -70,27 +70,25 @@ std::string UTMetadataRequestExtensionMessage::toString() const void UTMetadataRequestExtensionMessage::doReceivedAction() { - const BDE& attrs = _dctx->getAttribute(bittorrent::BITTORRENT); + SharedHandle<TorrentAttribute> attrs = bittorrent::getTorrentAttrs(_dctx); uint8_t id = _peer->getExtensionMessageID("ut_metadata"); - if(!attrs.containsKey(bittorrent::METADATA)) { + if(attrs->metadata.empty()) { SharedHandle<UTMetadataRejectExtensionMessage> m (new UTMetadataRejectExtensionMessage(id)); m->setIndex(getIndex()); SharedHandle<BtMessage> msg = _messageFactory->createBtExtendedMessage(m); _dispatcher->addMessageToQueue(msg); - }else if(getIndex()*METADATA_PIECE_SIZE < - (size_t)attrs[bittorrent::METADATA_SIZE].i()){ + }else if(getIndex()*METADATA_PIECE_SIZE < attrs->metadataSize) { SharedHandle<UTMetadataDataExtensionMessage> m (new UTMetadataDataExtensionMessage(id)); m->setIndex(getIndex()); - m->setTotalSize(attrs[bittorrent::METADATA_SIZE].i()); - const BDE& metadata = attrs[bittorrent::METADATA]; + m->setTotalSize(attrs->metadataSize); std::string::const_iterator begin = - metadata.s().begin()+getIndex()*METADATA_PIECE_SIZE; + attrs->metadata.begin()+getIndex()*METADATA_PIECE_SIZE; std::string::const_iterator end = - (getIndex()+1)*METADATA_PIECE_SIZE <= metadata.s().size()? - metadata.s().begin()+(getIndex()+1)*METADATA_PIECE_SIZE: - metadata.s().end(); + (getIndex()+1)*METADATA_PIECE_SIZE <= attrs->metadata.size()? + attrs->metadata.begin()+(getIndex()+1)*METADATA_PIECE_SIZE: + attrs->metadata.end(); m->setData(std::string(begin, end)); SharedHandle<BtMessage> msg = _messageFactory->createBtExtendedMessage(m); _dispatcher->addMessageToQueue(msg); |
