From 8ba97188ce42be38b5427e9bd70bb7f5ba8238f9 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Fri, 18 Jun 2010 14:47:09 +0000 Subject: 2010-06-18 Tatsuhiro Tsujikawa 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 --- src/UTMetadataRequestExtensionMessage.cc | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/UTMetadataRequestExtensionMessage.cc') 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 attrs = bittorrent::getTorrentAttrs(_dctx); uint8_t id = _peer->getExtensionMessageID("ut_metadata"); - if(!attrs.containsKey(bittorrent::METADATA)) { + if(attrs->metadata.empty()) { SharedHandle m (new UTMetadataRejectExtensionMessage(id)); m->setIndex(getIndex()); SharedHandle 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 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 msg = _messageFactory->createBtExtendedMessage(m); _dispatcher->addMessageToQueue(msg); -- cgit