diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-03-26 17:12:52 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-03-26 17:20:27 +0900 |
| commit | d64089632e82a2548752c7a6baaa68365a795a74 (patch) | |
| tree | 57fc7b85a8c1290975d58fa4761b04a7695bf7e3 /src/bencode2.cc | |
| parent | c81b1321122e8509b55c94c0cbca0d8d6d319f0c (diff) | |
| parent | a7cd943a06b1a5ff4515b57060b84037f8d01f9f (diff) | |
Merge branch 'master' into random-webseeding
Diffstat (limited to 'src/bencode2.cc')
| -rw-r--r-- | src/bencode2.cc | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/bencode2.cc b/src/bencode2.cc index e55b8b6e..c3a84d8d 100644 --- a/src/bencode2.cc +++ b/src/bencode2.cc @@ -65,12 +65,11 @@ std::unique_ptr<ValueBase> decode(const unsigned char* data, size_t len, { ssize_t error; bittorrent::ValueBaseBencodeParser parser; - auto res = - parser.parseFinal(reinterpret_cast<const char*>(data), len, error); - if(error < 0) { - throw DL_ABORT_EX2(fmt("Bencode decoding failed: error=%d", - static_cast<int>(error)), - error_code::BENCODE_PARSE_ERROR); + auto res = parser.parseFinal(reinterpret_cast<const char*>(data), len, error); + if (error < 0) { + throw DL_ABORT_EX2( + fmt("Bencode decoding failed: error=%d", static_cast<int>(error)), + error_code::BENCODE_PARSE_ERROR); } end = error; return res; @@ -78,9 +77,10 @@ std::unique_ptr<ValueBase> decode(const unsigned char* data, size_t len, std::string encode(const ValueBase* vlb) { - class BencodeValueBaseVisitor:public ValueBaseVisitor { + class BencodeValueBaseVisitor : public ValueBaseVisitor { private: std::ostringstream out_; + public: virtual void visit(const String& string) CXX11_OVERRIDE { @@ -100,7 +100,7 @@ std::string encode(const ValueBase* vlb) virtual void visit(const List& list) CXX11_OVERRIDE { out_ << "l"; - for(const auto& e: list){ + for (const auto& e : list) { e->accept(*this); } out_ << "e"; @@ -109,7 +109,7 @@ std::string encode(const ValueBase* vlb) virtual void visit(const Dict& dict) CXX11_OVERRIDE { out_ << "d"; - for(const auto& e: dict){ + for (const auto& e : dict) { auto& key = e.first; out_ << key.size() << ":"; out_.write(key.data(), key.size()); @@ -118,10 +118,7 @@ std::string encode(const ValueBase* vlb) out_ << "e"; } - std::string getResult() const - { - return out_.str(); - } + std::string getResult() const { return out_.str(); } }; BencodeValueBaseVisitor visitor; vlb->accept(visitor); |
