Index: net/http2/hpack/decoder/hpack_string_decoder.cc |
diff --git a/net/http2/hpack/decoder/hpack_string_decoder.cc b/net/http2/hpack/decoder/hpack_string_decoder.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4131e01b5ce1dd85a8e55e8cdb67df490315d2ae |
--- /dev/null |
+++ b/net/http2/hpack/decoder/hpack_string_decoder.cc |
@@ -0,0 +1,39 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "net/http2/hpack/decoder/hpack_string_decoder.h" |
+ |
+#include <sstream> |
+ |
+namespace net { |
+ |
+std::string HpackStringDecoder::DebugString() const { |
+ std::stringstream ss; |
+ ss << "HpackStringDecoder(state=" << StateToString(state_) |
+ << ", length=" << length_decoder_.DebugString() |
+ << ", remaining=" << remaining_ |
+ << ", huffman=" << (huffman_encoded_ ? "true)" : "false)"); |
+ return ss.str(); |
+} |
+ |
+// static |
+std::string HpackStringDecoder::StateToString(StringDecoderState v) { |
+ switch (v) { |
+ case kStartDecodingLength: |
+ return "kStartDecodingLength"; |
+ case kDecodingString: |
+ return "kDecodingString"; |
+ case kResumeDecodingLength: |
+ return "kResumeDecodingLength"; |
+ } |
+ std::stringstream ss; |
+ ss << "UNKNOWN_STATE(" << static_cast<uint32_t>(v) << ")"; |
+ return ss.str(); |
+} |
+ |
+std::ostream& operator<<(std::ostream& out, const HpackStringDecoder& v) { |
+ return out << v.DebugString(); |
+} |
+ |
+} // namespace net |