diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-04-27 11:45:22 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-04-27 11:45:22 +0000 |
| commit | 49b4cfbfcdf615dc01d748179c6b67e78bd5362e (patch) | |
| tree | 607214c9048ae8ba51e38a6c5daa1b99e376d218 /src/bencode.cc | |
| parent | d58742ad21407362db34d508ceef8b7b21088bb1 (diff) | |
2009-04-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Put BDE in aria2 namespace. BDE will also be used to store
xml-rpc request.
* src/AnnounceList.cc
* src/AnnounceList.h
* src/BDE.cc: Added
* src/BDE.h: Added
* src/DHTAbstractMessage.cc
* src/DHTAbstractMessage.h
* src/DHTAnnouncePeerMessage.cc
* src/DHTAnnouncePeerMessage.h
* src/DHTAnnouncePeerReplyMessage.cc
* src/DHTAnnouncePeerReplyMessage.h
* src/DHTFindNodeMessage.cc
* src/DHTFindNodeMessage.h
* src/DHTFindNodeReplyMessage.cc
* src/DHTFindNodeReplyMessage.h
* src/DHTGetPeersMessage.cc
* src/DHTGetPeersMessage.h
* src/DHTGetPeersReplyMessage.cc
* src/DHTGetPeersReplyMessage.h
* src/DHTMessageFactory.h
* src/DHTMessageFactoryImpl.cc
* src/DHTMessageFactoryImpl.h
* src/DHTMessageReceiver.cc
* src/DHTMessageTracker.cc
* src/DHTMessageTracker.h
* src/DHTPingMessage.cc
* src/DHTPingMessage.h
* src/DHTPingReplyMessage.cc
* src/DHTPingReplyMessage.h
* src/DHTQueryMessage.cc
* src/DHTQueryMessage.h
* src/DHTResponseMessage.cc
* src/DHTResponseMessage.h
* src/DefaultBtAnnounce.cc
* src/DefaultBtContext.cc
* src/DefaultBtContext.h
* src/HandshakeExtensionMessage.cc
* src/Makefile.am
* src/PeerListProcessor.h
* src/UTPexExtensionMessage.cc
* src/bencode.cc
* src/bencode.h
* test/AnnounceListTest.cc
* test/BDETest.cc: Added
* test/BencodeTest.cc
* test/DHTAnnouncePeerMessageTest.cc
* test/DHTAnnouncePeerReplyMessageTest.cc
* test/DHTFindNodeMessageTest.cc
* test/DHTFindNodeReplyMessageTest.cc
* test/DHTGetPeersMessageTest.cc
* test/DHTGetPeersReplyMessageTest.cc
* test/DHTMessageFactoryImplTest.cc
* test/DHTMessageTrackerTest.cc
* test/DHTPingMessageTest.cc
* test/DHTPingReplyMessageTest.cc
* test/Makefile.am
* test/MockDHTMessageFactory.h
* test/PeerListProcessorTest.cc
Diffstat (limited to 'src/bencode.cc')
| -rw-r--r-- | src/bencode.cc | 185 |
1 files changed, 1 insertions, 184 deletions
diff --git a/src/bencode.cc b/src/bencode.cc index 5ca10fb3..9b43261e 100644 --- a/src/bencode.cc +++ b/src/bencode.cc @@ -38,195 +38,12 @@ #include <sstream> #include "StringFormat.h" -#include "Util.h" +#include "RecoverableException.h" namespace aria2 { namespace bencode { -const BDE BDE::none; - -BDE::BDE():_type(TYPE_NONE) {} - -BDE::BDE(Integer integer):_type(TYPE_INTEGER), - _bobject(new BInteger(integer)) {} - - -BDE::BDE(const std::string& string):_type(TYPE_STRING), - _bobject(new BString(std::string(string))) {} - -BDE::BDE(const char* cstring):_type(TYPE_STRING), - _bobject(new BString(std::string(cstring))) {} - -BDE::BDE(const char* data, size_t length): - _type(TYPE_STRING), - _bobject(new BString(std::string(&data[0], &data[length]))) {} - -BDE::BDE(const unsigned char* data, size_t length): - _type(TYPE_STRING), - _bobject(new BString(std::string(&data[0], &data[length]))) {} - -BDE BDE::dict() -{ - BDE bde; - bde._type = TYPE_DICT; - bde._bobject.reset(new BDict()); - return bde; -} - -BDE BDE::list() -{ - BDE bde; - bde._type = TYPE_LIST; - bde._bobject.reset(new BList()); - return bde; -} - -// Test for Null data -bool BDE::isNone() const -{ - return _type == TYPE_NONE; -} - -// Integer Interface - -bool BDE::isInteger() const -{ - return _type == TYPE_INTEGER; -} - -BDE::Integer BDE::i() const -{ - return _bobject->i(); -} - -// String Interface - -bool BDE::isString() const -{ - return _type == TYPE_STRING; -} - -const std::string& BDE::s() const -{ - return _bobject->s(); -} - -const unsigned char* BDE::uc() const -{ - return _bobject->uc(); -} - -// Dictionary Interface - -bool BDE::isDict() const -{ - return _type == TYPE_DICT; -} - -BDE& BDE::operator[](const std::string& key) -{ - return _bobject->operator[](key); -} - -const BDE& BDE::operator[](const std::string& key) const -{ - if(_bobject->containsKey(key)) { - return _bobject->operator[](key); - } else { - return none; - } -} - -bool BDE::containsKey(const std::string& key) const -{ - return _bobject->containsKey(key); -} - -void BDE::removeKey(const std::string& key) -{ - _bobject->removeKey(key); -} - -BDE::Dict::iterator BDE::dictBegin() -{ - return _bobject->dictBegin(); -} - -BDE::Dict::const_iterator BDE::dictBegin() const -{ - return _bobject->dictBegin(); -} - -BDE::Dict::iterator BDE::dictEnd() -{ - return _bobject->dictEnd(); -} - -BDE::Dict::const_iterator BDE::dictEnd() const -{ - return _bobject->dictEnd(); -} - -// List Interface - -bool BDE::isList() const -{ - return _type == TYPE_LIST; -} - -void BDE::append(const BDE& bde) -{ - _bobject->append(bde); -} - -void BDE::operator<<(const BDE& bde) -{ - _bobject->operator<<(bde); -} - -BDE& BDE::operator[](size_t index) -{ - return _bobject->operator[](index); -} - -const BDE& BDE::operator[](size_t index) const -{ - return _bobject->operator[](index); -} - -BDE::List::iterator BDE::listBegin() -{ - return _bobject->listBegin(); -} - -BDE::List::const_iterator BDE::listBegin() const -{ - return _bobject->listBegin(); -} - -BDE::List::iterator BDE::listEnd() -{ - return _bobject->listEnd(); -} - -BDE::List::const_iterator BDE::listEnd() const -{ - return _bobject->listEnd(); -} - -// Callable from List and Dict -size_t BDE::size() const -{ - return _bobject->size(); -} - -// Callable from List and Dict -bool BDE::empty() const -{ - return _bobject->empty(); -} - static BDE decodeiter(std::istream& ss); static void checkdelim(std::istream& ss, const char delim = ':') |
