Replace quiche::QuicheStringPiece with absl::string_view.
PiperOrigin-RevId: 336771408
Change-Id: I8ba3008a73a53520b3f6646aa7f698e25e0ecacf
diff --git a/spdy/core/http2_frame_decoder_adapter.h b/spdy/core/http2_frame_decoder_adapter.h
index 1ac20c2..a75ab23 100644
--- a/spdy/core/http2_frame_decoder_adapter.h
+++ b/spdy/core/http2_frame_decoder_adapter.h
@@ -11,10 +11,10 @@
#include <memory>
#include <string>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/http2/decoder/http2_frame_decoder.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_optional.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
#include "net/third_party/quiche/src/spdy/core/hpack/hpack_decoder_adapter.h"
#include "net/third_party/quiche/src/spdy/core/hpack/hpack_header_table.h"
#include "net/third_party/quiche/src/spdy/core/spdy_alt_svc_wire_format.h"
@@ -494,7 +494,7 @@
// Called when an ALTSVC frame has been parsed.
virtual void OnAltSvc(
SpdyStreamId /*stream_id*/,
- quiche::QuicheStringPiece /*origin*/,
+ absl::string_view /*origin*/,
const SpdyAltSvcWireFormat::AlternativeServiceVector& /*altsvc_vector*/) {
}
diff --git a/spdy/core/mock_spdy_framer_visitor.h b/spdy/core/mock_spdy_framer_visitor.h
index e54c869..31ed952 100644
--- a/spdy/core/mock_spdy_framer_visitor.h
+++ b/spdy/core/mock_spdy_framer_visitor.h
@@ -9,7 +9,7 @@
#include <memory>
#include <utility>
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_test.h"
#include "net/third_party/quiche/src/spdy/core/http2_frame_decoder_adapter.h"
#include "net/third_party/quiche/src/spdy/core/spdy_test_utils.h"
@@ -90,7 +90,7 @@
void,
OnAltSvc,
(SpdyStreamId stream_id,
- quiche::QuicheStringPiece origin,
+ absl::string_view origin,
const SpdyAltSvcWireFormat::AlternativeServiceVector& altsvc_vector),
(override));
MOCK_METHOD(void,
diff --git a/spdy/core/spdy_alt_svc_wire_format.cc b/spdy/core/spdy_alt_svc_wire_format.cc
index 7f7ca29..ac85b9c 100644
--- a/spdy/core/spdy_alt_svc_wire_format.cc
+++ b/spdy/core/spdy_alt_svc_wire_format.cc
@@ -17,8 +17,8 @@
namespace {
template <class T>
-bool ParsePositiveIntegerImpl(quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
+bool ParsePositiveIntegerImpl(absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
T* value) {
*value = 0;
for (; c != end && std::isdigit(*c); ++c) {
@@ -57,20 +57,20 @@
// static
bool SpdyAltSvcWireFormat::ParseHeaderFieldValue(
- quiche::QuicheStringPiece value,
+ absl::string_view value,
AlternativeServiceVector* altsvc_vector) {
// Empty value is invalid according to the specification.
if (value.empty()) {
return false;
}
altsvc_vector->clear();
- if (value == quiche::QuicheStringPiece("clear")) {
+ if (value == absl::string_view("clear")) {
return true;
}
- quiche::QuicheStringPiece::const_iterator c = value.begin();
+ absl::string_view::const_iterator c = value.begin();
while (c != value.end()) {
// Parse protocol-id.
- quiche::QuicheStringPiece::const_iterator percent_encoded_protocol_id_end =
+ absl::string_view::const_iterator percent_encoded_protocol_id_end =
std::find(c, value.end(), '=');
std::string protocol_id;
if (percent_encoded_protocol_id_end == c ||
@@ -91,7 +91,7 @@
return false;
}
++c;
- quiche::QuicheStringPiece::const_iterator alt_authority_begin = c;
+ absl::string_view::const_iterator alt_authority_begin = c;
for (; c != value.end() && *c != '"'; ++c) {
// Decode backslash encoding.
if (*c != '\\') {
@@ -115,7 +115,7 @@
// Parse parameters.
uint32_t max_age = 86400;
VersionVector version;
- quiche::QuicheStringPiece::const_iterator parameters_end =
+ absl::string_view::const_iterator parameters_end =
std::find(c, value.end(), ',');
while (c != parameters_end) {
SkipWhiteSpace(&c, parameters_end);
@@ -140,7 +140,7 @@
}
++c;
SkipWhiteSpace(&c, parameters_end);
- quiche::QuicheStringPiece::const_iterator parameter_value_begin = c;
+ absl::string_view::const_iterator parameter_value_begin = c;
for (; c != parameters_end && *c != ';' && *c != ' ' && *c != '\t'; ++c) {
}
if (c == parameter_value_begin) {
@@ -164,10 +164,9 @@
}
++c;
parameters_end = std::find(c, value.end(), ',');
- quiche::QuicheStringPiece::const_iterator v_begin =
- parameter_value_begin + 1;
+ absl::string_view::const_iterator v_begin = parameter_value_begin + 1;
while (v_begin < c) {
- quiche::QuicheStringPiece::const_iterator v_end = v_begin;
+ absl::string_view::const_iterator v_end = v_begin;
while (v_end < c - 1 && *v_end != ',') {
++v_end;
}
@@ -196,10 +195,9 @@
// hq=":443";quic=51303338
// ... will be stored in |versions| as 0x51303338.
uint32_t quic_version;
- if (!SpdyHexDecodeToUInt32(
- quiche::QuicheStringPiece(&*parameter_value_begin,
- c - parameter_value_begin),
- &quic_version) ||
+ if (!SpdyHexDecodeToUInt32(absl::string_view(&*parameter_value_begin,
+ c - parameter_value_begin),
+ &quic_version) ||
quic_version == 0) {
return false;
}
@@ -295,17 +293,16 @@
// static
void SpdyAltSvcWireFormat::SkipWhiteSpace(
- quiche::QuicheStringPiece::const_iterator* c,
- quiche::QuicheStringPiece::const_iterator end) {
+ absl::string_view::const_iterator* c,
+ absl::string_view::const_iterator end) {
for (; *c != end && (**c == ' ' || **c == '\t'); ++*c) {
}
}
// static
-bool SpdyAltSvcWireFormat::PercentDecode(
- quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
- std::string* output) {
+bool SpdyAltSvcWireFormat::PercentDecode(absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
+ std::string* output) {
output->clear();
for (; c != end; ++c) {
if (*c != '%') {
@@ -331,8 +328,8 @@
// static
bool SpdyAltSvcWireFormat::ParseAltAuthority(
- quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
+ absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
std::string* host,
uint16_t* port) {
host->clear();
@@ -378,16 +375,16 @@
// static
bool SpdyAltSvcWireFormat::ParsePositiveInteger16(
- quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
+ absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
uint16_t* value) {
return ParsePositiveIntegerImpl<uint16_t>(c, end, value);
}
// static
bool SpdyAltSvcWireFormat::ParsePositiveInteger32(
- quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
+ absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
uint32_t* value) {
return ParsePositiveIntegerImpl<uint32_t>(c, end, value);
}
diff --git a/spdy/core/spdy_alt_svc_wire_format.h b/spdy/core/spdy_alt_svc_wire_format.h
index 4d25450..30462fe 100644
--- a/spdy/core/spdy_alt_svc_wire_format.h
+++ b/spdy/core/spdy_alt_svc_wire_format.h
@@ -14,8 +14,8 @@
#include <string>
#include <vector>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
#include "net/third_party/quiche/src/spdy/platform/api/spdy_containers.h"
namespace spdy {
@@ -60,29 +60,27 @@
typedef std::vector<AlternativeService> AlternativeServiceVector;
friend class test::SpdyAltSvcWireFormatPeer;
- static bool ParseHeaderFieldValue(quiche::QuicheStringPiece value,
+ static bool ParseHeaderFieldValue(absl::string_view value,
AlternativeServiceVector* altsvc_vector);
static std::string SerializeHeaderFieldValue(
const AlternativeServiceVector& altsvc_vector);
private:
- static void SkipWhiteSpace(quiche::QuicheStringPiece::const_iterator* c,
- quiche::QuicheStringPiece::const_iterator end);
- static bool PercentDecode(quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
+ static void SkipWhiteSpace(absl::string_view::const_iterator* c,
+ absl::string_view::const_iterator end);
+ static bool PercentDecode(absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
std::string* output);
- static bool ParseAltAuthority(quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
+ static bool ParseAltAuthority(absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
std::string* host,
uint16_t* port);
- static bool ParsePositiveInteger16(
- quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
- uint16_t* value);
- static bool ParsePositiveInteger32(
- quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
- uint32_t* value);
+ static bool ParsePositiveInteger16(absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
+ uint16_t* value);
+ static bool ParsePositiveInteger32(absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
+ uint32_t* value);
};
} // namespace spdy
diff --git a/spdy/core/spdy_alt_svc_wire_format_test.cc b/spdy/core/spdy_alt_svc_wire_format_test.cc
index d80de7d..a4127c8 100644
--- a/spdy/core/spdy_alt_svc_wire_format_test.cc
+++ b/spdy/core/spdy_alt_svc_wire_format_test.cc
@@ -14,31 +14,29 @@
// Expose all private methods of class SpdyAltSvcWireFormat.
class SpdyAltSvcWireFormatPeer {
public:
- static void SkipWhiteSpace(quiche::QuicheStringPiece::const_iterator* c,
- quiche::QuicheStringPiece::const_iterator end) {
+ static void SkipWhiteSpace(absl::string_view::const_iterator* c,
+ absl::string_view::const_iterator end) {
SpdyAltSvcWireFormat::SkipWhiteSpace(c, end);
}
- static bool PercentDecode(quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
+ static bool PercentDecode(absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
std::string* output) {
return SpdyAltSvcWireFormat::PercentDecode(c, end, output);
}
- static bool ParseAltAuthority(quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
+ static bool ParseAltAuthority(absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
std::string* host,
uint16_t* port) {
return SpdyAltSvcWireFormat::ParseAltAuthority(c, end, host, port);
}
- static bool ParsePositiveInteger16(
- quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
- uint16_t* max_age) {
+ static bool ParsePositiveInteger16(absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
+ uint16_t* max_age) {
return SpdyAltSvcWireFormat::ParsePositiveInteger16(c, end, max_age);
}
- static bool ParsePositiveInteger32(
- quiche::QuicheStringPiece::const_iterator c,
- quiche::QuicheStringPiece::const_iterator end,
- uint32_t* max_age) {
+ static bool ParsePositiveInteger32(absl::string_view::const_iterator c,
+ absl::string_view::const_iterator end,
+ uint32_t* max_age) {
return SpdyAltSvcWireFormat::ParsePositiveInteger32(c, end, max_age);
}
};
@@ -389,8 +387,8 @@
// Test SkipWhiteSpace().
TEST(SpdyAltSvcWireFormatTest, SkipWhiteSpace) {
- quiche::QuicheStringPiece input("a \tb ");
- quiche::QuicheStringPiece::const_iterator c = input.begin();
+ absl::string_view input("a \tb ");
+ absl::string_view::const_iterator c = input.begin();
test::SpdyAltSvcWireFormatPeer::SkipWhiteSpace(&c, input.end());
ASSERT_EQ(input.begin(), c);
++c;
@@ -403,19 +401,19 @@
// Test PercentDecode() on valid input.
TEST(SpdyAltSvcWireFormatTest, PercentDecodeValid) {
- quiche::QuicheStringPiece input("");
+ absl::string_view input("");
std::string output;
ASSERT_TRUE(test::SpdyAltSvcWireFormatPeer::PercentDecode(
input.begin(), input.end(), &output));
EXPECT_EQ("", output);
- input = quiche::QuicheStringPiece("foo");
+ input = absl::string_view("foo");
output.clear();
ASSERT_TRUE(test::SpdyAltSvcWireFormatPeer::PercentDecode(
input.begin(), input.end(), &output));
EXPECT_EQ("foo", output);
- input = quiche::QuicheStringPiece("%2ca%5Cb");
+ input = absl::string_view("%2ca%5Cb");
output.clear();
ASSERT_TRUE(test::SpdyAltSvcWireFormatPeer::PercentDecode(
input.begin(), input.end(), &output));
@@ -426,7 +424,7 @@
TEST(SpdyAltSvcWireFormatTest, PercentDecodeInvalid) {
const char* invalid_input_array[] = {"a%", "a%x", "a%b", "%J22", "%9z"};
for (const char* invalid_input : invalid_input_array) {
- quiche::QuicheStringPiece input(invalid_input);
+ absl::string_view input(invalid_input);
std::string output;
EXPECT_FALSE(test::SpdyAltSvcWireFormatPeer::PercentDecode(
input.begin(), input.end(), &output))
@@ -436,7 +434,7 @@
// Test ParseAltAuthority() on valid input.
TEST(SpdyAltSvcWireFormatTest, ParseAltAuthorityValid) {
- quiche::QuicheStringPiece input(":42");
+ absl::string_view input(":42");
std::string host;
uint16_t port;
ASSERT_TRUE(test::SpdyAltSvcWireFormatPeer::ParseAltAuthority(
@@ -444,13 +442,13 @@
EXPECT_TRUE(host.empty());
EXPECT_EQ(42, port);
- input = quiche::QuicheStringPiece("foo:137");
+ input = absl::string_view("foo:137");
ASSERT_TRUE(test::SpdyAltSvcWireFormatPeer::ParseAltAuthority(
input.begin(), input.end(), &host, &port));
EXPECT_EQ("foo", host);
EXPECT_EQ(137, port);
- input = quiche::QuicheStringPiece("[2003:8:0:16::509d:9615]:443");
+ input = absl::string_view("[2003:8:0:16::509d:9615]:443");
ASSERT_TRUE(test::SpdyAltSvcWireFormatPeer::ParseAltAuthority(
input.begin(), input.end(), &host, &port));
EXPECT_EQ("[2003:8:0:16::509d:9615]", host);
@@ -477,7 +475,7 @@
"[2003:8:0:16::509d:9615:443",
"2003:8:0:16::509d:9615]:443"};
for (const char* invalid_input : invalid_input_array) {
- quiche::QuicheStringPiece input(invalid_input);
+ absl::string_view input(invalid_input);
std::string host;
uint16_t port;
EXPECT_FALSE(test::SpdyAltSvcWireFormatPeer::ParseAltAuthority(
@@ -488,13 +486,13 @@
// Test ParseInteger() on valid input.
TEST(SpdyAltSvcWireFormatTest, ParseIntegerValid) {
- quiche::QuicheStringPiece input("3");
+ absl::string_view input("3");
uint16_t value;
ASSERT_TRUE(test::SpdyAltSvcWireFormatPeer::ParsePositiveInteger16(
input.begin(), input.end(), &value));
EXPECT_EQ(3, value);
- input = quiche::QuicheStringPiece("1337");
+ input = absl::string_view("1337");
ASSERT_TRUE(test::SpdyAltSvcWireFormatPeer::ParsePositiveInteger16(
input.begin(), input.end(), &value));
EXPECT_EQ(1337, value);
@@ -505,7 +503,7 @@
TEST(SpdyAltSvcWireFormatTest, ParseIntegerInvalid) {
const char* invalid_input_array[] = {"", " ", "a", "0", "00", "1 ", "12b"};
for (const char* invalid_input : invalid_input_array) {
- quiche::QuicheStringPiece input(invalid_input);
+ absl::string_view input(invalid_input);
uint16_t value;
EXPECT_FALSE(test::SpdyAltSvcWireFormatPeer::ParsePositiveInteger16(
input.begin(), input.end(), &value))
@@ -516,39 +514,39 @@
// Test ParseIntegerValid() around overflow limit.
TEST(SpdyAltSvcWireFormatTest, ParseIntegerOverflow) {
// Largest possible uint16_t value.
- quiche::QuicheStringPiece input("65535");
+ absl::string_view input("65535");
uint16_t value16;
ASSERT_TRUE(test::SpdyAltSvcWireFormatPeer::ParsePositiveInteger16(
input.begin(), input.end(), &value16));
EXPECT_EQ(65535, value16);
// Overflow uint16_t, ParsePositiveInteger16() should return false.
- input = quiche::QuicheStringPiece("65536");
+ input = absl::string_view("65536");
ASSERT_FALSE(test::SpdyAltSvcWireFormatPeer::ParsePositiveInteger16(
input.begin(), input.end(), &value16));
// However, even if overflow is not checked for, 65536 overflows to 0, which
// returns false anyway. Check for a larger number which overflows to 1.
- input = quiche::QuicheStringPiece("65537");
+ input = absl::string_view("65537");
ASSERT_FALSE(test::SpdyAltSvcWireFormatPeer::ParsePositiveInteger16(
input.begin(), input.end(), &value16));
// Largest possible uint32_t value.
- input = quiche::QuicheStringPiece("4294967295");
+ input = absl::string_view("4294967295");
uint32_t value32;
ASSERT_TRUE(test::SpdyAltSvcWireFormatPeer::ParsePositiveInteger32(
input.begin(), input.end(), &value32));
EXPECT_EQ(4294967295, value32);
// Overflow uint32_t, ParsePositiveInteger32() should return false.
- input = quiche::QuicheStringPiece("4294967296");
+ input = absl::string_view("4294967296");
ASSERT_FALSE(test::SpdyAltSvcWireFormatPeer::ParsePositiveInteger32(
input.begin(), input.end(), &value32));
// However, even if overflow is not checked for, 4294967296 overflows to 0,
// which returns false anyway. Check for a larger number which overflows to
// 1.
- input = quiche::QuicheStringPiece("4294967297");
+ input = absl::string_view("4294967297");
ASSERT_FALSE(test::SpdyAltSvcWireFormatPeer::ParsePositiveInteger32(
input.begin(), input.end(), &value32));
}
diff --git a/spdy/core/spdy_deframer_visitor.cc b/spdy/core/spdy_deframer_visitor.cc
index 9e20e3e..f5d3646 100644
--- a/spdy/core/spdy_deframer_visitor.cc
+++ b/spdy/core/spdy_deframer_visitor.cc
@@ -11,8 +11,8 @@
#include <limits>
#include <memory>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/http2/platform/api/http2_macros.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
#include "net/third_party/quiche/src/spdy/core/hpack/hpack_constants.h"
#include "net/third_party/quiche/src/spdy/core/mock_spdy_framer_visitor.h"
#include "net/third_party/quiche/src/spdy/core/spdy_frame_reader.h"
@@ -138,7 +138,7 @@
// alphabetical order for ease of navigation, and are not in same order
// as in SpdyFramerVisitorInterface.
void OnAltSvc(SpdyStreamId stream_id,
- quiche::QuicheStringPiece origin,
+ absl::string_view origin,
const SpdyAltSvcWireFormat::AlternativeServiceVector&
altsvc_vector) override;
void OnContinuation(SpdyStreamId stream_id, bool end) override;
@@ -185,8 +185,7 @@
// Callbacks defined in SpdyHeadersHandlerInterface.
void OnHeaderBlockStart() override;
- void OnHeader(quiche::QuicheStringPiece key,
- quiche::QuicheStringPiece value) override;
+ void OnHeader(absl::string_view key, absl::string_view value) override;
void OnHeaderBlockEnd(size_t header_bytes_parsed,
size_t compressed_header_bytes_parsed) override;
@@ -411,7 +410,7 @@
void SpdyTestDeframerImpl::OnAltSvc(
SpdyStreamId stream_id,
- quiche::QuicheStringPiece origin,
+ absl::string_view origin,
const SpdyAltSvcWireFormat::AlternativeServiceVector& altsvc_vector) {
SPDY_DVLOG(1) << "OnAltSvc stream_id: " << stream_id;
CHECK_EQ(frame_type_, UNSET)
@@ -757,8 +756,8 @@
got_hpack_end_ = false;
}
-void SpdyTestDeframerImpl::OnHeader(quiche::QuicheStringPiece key,
- quiche::QuicheStringPiece value) {
+void SpdyTestDeframerImpl::OnHeader(absl::string_view key,
+ absl::string_view value) {
CHECK(frame_type_ == HEADERS || frame_type_ == CONTINUATION ||
frame_type_ == PUSH_PROMISE)
<< " frame_type_=" << Http2FrameTypeToString(frame_type_);
diff --git a/spdy/core/spdy_deframer_visitor.h b/spdy/core/spdy_deframer_visitor.h
index 2753523..f17df98 100644
--- a/spdy/core/spdy_deframer_visitor.h
+++ b/spdy/core/spdy_deframer_visitor.h
@@ -45,7 +45,7 @@
// framer.set_visitor(the_deframer.get());
//
// // Process frames.
-// QuicheStringPiece input = ...
+// absl::string_view input = ...
// while (!input.empty() && !framer.HasError()) {
// size_t consumed = framer.ProcessInput(input.data(), input.size());
// input.remove_prefix(consumed);
diff --git a/spdy/core/spdy_frame_builder.cc b/spdy/core/spdy_frame_builder.cc
index 492cd43..93fb284 100644
--- a/spdy/core/spdy_frame_builder.cc
+++ b/spdy/core/spdy_frame_builder.cc
@@ -120,8 +120,7 @@
return success;
}
-bool SpdyFrameBuilder::WriteStringPiece32(
- const quiche::QuicheStringPiece value) {
+bool SpdyFrameBuilder::WriteStringPiece32(const absl::string_view value) {
if (!WriteUInt32(value.size())) {
return false;
}
diff --git a/spdy/core/spdy_frame_builder.h b/spdy/core/spdy_frame_builder.h
index 4853d44..f840099 100644
--- a/spdy/core/spdy_frame_builder.h
+++ b/spdy/core/spdy_frame_builder.h
@@ -9,8 +9,8 @@
#include <cstdint>
#include <memory>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
#include "net/third_party/quiche/src/spdy/core/spdy_protocol.h"
#include "net/third_party/quiche/src/spdy/core/zero_copy_output_buffer.h"
#include "net/third_party/quiche/src/spdy/platform/api/spdy_bug_tracker.h"
@@ -100,7 +100,7 @@
return (WriteBytes(&upper, sizeof(upper)) &&
WriteBytes(&lower, sizeof(lower)));
}
- bool WriteStringPiece32(const quiche::QuicheStringPiece value);
+ bool WriteStringPiece32(const absl::string_view value);
bool WriteBytes(const void* data, uint32_t data_len);
private:
diff --git a/spdy/core/spdy_frame_builder_test.cc b/spdy/core/spdy_frame_builder_test.cc
index b109323..8f6a7b4 100644
--- a/spdy/core/spdy_frame_builder_test.cc
+++ b/spdy/core/spdy_frame_builder_test.cc
@@ -48,8 +48,8 @@
SpdySerializedFrame frame(builder.take());
char expected[kBuilderSize];
memset(expected, ~1, kBuilderSize);
- EXPECT_EQ(quiche::QuicheStringPiece(expected, kBuilderSize),
- quiche::QuicheStringPiece(frame.data(), kBuilderSize));
+ EXPECT_EQ(absl::string_view(expected, kBuilderSize),
+ absl::string_view(frame.data(), kBuilderSize));
}
// Verifies that SpdyFrameBuilder::GetWritableBuffer() can be used to build a
@@ -66,8 +66,8 @@
SpdySerializedFrame frame(output.Begin(), kBuilderSize, false);
char expected[kBuilderSize];
memset(expected, ~1, kBuilderSize);
- EXPECT_EQ(quiche::QuicheStringPiece(expected, kBuilderSize),
- quiche::QuicheStringPiece(frame.data(), kBuilderSize));
+ EXPECT_EQ(absl::string_view(expected, kBuilderSize),
+ absl::string_view(frame.data(), kBuilderSize));
}
// Verifies the case that the buffer's capacity is too small.
diff --git a/spdy/core/spdy_frame_reader.cc b/spdy/core/spdy_frame_reader.cc
index 253f906..a76beb3 100644
--- a/spdy/core/spdy_frame_reader.cc
+++ b/spdy/core/spdy_frame_reader.cc
@@ -109,7 +109,7 @@
return true;
}
-bool SpdyFrameReader::ReadStringPiece16(quiche::QuicheStringPiece* result) {
+bool SpdyFrameReader::ReadStringPiece16(absl::string_view* result) {
// Read resultant length.
uint16_t result_len;
if (!ReadUInt16(&result_len)) {
@@ -124,7 +124,7 @@
}
// Set result.
- *result = quiche::QuicheStringPiece(data_ + ofs_, result_len);
+ *result = absl::string_view(data_ + ofs_, result_len);
// Iterate.
ofs_ += result_len;
@@ -132,7 +132,7 @@
return true;
}
-bool SpdyFrameReader::ReadStringPiece32(quiche::QuicheStringPiece* result) {
+bool SpdyFrameReader::ReadStringPiece32(absl::string_view* result) {
// Read resultant length.
uint32_t result_len;
if (!ReadUInt32(&result_len)) {
@@ -147,7 +147,7 @@
}
// Set result.
- *result = quiche::QuicheStringPiece(data_ + ofs_, result_len);
+ *result = absl::string_view(data_ + ofs_, result_len);
// Iterate.
ofs_ += result_len;
diff --git a/spdy/core/spdy_frame_reader.h b/spdy/core/spdy_frame_reader.h
index 0ed5be4..e097ee3 100644
--- a/spdy/core/spdy_frame_reader.h
+++ b/spdy/core/spdy_frame_reader.h
@@ -7,8 +7,8 @@
#include <cstdint>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
namespace spdy {
@@ -73,7 +73,7 @@
//
// Forwards the internal iterator on success.
// Returns true on success, false otherwise.
- bool ReadStringPiece16(quiche::QuicheStringPiece* result);
+ bool ReadStringPiece16(absl::string_view* result);
// Reads a string prefixed with 32-bit length into the given output parameter.
//
@@ -82,7 +82,7 @@
//
// Forwards the internal iterator on success.
// Returns true on success, false otherwise.
- bool ReadStringPiece32(quiche::QuicheStringPiece* result);
+ bool ReadStringPiece32(absl::string_view* result);
// Reads a given number of bytes into the given buffer. The buffer
// must be of adequate size.
diff --git a/spdy/core/spdy_frame_reader_test.cc b/spdy/core/spdy_frame_reader_test.cc
index 0bbe7f6..2a79caf 100644
--- a/spdy/core/spdy_frame_reader_test.cc
+++ b/spdy/core/spdy_frame_reader_test.cc
@@ -67,7 +67,7 @@
SpdyFrameReader frame_reader(kFrameData, QUICHE_ARRAYSIZE(kFrameData));
EXPECT_FALSE(frame_reader.IsDoneReading());
- quiche::QuicheStringPiece stringpiece_val;
+ absl::string_view stringpiece_val;
EXPECT_TRUE(frame_reader.ReadStringPiece16(&stringpiece_val));
EXPECT_FALSE(frame_reader.IsDoneReading());
EXPECT_EQ(0, stringpiece_val.compare("Hi"));
@@ -90,7 +90,7 @@
SpdyFrameReader frame_reader(kFrameData, QUICHE_ARRAYSIZE(kFrameData));
EXPECT_FALSE(frame_reader.IsDoneReading());
- quiche::QuicheStringPiece stringpiece_val;
+ absl::string_view stringpiece_val;
EXPECT_TRUE(frame_reader.ReadStringPiece32(&stringpiece_val));
EXPECT_FALSE(frame_reader.IsDoneReading());
EXPECT_EQ(0, stringpiece_val.compare("foo"));
@@ -142,7 +142,7 @@
SpdyFrameReader frame_reader(kFrameData, QUICHE_ARRAYSIZE(kFrameData));
EXPECT_FALSE(frame_reader.IsDoneReading());
- quiche::QuicheStringPiece stringpiece_val;
+ absl::string_view stringpiece_val;
EXPECT_FALSE(frame_reader.ReadStringPiece16(&stringpiece_val));
// Also make sure that trying to read a uint16_t, which technically could
@@ -161,7 +161,7 @@
SpdyFrameReader frame_reader(kFrameData, QUICHE_ARRAYSIZE(kFrameData));
EXPECT_FALSE(frame_reader.IsDoneReading());
- quiche::QuicheStringPiece stringpiece_val;
+ absl::string_view stringpiece_val;
EXPECT_FALSE(frame_reader.ReadStringPiece16(&stringpiece_val));
// Also make sure that trying to read a uint16_t, which technically could
@@ -181,7 +181,7 @@
SpdyFrameReader frame_reader(kFrameData, QUICHE_ARRAYSIZE(kFrameData));
EXPECT_FALSE(frame_reader.IsDoneReading());
- quiche::QuicheStringPiece stringpiece_val;
+ absl::string_view stringpiece_val;
EXPECT_FALSE(frame_reader.ReadStringPiece32(&stringpiece_val));
// Also make sure that trying to read a uint16_t, which technically could
@@ -200,7 +200,7 @@
SpdyFrameReader frame_reader(kFrameData, QUICHE_ARRAYSIZE(kFrameData));
EXPECT_FALSE(frame_reader.IsDoneReading());
- quiche::QuicheStringPiece stringpiece_val;
+ absl::string_view stringpiece_val;
EXPECT_FALSE(frame_reader.ReadStringPiece32(&stringpiece_val));
// Also make sure that trying to read a uint16_t, which technically could
@@ -222,12 +222,12 @@
char dest1[3] = {};
EXPECT_TRUE(frame_reader.ReadBytes(&dest1, QUICHE_ARRAYSIZE(dest1)));
EXPECT_FALSE(frame_reader.IsDoneReading());
- EXPECT_EQ("foo", quiche::QuicheStringPiece(dest1, QUICHE_ARRAYSIZE(dest1)));
+ EXPECT_EQ("foo", absl::string_view(dest1, QUICHE_ARRAYSIZE(dest1)));
char dest2[2] = {};
EXPECT_TRUE(frame_reader.ReadBytes(&dest2, QUICHE_ARRAYSIZE(dest2)));
EXPECT_TRUE(frame_reader.IsDoneReading());
- EXPECT_EQ("Hi", quiche::QuicheStringPiece(dest2, QUICHE_ARRAYSIZE(dest2)));
+ EXPECT_EQ("Hi", absl::string_view(dest2, QUICHE_ARRAYSIZE(dest2)));
}
TEST(SpdyFrameReaderTest, ReadBytesWithBufferTooSmall) {
diff --git a/spdy/core/spdy_framer.h b/spdy/core/spdy_framer.h
index f16e3bd..99c2037 100644
--- a/spdy/core/spdy_framer.h
+++ b/spdy/core/spdy_framer.h
@@ -13,8 +13,8 @@
#include <string>
#include <utility>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
#include "net/third_party/quiche/src/spdy/core/hpack/hpack_encoder.h"
#include "net/third_party/quiche/src/spdy/core/spdy_alt_svc_wire_format.h"
#include "net/third_party/quiche/src/spdy/core/spdy_header_block.h"
diff --git a/spdy/core/spdy_framer_test.cc b/spdy/core/spdy_framer_test.cc
index ee05143..864ea7d 100644
--- a/spdy/core/spdy_framer_test.cc
+++ b/spdy/core/spdy_framer_test.cc
@@ -287,7 +287,7 @@
SPDY_VLOG(1) << "OnStreamFrameData(" << stream_id << ", data, " << len
<< ", "
<< ") data:\n"
- << SpdyHexDump(quiche::QuicheStringPiece(data, len));
+ << SpdyHexDump(absl::string_view(data, len));
EXPECT_EQ(header_stream_id_, stream_id);
data_bytes_ += len;
@@ -403,7 +403,7 @@
}
void OnAltSvc(SpdyStreamId stream_id,
- quiche::QuicheStringPiece origin,
+ absl::string_view origin,
const SpdyAltSvcWireFormat::AlternativeServiceVector&
altsvc_vector) override {
SPDY_VLOG(1) << "OnAltSvc(" << stream_id << ", \"" << origin
@@ -1125,7 +1125,7 @@
control_frame.size());
EXPECT_THAT(visitor.headers_, testing::ElementsAre(testing::Pair(
- "name", quiche::QuicheStringPiece(value))));
+ "name", absl::string_view(value))));
}
TEST_P(SpdyFramerTest, CompressEmptyHeaders) {
@@ -1315,7 +1315,7 @@
const char bytes[] = "this is a test test test test test!";
SpdyDataIR data_ir(/* stream_id = */ 1,
- quiche::QuicheStringPiece(bytes, QUICHE_ARRAYSIZE(bytes)));
+ absl::string_view(bytes, QUICHE_ARRAYSIZE(bytes)));
data_ir.set_fin(true);
SpdySerializedFrame send_frame(framer_.SerializeData(data_ir));
@@ -4298,8 +4298,8 @@
SpdyAltSvcWireFormat::AlternativeServiceVector altsvc_vector;
altsvc_vector.push_back(altsvc1);
altsvc_vector.push_back(altsvc2);
- EXPECT_CALL(visitor, OnAltSvc(kStreamId, quiche::QuicheStringPiece("o_r|g!n"),
- altsvc_vector));
+ EXPECT_CALL(visitor,
+ OnAltSvc(kStreamId, absl::string_view("o_r|g!n"), altsvc_vector));
SpdyAltSvcIR altsvc_ir(kStreamId);
altsvc_ir.set_origin("o_r|g!n");
@@ -4333,8 +4333,8 @@
SpdyAltSvcWireFormat::AlternativeServiceVector altsvc_vector;
altsvc_vector.push_back(altsvc1);
altsvc_vector.push_back(altsvc2);
- EXPECT_CALL(visitor, OnAltSvc(kStreamId, quiche::QuicheStringPiece(""),
- altsvc_vector));
+ EXPECT_CALL(visitor,
+ OnAltSvc(kStreamId, absl::string_view(""), altsvc_vector));
SpdyAltSvcIR altsvc_ir(kStreamId);
altsvc_ir.add_altsvc(altsvc1);
@@ -4770,8 +4770,7 @@
SpdyFramer framer(SpdyFramer::DISABLE_COMPRESSION);
const char bytes[] = "this is a very short data frame";
- SpdyDataIR data_ir(1,
- quiche::QuicheStringPiece(bytes, QUICHE_ARRAYSIZE(bytes)));
+ SpdyDataIR data_ir(1, absl::string_view(bytes, QUICHE_ARRAYSIZE(bytes)));
CheckFrameAndIRSize(&data_ir, &framer, &output_);
SpdyRstStreamIR rst_ir(/* stream_id = */ 1, ERROR_CODE_PROTOCOL_ERROR);
diff --git a/spdy/core/spdy_header_block.cc b/spdy/core/spdy_header_block.cc
index d7e3faa..ebb7918 100644
--- a/spdy/core/spdy_header_block.cc
+++ b/spdy/core/spdy_header_block.cc
@@ -27,21 +27,20 @@
const char kCookieKey[] = "cookie";
const char kNullSeparator = 0;
-quiche::QuicheStringPiece SeparatorForKey(quiche::QuicheStringPiece key) {
+absl::string_view SeparatorForKey(absl::string_view key) {
if (key == kCookieKey) {
- static quiche::QuicheStringPiece cookie_separator = "; ";
+ static absl::string_view cookie_separator = "; ";
return cookie_separator;
} else {
- return quiche::QuicheStringPiece(&kNullSeparator, 1);
+ return absl::string_view(&kNullSeparator, 1);
}
}
} // namespace
-SpdyHeaderBlock::HeaderValue::HeaderValue(
- SpdyHeaderStorage* storage,
- quiche::QuicheStringPiece key,
- quiche::QuicheStringPiece initial_value)
+SpdyHeaderBlock::HeaderValue::HeaderValue(SpdyHeaderStorage* storage,
+ absl::string_view key,
+ absl::string_view initial_value)
: storage_(storage),
fragments_({initial_value}),
pair_({key, {}}),
@@ -71,10 +70,9 @@
SpdyHeaderBlock::HeaderValue::~HeaderValue() = default;
-quiche::QuicheStringPiece SpdyHeaderBlock::HeaderValue::ConsolidatedValue()
- const {
+absl::string_view SpdyHeaderBlock::HeaderValue::ConsolidatedValue() const {
if (fragments_.empty()) {
- return quiche::QuicheStringPiece();
+ return absl::string_view();
}
if (fragments_.size() > 1) {
fragments_ = {
@@ -83,12 +81,12 @@
return fragments_[0];
}
-void SpdyHeaderBlock::HeaderValue::Append(quiche::QuicheStringPiece fragment) {
+void SpdyHeaderBlock::HeaderValue::Append(absl::string_view fragment) {
size_ += (fragment.size() + separator_size_);
fragments_.push_back(fragment);
}
-const std::pair<quiche::QuicheStringPiece, quiche::QuicheStringPiece>&
+const std::pair<absl::string_view, absl::string_view>&
SpdyHeaderBlock::HeaderValue::as_pair() const {
pair_.second = ConsolidatedValue();
return pair_;
@@ -103,7 +101,7 @@
SpdyHeaderBlock::ValueProxy::ValueProxy(
SpdyHeaderBlock* block,
SpdyHeaderBlock::MapType::iterator lookup_result,
- const quiche::QuicheStringPiece key,
+ const absl::string_view key,
size_t* spdy_header_block_value_size)
: block_(block),
lookup_result_(lookup_result),
@@ -142,7 +140,7 @@
}
SpdyHeaderBlock::ValueProxy& SpdyHeaderBlock::ValueProxy::operator=(
- quiche::QuicheStringPiece value) {
+ absl::string_view value) {
*spdy_header_block_value_size_ += value.size();
SpdyHeaderStorage* storage = &block_->storage_;
if (lookup_result_ == block_->map_.end()) {
@@ -160,8 +158,7 @@
return *this;
}
-bool SpdyHeaderBlock::ValueProxy::operator==(
- quiche::QuicheStringPiece value) const {
+bool SpdyHeaderBlock::ValueProxy::operator==(absl::string_view value) const {
if (lookup_result_ == block_->map_.end()) {
return false;
} else {
@@ -232,7 +229,7 @@
return output;
}
-void SpdyHeaderBlock::erase(quiche::QuicheStringPiece key) {
+void SpdyHeaderBlock::erase(absl::string_view key) {
auto iter = map_.find(key);
if (iter != map_.end()) {
SPDY_DVLOG(1) << "Erasing header with name: " << key;
@@ -268,13 +265,13 @@
}
SpdyHeaderBlock::ValueProxy SpdyHeaderBlock::operator[](
- const quiche::QuicheStringPiece key) {
+ const absl::string_view key) {
SPDY_DVLOG(2) << "Operator[] saw key: " << key;
- quiche::QuicheStringPiece out_key;
+ absl::string_view out_key;
auto iter = map_.find(key);
if (iter == map_.end()) {
// We write the key first, to assure that the ValueProxy has a
- // reference to a valid QuicheStringPiece in its operator=.
+ // reference to a valid absl::string_view in its operator=.
out_key = WriteKey(key);
SPDY_DVLOG(2) << "Key written as: " << std::hex
<< static_cast<const void*>(key.data()) << ", " << std::dec
@@ -285,9 +282,8 @@
return ValueProxy(this, iter, out_key, &value_size_);
}
-void SpdyHeaderBlock::AppendValueOrAddHeader(
- const quiche::QuicheStringPiece key,
- const quiche::QuicheStringPiece value) {
+void SpdyHeaderBlock::AppendValueOrAddHeader(const absl::string_view key,
+ const absl::string_view value) {
value_size_ += value.size();
auto iter = map_.find(key);
@@ -309,15 +305,14 @@
return SpdyEstimateMemoryUsage(storage_);
}
-void SpdyHeaderBlock::AppendHeader(const quiche::QuicheStringPiece key,
- const quiche::QuicheStringPiece value) {
+void SpdyHeaderBlock::AppendHeader(const absl::string_view key,
+ const absl::string_view value) {
auto backed_key = WriteKey(key);
map_.emplace(std::make_pair(
backed_key, HeaderValue(&storage_, backed_key, storage_.Write(value))));
}
-quiche::QuicheStringPiece SpdyHeaderBlock::WriteKey(
- const quiche::QuicheStringPiece key) {
+absl::string_view SpdyHeaderBlock::WriteKey(const absl::string_view key) {
key_size_ += key.size();
return storage_.Write(key);
}
diff --git a/spdy/core/spdy_header_block.h b/spdy/core/spdy_header_block.h
index 2348551..1faf34d 100644
--- a/spdy/core/spdy_header_block.h
+++ b/spdy/core/spdy_header_block.h
@@ -13,8 +13,8 @@
#include <utility>
#include <vector>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
#include "net/third_party/quiche/src/spdy/core/spdy_header_storage.h"
#include "net/third_party/quiche/src/spdy/platform/api/spdy_containers.h"
#include "net/third_party/quiche/src/spdy/platform/api/spdy_macros.h"
@@ -39,9 +39,9 @@
// names and values. This data structure preserves insertion order.
//
// Under the hood, this data structure uses large, contiguous blocks of memory
-// to store names and values. Lookups may be performed with QuicheStringPiece
-// keys, and values are returned as QuicheStringPieces (via ValueProxy, below).
-// Value QuicheStringPieces are valid as long as the SpdyHeaderBlock exists;
+// to store names and values. Lookups may be performed with absl::string_view
+// keys, and values are returned as absl::string_views (via ValueProxy, below).
+// Value absl::string_views are valid as long as the SpdyHeaderBlock exists;
// allocated memory is never freed until SpdyHeaderBlock's destruction.
//
// This implementation does not make much of an effort to minimize wasted space.
@@ -53,8 +53,8 @@
class QUICHE_EXPORT_PRIVATE HeaderValue {
public:
HeaderValue(SpdyHeaderStorage* storage,
- quiche::QuicheStringPiece key,
- quiche::QuicheStringPiece initial_value);
+ absl::string_view key,
+ absl::string_view initial_value);
// Moves are allowed.
HeaderValue(HeaderValue&& other);
@@ -69,11 +69,10 @@
~HeaderValue();
// Consumes at most |fragment.size()| bytes of memory.
- void Append(quiche::QuicheStringPiece fragment);
+ void Append(absl::string_view fragment);
- quiche::QuicheStringPiece value() const { return as_pair().second; }
- const std::pair<quiche::QuicheStringPiece, quiche::QuicheStringPiece>&
- as_pair() const;
+ absl::string_view value() const { return as_pair().second; }
+ const std::pair<absl::string_view, absl::string_view>& as_pair() const;
// Size estimate including separators. Used when keys are erased from
// SpdyHeaderBlock.
@@ -82,37 +81,34 @@
private:
// May allocate a large contiguous region of memory to hold the concatenated
// fragments and separators.
- quiche::QuicheStringPiece ConsolidatedValue() const;
+ absl::string_view ConsolidatedValue() const;
mutable SpdyHeaderStorage* storage_;
- mutable std::vector<quiche::QuicheStringPiece> fragments_;
+ mutable std::vector<absl::string_view> fragments_;
// The first element is the key; the second is the consolidated value.
- mutable std::pair<quiche::QuicheStringPiece, quiche::QuicheStringPiece>
- pair_;
+ mutable std::pair<absl::string_view, absl::string_view> pair_;
size_t size_ = 0;
size_t separator_size_ = 0;
};
- typedef SpdyLinkedHashMap<quiche::QuicheStringPiece,
+ typedef SpdyLinkedHashMap<absl::string_view,
HeaderValue,
SpdyStringPieceCaseHash,
SpdyStringPieceCaseEq>
MapType;
public:
- typedef std::pair<quiche::QuicheStringPiece, quiche::QuicheStringPiece>
- value_type;
+ typedef std::pair<absl::string_view, absl::string_view> value_type;
- // Provides iteration over a sequence of std::pair<QuicheStringPiece,
- // QuicheStringPiece>, even though the underlying MapType::value_type is
+ // Provides iteration over a sequence of std::pair<absl::string_view,
+ // absl::string_view>, even though the underlying MapType::value_type is
// different. Dereferencing the iterator will result in memory allocation for
// multi-value headers.
class QUICHE_EXPORT_PRIVATE iterator {
public:
// The following type definitions fulfill the requirements for iterator
// implementations.
- typedef std::pair<quiche::QuicheStringPiece, quiche::QuicheStringPiece>
- value_type;
+ typedef std::pair<absl::string_view, absl::string_view> value_type;
typedef value_type& reference;
typedef value_type* pointer;
typedef std::forward_iterator_tag iterator_category;
@@ -184,13 +180,11 @@
const_iterator end() const { return wrap_const_iterator(map_.end()); }
bool empty() const { return map_.empty(); }
size_t size() const { return map_.size(); }
- iterator find(quiche::QuicheStringPiece key) {
- return wrap_iterator(map_.find(key));
- }
- const_iterator find(quiche::QuicheStringPiece key) const {
+ iterator find(absl::string_view key) { return wrap_iterator(map_.find(key)); }
+ const_iterator find(absl::string_view key) const {
return wrap_const_iterator(map_.find(key));
}
- void erase(quiche::QuicheStringPiece key);
+ void erase(absl::string_view key);
// Clears both our MapType member and the memory used to hold headers.
void clear();
@@ -205,8 +199,8 @@
// existing header value, NUL ("\0") separated unless the key is cookie, in
// which case the separator is "; ".
// If there is no such key, a new header with the key and value is added.
- void AppendValueOrAddHeader(const quiche::QuicheStringPiece key,
- const quiche::QuicheStringPiece value);
+ void AppendValueOrAddHeader(const absl::string_view key,
+ const absl::string_view value);
// This object provides automatic conversions that allow SpdyHeaderBlock to be
// nearly a drop-in replacement for
@@ -225,10 +219,10 @@
ValueProxy& operator=(const ValueProxy& other) = delete;
// Assignment modifies the underlying SpdyHeaderBlock.
- ValueProxy& operator=(quiche::QuicheStringPiece value);
+ ValueProxy& operator=(absl::string_view value);
- // Provides easy comparison against QuicheStringPiece.
- bool operator==(quiche::QuicheStringPiece value) const;
+ // Provides easy comparison against absl::string_view.
+ bool operator==(absl::string_view value) const;
std::string as_string() const;
@@ -238,19 +232,18 @@
ValueProxy(SpdyHeaderBlock* block,
SpdyHeaderBlock::MapType::iterator lookup_result,
- const quiche::QuicheStringPiece key,
+ const absl::string_view key,
size_t* spdy_header_block_value_size);
SpdyHeaderBlock* block_;
SpdyHeaderBlock::MapType::iterator lookup_result_;
- quiche::QuicheStringPiece key_;
+ absl::string_view key_;
size_t* spdy_header_block_value_size_;
bool valid_;
};
// Allows either lookup or mutation of the value associated with a key.
- SPDY_MUST_USE_RESULT ValueProxy
- operator[](const quiche::QuicheStringPiece key);
+ SPDY_MUST_USE_RESULT ValueProxy operator[](const absl::string_view key);
// Returns the estimate of dynamically allocated memory in bytes.
size_t EstimateMemoryUsage() const;
@@ -285,12 +278,11 @@
#endif // SPDY_HEADER_DEBUG
}
- void AppendHeader(const quiche::QuicheStringPiece key,
- const quiche::QuicheStringPiece value);
- quiche::QuicheStringPiece WriteKey(const quiche::QuicheStringPiece key);
+ void AppendHeader(const absl::string_view key, const absl::string_view value);
+ absl::string_view WriteKey(const absl::string_view key);
size_t bytes_allocated() const;
- // QuicheStringPieces held by |map_| point to memory owned by |storage_|.
+ // absl::string_views held by |map_| point to memory owned by |storage_|.
MapType map_;
SpdyHeaderStorage storage_;
diff --git a/spdy/core/spdy_header_block_test.cc b/spdy/core/spdy_header_block_test.cc
index b670c2a..a8dbe01 100644
--- a/spdy/core/spdy_header_block_test.cc
+++ b/spdy/core/spdy_header_block_test.cc
@@ -17,14 +17,13 @@
class ValueProxyPeer {
public:
- static quiche::QuicheStringPiece key(SpdyHeaderBlock::ValueProxy* p) {
+ static absl::string_view key(SpdyHeaderBlock::ValueProxy* p) {
return p->key_;
}
};
-std::pair<quiche::QuicheStringPiece, quiche::QuicheStringPiece> Pair(
- quiche::QuicheStringPiece k,
- quiche::QuicheStringPiece v) {
+std::pair<absl::string_view, absl::string_view> Pair(absl::string_view k,
+ absl::string_view v) {
return std::make_pair(k, v);
}
@@ -42,19 +41,19 @@
TEST(SpdyHeaderBlockTest, KeyMemoryReclaimedOnLookup) {
SpdyHeaderBlock block;
- quiche::QuicheStringPiece copied_key1;
+ absl::string_view copied_key1;
{
auto proxy1 = block["some key name"];
copied_key1 = ValueProxyPeer::key(&proxy1);
}
- quiche::QuicheStringPiece copied_key2;
+ absl::string_view copied_key2;
{
auto proxy2 = block["some other key name"];
copied_key2 = ValueProxyPeer::key(&proxy2);
}
// Because proxy1 was never used to modify the block, the memory used for the
// key could be reclaimed and used for the second call to operator[].
- // Therefore, we expect the pointers of the two QuicheStringPieces to be
+ // Therefore, we expect the pointers of the two absl::string_views to be
// equal.
EXPECT_EQ(copied_key1.data(), copied_key2.data());
@@ -199,19 +198,19 @@
block.AppendValueOrAddHeader("foo", "bar");
const auto& val = block["foo"];
const char expected[] = "foo\0bar";
- EXPECT_TRUE(quiche::QuicheStringPiece(expected, 7) == val);
- EXPECT_TRUE(val == quiche::QuicheStringPiece(expected, 7));
- EXPECT_FALSE(quiche::QuicheStringPiece(expected, 3) == val);
- EXPECT_FALSE(val == quiche::QuicheStringPiece(expected, 3));
+ EXPECT_TRUE(absl::string_view(expected, 7) == val);
+ EXPECT_TRUE(val == absl::string_view(expected, 7));
+ EXPECT_FALSE(absl::string_view(expected, 3) == val);
+ EXPECT_FALSE(val == absl::string_view(expected, 3));
const char not_expected[] = "foo\0barextra";
- EXPECT_FALSE(quiche::QuicheStringPiece(not_expected, 12) == val);
- EXPECT_FALSE(val == quiche::QuicheStringPiece(not_expected, 12));
+ EXPECT_FALSE(absl::string_view(not_expected, 12) == val);
+ EXPECT_FALSE(val == absl::string_view(not_expected, 12));
const auto& val2 = block["foo2"];
- EXPECT_FALSE(quiche::QuicheStringPiece(expected, 7) == val2);
- EXPECT_FALSE(val2 == quiche::QuicheStringPiece(expected, 7));
- EXPECT_FALSE(quiche::QuicheStringPiece("") == val2);
- EXPECT_FALSE(val2 == quiche::QuicheStringPiece(""));
+ EXPECT_FALSE(absl::string_view(expected, 7) == val2);
+ EXPECT_FALSE(val2 == absl::string_view(expected, 7));
+ EXPECT_FALSE(absl::string_view("") == val2);
+ EXPECT_FALSE(val2 == absl::string_view(""));
}
// This test demonstrates that the SpdyHeaderBlock data structure does not place
diff --git a/spdy/core/spdy_header_storage.cc b/spdy/core/spdy_header_storage.cc
index 90493e1..29ed0a4 100644
--- a/spdy/core/spdy_header_storage.cc
+++ b/spdy/core/spdy_header_storage.cc
@@ -14,34 +14,33 @@
SpdyHeaderStorage::SpdyHeaderStorage() : arena_(kDefaultStorageBlockSize) {}
-quiche::QuicheStringPiece SpdyHeaderStorage::Write(
- const quiche::QuicheStringPiece s) {
- return quiche::QuicheStringPiece(arena_.Memdup(s.data(), s.size()), s.size());
+absl::string_view SpdyHeaderStorage::Write(const absl::string_view s) {
+ return absl::string_view(arena_.Memdup(s.data(), s.size()), s.size());
}
-void SpdyHeaderStorage::Rewind(const quiche::QuicheStringPiece s) {
+void SpdyHeaderStorage::Rewind(const absl::string_view s) {
arena_.Free(const_cast<char*>(s.data()), s.size());
}
-quiche::QuicheStringPiece SpdyHeaderStorage::WriteFragments(
- const std::vector<quiche::QuicheStringPiece>& fragments,
- quiche::QuicheStringPiece separator) {
+absl::string_view SpdyHeaderStorage::WriteFragments(
+ const std::vector<absl::string_view>& fragments,
+ absl::string_view separator) {
if (fragments.empty()) {
- return quiche::QuicheStringPiece();
+ return absl::string_view();
}
size_t total_size = separator.size() * (fragments.size() - 1);
- for (const quiche::QuicheStringPiece& fragment : fragments) {
+ for (const absl::string_view& fragment : fragments) {
total_size += fragment.size();
}
char* dst = arena_.Alloc(total_size);
size_t written = Join(dst, fragments, separator);
DCHECK_EQ(written, total_size);
- return quiche::QuicheStringPiece(dst, total_size);
+ return absl::string_view(dst, total_size);
}
size_t Join(char* dst,
- const std::vector<quiche::QuicheStringPiece>& fragments,
- quiche::QuicheStringPiece separator) {
+ const std::vector<absl::string_view>& fragments,
+ absl::string_view separator) {
if (fragments.empty()) {
return 0;
}
diff --git a/spdy/core/spdy_header_storage.h b/spdy/core/spdy_header_storage.h
index aace3c0..4e5a6ab 100644
--- a/spdy/core/spdy_header_storage.h
+++ b/spdy/core/spdy_header_storage.h
@@ -1,15 +1,15 @@
#ifndef QUICHE_SPDY_CORE_SPDY_HEADER_STORAGE_H_
#define QUICHE_SPDY_CORE_SPDY_HEADER_STORAGE_H_
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
#include "net/third_party/quiche/src/spdy/core/spdy_simple_arena.h"
namespace spdy {
-// This class provides a backing store for QuicheStringPieces. It previously
+// This class provides a backing store for absl::string_views. It previously
// used custom allocation logic, but now uses an UnsafeArena instead. It has the
-// property that QuicheStringPieces that refer to data in SpdyHeaderStorage are
+// property that absl::string_views that refer to data in SpdyHeaderStorage are
// never invalidated until the SpdyHeaderStorage is deleted or Clear() is
// called.
//
@@ -26,20 +26,20 @@
SpdyHeaderStorage(SpdyHeaderStorage&& other) = default;
SpdyHeaderStorage& operator=(SpdyHeaderStorage&& other) = default;
- quiche::QuicheStringPiece Write(quiche::QuicheStringPiece s);
+ absl::string_view Write(absl::string_view s);
// If |s| points to the most recent allocation from arena_, the arena will
// reclaim the memory. Otherwise, this method is a no-op.
- void Rewind(quiche::QuicheStringPiece s);
+ void Rewind(absl::string_view s);
void Clear() { arena_.Reset(); }
// Given a list of fragments and a separator, writes the fragments joined by
- // the separator to a contiguous region of memory. Returns a QuicheStringPiece
+ // the separator to a contiguous region of memory. Returns a absl::string_view
// pointing to the region of memory.
- quiche::QuicheStringPiece WriteFragments(
- const std::vector<quiche::QuicheStringPiece>& fragments,
- quiche::QuicheStringPiece separator);
+ absl::string_view WriteFragments(
+ const std::vector<absl::string_view>& fragments,
+ absl::string_view separator);
size_t bytes_allocated() const { return arena_.status().bytes_allocated(); }
@@ -53,8 +53,8 @@
// enough to hold the result. Returns the number of bytes written.
QUICHE_EXPORT_PRIVATE size_t
Join(char* dst,
- const std::vector<quiche::QuicheStringPiece>& fragments,
- quiche::QuicheStringPiece separator);
+ const std::vector<absl::string_view>& fragments,
+ absl::string_view separator);
} // namespace spdy
diff --git a/spdy/core/spdy_header_storage_test.cc b/spdy/core/spdy_header_storage_test.cc
index 71af6be..af8cd06 100644
--- a/spdy/core/spdy_header_storage_test.cc
+++ b/spdy/core/spdy_header_storage_test.cc
@@ -6,29 +6,29 @@
namespace test {
TEST(JoinTest, JoinEmpty) {
- std::vector<quiche::QuicheStringPiece> empty;
- quiche::QuicheStringPiece separator = ", ";
+ std::vector<absl::string_view> empty;
+ absl::string_view separator = ", ";
char buf[10] = "";
size_t written = Join(buf, empty, separator);
EXPECT_EQ(0u, written);
}
TEST(JoinTest, JoinOne) {
- std::vector<quiche::QuicheStringPiece> v = {"one"};
- quiche::QuicheStringPiece separator = ", ";
+ std::vector<absl::string_view> v = {"one"};
+ absl::string_view separator = ", ";
char buf[15];
size_t written = Join(buf, v, separator);
EXPECT_EQ(3u, written);
- EXPECT_EQ("one", quiche::QuicheStringPiece(buf, written));
+ EXPECT_EQ("one", absl::string_view(buf, written));
}
TEST(JoinTest, JoinMultiple) {
- std::vector<quiche::QuicheStringPiece> v = {"one", "two", "three"};
- quiche::QuicheStringPiece separator = ", ";
+ std::vector<absl::string_view> v = {"one", "two", "three"};
+ absl::string_view separator = ", ";
char buf[15];
size_t written = Join(buf, v, separator);
EXPECT_EQ(15u, written);
- EXPECT_EQ("one, two, three", quiche::QuicheStringPiece(buf, written));
+ EXPECT_EQ("one, two, three", absl::string_view(buf, written));
}
} // namespace test
diff --git a/spdy/core/spdy_headers_handler_interface.h b/spdy/core/spdy_headers_handler_interface.h
index 8709977..39bda07 100644
--- a/spdy/core/spdy_headers_handler_interface.h
+++ b/spdy/core/spdy_headers_handler_interface.h
@@ -7,8 +7,8 @@
#include <stddef.h>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
namespace spdy {
@@ -25,8 +25,7 @@
// A callback method which notifies on a header key value pair. Multiple
// values for a given key will be emitted as multiple calls to OnHeader.
- virtual void OnHeader(quiche::QuicheStringPiece key,
- quiche::QuicheStringPiece value) = 0;
+ virtual void OnHeader(absl::string_view key, absl::string_view value) = 0;
// A callback method which notifies when the parser finishes handling a
// header block (i.e. the containing frame has the END_HEADERS flag set).
diff --git a/spdy/core/spdy_no_op_visitor.h b/spdy/core/spdy_no_op_visitor.h
index 93a3235..26bab9c 100644
--- a/spdy/core/spdy_no_op_visitor.h
+++ b/spdy/core/spdy_no_op_visitor.h
@@ -11,7 +11,7 @@
#include <cstdint>
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/spdy/core/http2_frame_decoder_adapter.h"
#include "net/third_party/quiche/src/spdy/core/spdy_protocol.h"
@@ -61,7 +61,7 @@
bool /*end*/) override {}
void OnContinuation(SpdyStreamId /*stream_id*/, bool /*end*/) override {}
void OnAltSvc(SpdyStreamId /*stream_id*/,
- quiche::QuicheStringPiece /*origin*/,
+ absl::string_view /*origin*/,
const SpdyAltSvcWireFormat::AlternativeServiceVector&
/*altsvc_vector*/) override {}
void OnPriority(SpdyStreamId /*stream_id*/,
@@ -82,8 +82,8 @@
// SpdyHeadersHandlerInterface methods:
void OnHeaderBlockStart() override {}
- void OnHeader(quiche::QuicheStringPiece /*key*/,
- quiche::QuicheStringPiece /*value*/) override {}
+ void OnHeader(absl::string_view /*key*/,
+ absl::string_view /*value*/) override {}
void OnHeaderBlockEnd(size_t /* uncompressed_header_bytes */,
size_t /* compressed_header_bytes */) override {}
};
diff --git a/spdy/core/spdy_pinnable_buffer_piece.h b/spdy/core/spdy_pinnable_buffer_piece.h
index fe9639f..2822410 100644
--- a/spdy/core/spdy_pinnable_buffer_piece.h
+++ b/spdy/core/spdy_pinnable_buffer_piece.h
@@ -9,8 +9,8 @@
#include <memory>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
namespace spdy {
@@ -27,8 +27,8 @@
const char* buffer() const { return buffer_; }
- explicit operator quiche::QuicheStringPiece() const {
- return quiche::QuicheStringPiece(buffer_, length_);
+ explicit operator absl::string_view() const {
+ return absl::string_view(buffer_, length_);
}
// Allocates and copies the buffer to internal storage.
diff --git a/spdy/core/spdy_pinnable_buffer_piece_test.cc b/spdy/core/spdy_pinnable_buffer_piece_test.cc
index b30a7c0..42329d7 100644
--- a/spdy/core/spdy_pinnable_buffer_piece_test.cc
+++ b/spdy/core/spdy_pinnable_buffer_piece_test.cc
@@ -31,16 +31,14 @@
EXPECT_TRUE(reader.ReadN(6, &piece));
// Piece points to underlying prefix storage.
- EXPECT_EQ(quiche::QuicheStringPiece("foobar"),
- quiche::QuicheStringPiece(piece));
+ EXPECT_EQ(absl::string_view("foobar"), absl::string_view(piece));
EXPECT_FALSE(piece.IsPinned());
EXPECT_EQ(prefix_.data(), piece.buffer());
piece.Pin();
// Piece now points to allocated storage.
- EXPECT_EQ(quiche::QuicheStringPiece("foobar"),
- quiche::QuicheStringPiece(piece));
+ EXPECT_EQ(absl::string_view("foobar"), absl::string_view(piece));
EXPECT_TRUE(piece.IsPinned());
EXPECT_NE(prefix_.data(), piece.buffer());
@@ -58,24 +56,22 @@
piece1.Pin();
- EXPECT_EQ(quiche::QuicheStringPiece("foob"),
- quiche::QuicheStringPiece(piece1));
+ EXPECT_EQ(absl::string_view("foob"), absl::string_view(piece1));
EXPECT_TRUE(piece1.IsPinned());
- EXPECT_EQ(quiche::QuicheStringPiece("ar"), quiche::QuicheStringPiece(piece2));
+ EXPECT_EQ(absl::string_view("ar"), absl::string_view(piece2));
EXPECT_FALSE(piece2.IsPinned());
piece1.Swap(&piece2);
- EXPECT_EQ(quiche::QuicheStringPiece("ar"), quiche::QuicheStringPiece(piece1));
+ EXPECT_EQ(absl::string_view("ar"), absl::string_view(piece1));
EXPECT_FALSE(piece1.IsPinned());
- EXPECT_EQ(quiche::QuicheStringPiece("foob"),
- quiche::QuicheStringPiece(piece2));
+ EXPECT_EQ(absl::string_view("foob"), absl::string_view(piece2));
EXPECT_TRUE(piece2.IsPinned());
SpdyPinnableBufferPiece empty;
piece2.Swap(&empty);
- EXPECT_EQ(quiche::QuicheStringPiece(""), quiche::QuicheStringPiece(piece2));
+ EXPECT_EQ(absl::string_view(""), absl::string_view(piece2));
EXPECT_FALSE(piece2.IsPinned());
}
diff --git a/spdy/core/spdy_prefixed_buffer_reader_test.cc b/spdy/core/spdy_prefixed_buffer_reader_test.cc
index d48fde1..8355956 100644
--- a/spdy/core/spdy_prefixed_buffer_reader_test.cc
+++ b/spdy/core/spdy_prefixed_buffer_reader_test.cc
@@ -6,7 +6,7 @@
#include <string>
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_test.h"
namespace spdy {
@@ -46,8 +46,7 @@
EXPECT_FALSE(reader.ReadN(10, &piece)); // Not enough buffer.
EXPECT_TRUE(reader.ReadN(6, &piece));
EXPECT_FALSE(piece.IsPinned());
- EXPECT_EQ(quiche::QuicheStringPiece("foobar"),
- quiche::QuicheStringPiece(piece));
+ EXPECT_EQ(absl::string_view("foobar"), absl::string_view(piece));
EXPECT_EQ(0u, reader.Available());
}
@@ -70,8 +69,7 @@
EXPECT_FALSE(reader.ReadN(10, &piece)); // Not enough buffer.
EXPECT_TRUE(reader.ReadN(6, &piece));
EXPECT_FALSE(piece.IsPinned());
- EXPECT_EQ(quiche::QuicheStringPiece("foobar"),
- quiche::QuicheStringPiece(piece));
+ EXPECT_EQ(absl::string_view("foobar"), absl::string_view(piece));
EXPECT_EQ(0u, reader.Available());
}
@@ -94,8 +92,7 @@
EXPECT_FALSE(reader.ReadN(10, &piece)); // Not enough buffer.
EXPECT_TRUE(reader.ReadN(6, &piece));
EXPECT_TRUE(piece.IsPinned());
- EXPECT_EQ(quiche::QuicheStringPiece("foobar"),
- quiche::QuicheStringPiece(piece));
+ EXPECT_EQ(absl::string_view("foobar"), absl::string_view(piece));
EXPECT_EQ(0u, reader.Available());
}
@@ -115,12 +112,12 @@
EXPECT_EQ(6u, reader.Available());
EXPECT_TRUE(reader.ReadN(3, &piece));
- EXPECT_EQ(quiche::QuicheStringPiece("fhi"), quiche::QuicheStringPiece(piece));
+ EXPECT_EQ(absl::string_view("fhi"), absl::string_view(piece));
EXPECT_TRUE(piece.IsPinned());
EXPECT_EQ(3u, reader.Available());
EXPECT_TRUE(reader.ReadN(2, &piece));
- EXPECT_EQ(quiche::QuicheStringPiece("jk"), quiche::QuicheStringPiece(piece));
+ EXPECT_EQ(absl::string_view("jk"), absl::string_view(piece));
EXPECT_FALSE(piece.IsPinned());
EXPECT_EQ(1u, reader.Available());
diff --git a/spdy/core/spdy_protocol.cc b/spdy/core/spdy_protocol.cc
index a4a72d6..53901ab 100644
--- a/spdy/core/spdy_protocol.cc
+++ b/spdy/core/spdy_protocol.cc
@@ -281,7 +281,7 @@
SpdyFrameWithHeaderBlockIR::~SpdyFrameWithHeaderBlockIR() = default;
-SpdyDataIR::SpdyDataIR(SpdyStreamId stream_id, quiche::QuicheStringPiece data)
+SpdyDataIR::SpdyDataIR(SpdyStreamId stream_id, absl::string_view data)
: SpdyFrameWithFinIR(stream_id),
data_(nullptr),
data_len_(0),
@@ -291,7 +291,7 @@
}
SpdyDataIR::SpdyDataIR(SpdyStreamId stream_id, const char* data)
- : SpdyDataIR(stream_id, quiche::QuicheStringPiece(data)) {}
+ : SpdyDataIR(stream_id, absl::string_view(data)) {}
SpdyDataIR::SpdyDataIR(SpdyStreamId stream_id, std::string data)
: SpdyFrameWithFinIR(stream_id),
@@ -377,7 +377,7 @@
SpdyGoAwayIR::SpdyGoAwayIR(SpdyStreamId last_good_stream_id,
SpdyErrorCode error_code,
- quiche::QuicheStringPiece description)
+ absl::string_view description)
: description_(description) {
set_last_good_stream_id(last_good_stream_id);
set_error_code(error_code);
@@ -388,7 +388,7 @@
const char* description)
: SpdyGoAwayIR(last_good_stream_id,
error_code,
- quiche::QuicheStringPiece(description)) {}
+ absl::string_view(description)) {}
SpdyGoAwayIR::SpdyGoAwayIR(SpdyStreamId last_good_stream_id,
SpdyErrorCode error_code,
diff --git a/spdy/core/spdy_protocol.h b/spdy/core/spdy_protocol.h
index 0bf8bb9..4c9c79a 100644
--- a/spdy/core/spdy_protocol.h
+++ b/spdy/core/spdy_protocol.h
@@ -19,8 +19,8 @@
#include <string>
#include <utility>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
#include "net/third_party/quiche/src/spdy/core/spdy_alt_svc_wire_format.h"
#include "net/third_party/quiche/src/spdy/core/spdy_bitmasks.h"
#include "net/third_party/quiche/src/spdy/core/spdy_header_block.h"
@@ -497,8 +497,7 @@
// Deep copy.
header_block_ = std::move(header_block);
}
- void SetHeader(quiche::QuicheStringPiece name,
- quiche::QuicheStringPiece value) {
+ void SetHeader(absl::string_view name, absl::string_view value) {
header_block_[name] = value;
}
@@ -516,7 +515,7 @@
class QUICHE_EXPORT_PRIVATE SpdyDataIR : public SpdyFrameWithFinIR {
public:
// Performs a deep copy on data.
- SpdyDataIR(SpdyStreamId stream_id, quiche::QuicheStringPiece data);
+ SpdyDataIR(SpdyStreamId stream_id, absl::string_view data);
// Performs a deep copy on data.
SpdyDataIR(SpdyStreamId stream_id, const char* data);
@@ -547,14 +546,14 @@
}
// Deep-copy of data (keep private copy).
- void SetDataDeep(quiche::QuicheStringPiece data) {
+ void SetDataDeep(absl::string_view data) {
data_store_ = std::make_unique<std::string>(data.data(), data.size());
data_ = data_store_->data();
data_len_ = data.size();
}
// Shallow-copy of data (do not keep private copy).
- void SetDataShallow(quiche::QuicheStringPiece data) {
+ void SetDataShallow(absl::string_view data) {
data_store_.reset();
data_ = data.data();
data_len_ = data.size();
@@ -660,7 +659,7 @@
// this SpdyGoAwayIR.
SpdyGoAwayIR(SpdyStreamId last_good_stream_id,
SpdyErrorCode error_code,
- quiche::QuicheStringPiece description);
+ absl::string_view description);
// References description, doesn't copy it, so description must outlast
// this SpdyGoAwayIR.
@@ -689,7 +688,7 @@
error_code_ = error_code;
}
- const quiche::QuicheStringPiece& description() const { return description_; }
+ const absl::string_view& description() const { return description_; }
void Visit(SpdyFrameVisitor* visitor) const override;
@@ -701,7 +700,7 @@
SpdyStreamId last_good_stream_id_;
SpdyErrorCode error_code_;
const std::string description_store_;
- const quiche::QuicheStringPiece description_;
+ const absl::string_view description_;
};
class QUICHE_EXPORT_PRIVATE SpdyHeadersIR : public SpdyFrameWithHeaderBlockIR {
diff --git a/spdy/core/spdy_protocol_test.cc b/spdy/core/spdy_protocol_test.cc
index c952bce..f4cbc42 100644
--- a/spdy/core/spdy_protocol_test.cc
+++ b/spdy/core/spdy_protocol_test.cc
@@ -226,8 +226,8 @@
TEST(SpdyDataIRTest, Construct) {
// Confirm that it makes a string of zero length from a
- // QuicheStringPiece(nullptr).
- quiche::QuicheStringPiece s1;
+ // absl::string_view(nullptr).
+ absl::string_view s1;
SpdyDataIR d1(/* stream_id = */ 1, s1);
EXPECT_EQ(0u, d1.data_len());
EXPECT_NE(nullptr, d1.data());
@@ -235,8 +235,8 @@
// Confirms makes a copy of char array.
const char s2[] = "something";
SpdyDataIR d2(/* stream_id = */ 2, s2);
- EXPECT_EQ(quiche::QuicheStringPiece(d2.data(), d2.data_len()), s2);
- EXPECT_NE(quiche::QuicheStringPiece(d1.data(), d1.data_len()), s2);
+ EXPECT_EQ(absl::string_view(d2.data(), d2.data_len()), s2);
+ EXPECT_NE(absl::string_view(d1.data(), d1.data_len()), s2);
EXPECT_EQ((int)d1.data_len(), d1.flow_control_window_consumed());
// Confirm copies a const string.
@@ -249,20 +249,18 @@
std::string bar = "bar";
SpdyDataIR d4(/* stream_id = */ 4, bar);
EXPECT_EQ("bar", bar);
- EXPECT_EQ("bar", quiche::QuicheStringPiece(d4.data(), d4.data_len()));
+ EXPECT_EQ("bar", absl::string_view(d4.data(), d4.data_len()));
// Confirm moves an rvalue reference. Note that the test string "baz" is too
// short to trigger the move optimization, and instead a copy occurs.
std::string baz = "the quick brown fox";
SpdyDataIR d5(/* stream_id = */ 5, std::move(baz));
EXPECT_EQ("", baz);
- EXPECT_EQ(quiche::QuicheStringPiece(d5.data(), d5.data_len()),
- "the quick brown fox");
+ EXPECT_EQ(absl::string_view(d5.data(), d5.data_len()), "the quick brown fox");
// Confirms makes a copy of string literal.
SpdyDataIR d7(/* stream_id = */ 7, "something else");
- EXPECT_EQ(quiche::QuicheStringPiece(d7.data(), d7.data_len()),
- "something else");
+ EXPECT_EQ(absl::string_view(d7.data(), d7.data_len()), "something else");
SpdyDataIR d8(/* stream_id = */ 8, "shawarma");
d8.set_padding_len(20);
diff --git a/spdy/core/spdy_protocol_test_utils.cc b/spdy/core/spdy_protocol_test_utils.cc
index 7390f50..37199f6 100644
--- a/spdy/core/spdy_protocol_test_utils.cc
+++ b/spdy/core/spdy_protocol_test_utils.cc
@@ -6,7 +6,7 @@
#include <cstdint>
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
+#include "absl/strings/string_view.h"
namespace spdy {
namespace test {
@@ -47,8 +47,8 @@
if (expected.data() == nullptr) {
VERIFY_EQ(nullptr, actual.data());
} else {
- VERIFY_EQ(quiche::QuicheStringPiece(expected.data(), expected.data_len()),
- quiche::QuicheStringPiece(actual.data(), actual.data_len()));
+ VERIFY_EQ(absl::string_view(expected.data(), expected.data_len()),
+ absl::string_view(actual.data(), actual.data_len()));
}
VERIFY_SUCCESS(VerifySpdyFrameWithPaddingIREquals(expected, actual));
return ::testing::AssertionSuccess();
diff --git a/spdy/core/spdy_simple_arena_test.cc b/spdy/core/spdy_simple_arena_test.cc
index 7e66567..b9e9f75 100644
--- a/spdy/core/spdy_simple_arena_test.cc
+++ b/spdy/core/spdy_simple_arena_test.cc
@@ -7,7 +7,7 @@
#include <string>
#include <vector>
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_test.h"
namespace spdy {
@@ -27,7 +27,7 @@
char* c = arena.Memdup(kTestString, length);
EXPECT_NE(nullptr, c);
EXPECT_NE(c, kTestString);
- EXPECT_EQ(quiche::QuicheStringPiece(c, length), kTestString);
+ EXPECT_EQ(absl::string_view(c, length), kTestString);
}
TEST(SpdySimpleArenaTest, MemdupLargeString) {
@@ -36,7 +36,7 @@
char* c = arena.Memdup(kTestString, length);
EXPECT_NE(nullptr, c);
EXPECT_NE(c, kTestString);
- EXPECT_EQ(quiche::QuicheStringPiece(c, length), kTestString);
+ EXPECT_EQ(absl::string_view(c, length), kTestString);
}
TEST(SpdySimpleArenaTest, MultipleBlocks) {
@@ -44,9 +44,9 @@
std::vector<std::string> strings = {
"One decently long string.", "Another string.",
"A third string that will surely go in a different block."};
- std::vector<quiche::QuicheStringPiece> copies;
+ std::vector<absl::string_view> copies;
for (const std::string& s : strings) {
- quiche::QuicheStringPiece sp(arena.Memdup(s.data(), s.size()), s.size());
+ absl::string_view sp(arena.Memdup(s.data(), s.size()), s.size());
copies.push_back(sp);
}
EXPECT_EQ(strings.size(), copies.size());
@@ -63,7 +63,7 @@
c = arena.Memdup(kTestString, length);
EXPECT_NE(nullptr, c);
EXPECT_NE(c, kTestString);
- EXPECT_EQ(quiche::QuicheStringPiece(c, length), kTestString);
+ EXPECT_EQ(absl::string_view(c, length), kTestString);
}
TEST(SpdySimpleArenaTest, Free) {
@@ -102,7 +102,7 @@
EXPECT_EQ(c1 + length, c2);
EXPECT_EQ(c2 + 2 * length, c3);
EXPECT_EQ(c3 + 3 * length, c4);
- EXPECT_EQ(quiche::QuicheStringPiece(c4, length), kTestString);
+ EXPECT_EQ(absl::string_view(c4, length), kTestString);
}
TEST(SpdySimpleArenaTest, Realloc) {
@@ -113,28 +113,28 @@
char* c2 = arena.Realloc(c1, length, 2 * length);
EXPECT_TRUE(c1);
EXPECT_EQ(c1, c2);
- EXPECT_EQ(quiche::QuicheStringPiece(c1, length), kTestString);
+ EXPECT_EQ(absl::string_view(c1, length), kTestString);
// Multiple reallocs.
char* c3 = arena.Memdup(kTestString, length);
EXPECT_EQ(c2 + 2 * length, c3);
- EXPECT_EQ(quiche::QuicheStringPiece(c3, length), kTestString);
+ EXPECT_EQ(absl::string_view(c3, length), kTestString);
char* c4 = arena.Realloc(c3, length, 2 * length);
EXPECT_EQ(c3, c4);
- EXPECT_EQ(quiche::QuicheStringPiece(c4, length), kTestString);
+ EXPECT_EQ(absl::string_view(c4, length), kTestString);
char* c5 = arena.Realloc(c4, 2 * length, 3 * length);
EXPECT_EQ(c4, c5);
- EXPECT_EQ(quiche::QuicheStringPiece(c5, length), kTestString);
+ EXPECT_EQ(absl::string_view(c5, length), kTestString);
char* c6 = arena.Memdup(kTestString, length);
EXPECT_EQ(c5 + 3 * length, c6);
- EXPECT_EQ(quiche::QuicheStringPiece(c6, length), kTestString);
+ EXPECT_EQ(absl::string_view(c6, length), kTestString);
// Realloc that does not fit in the remainder of the first block.
char* c7 = arena.Realloc(c6, length, kDefaultBlockSize);
- EXPECT_EQ(quiche::QuicheStringPiece(c7, length), kTestString);
+ EXPECT_EQ(absl::string_view(c7, length), kTestString);
arena.Free(c7, kDefaultBlockSize);
char* c8 = arena.Memdup(kTestString, length);
EXPECT_NE(c6, c7);
EXPECT_EQ(c7, c8);
- EXPECT_EQ(quiche::QuicheStringPiece(c8, length), kTestString);
+ EXPECT_EQ(absl::string_view(c8, length), kTestString);
}
} // namespace
diff --git a/spdy/core/spdy_test_utils.cc b/spdy/core/spdy_test_utils.cc
index 1d8db97..cf926b4 100644
--- a/spdy/core/spdy_test_utils.cc
+++ b/spdy/core/spdy_test_utils.cc
@@ -104,8 +104,8 @@
block_.clear();
}
-void TestHeadersHandler::OnHeader(quiche::QuicheStringPiece name,
- quiche::QuicheStringPiece value) {
+void TestHeadersHandler::OnHeader(absl::string_view name,
+ absl::string_view value) {
block_.AppendValueOrAddHeader(name, value);
}
diff --git a/spdy/core/spdy_test_utils.h b/spdy/core/spdy_test_utils.h
index b3c3aa5..aaaa65a 100644
--- a/spdy/core/spdy_test_utils.h
+++ b/spdy/core/spdy_test_utils.h
@@ -9,7 +9,7 @@
#include <cstdint>
#include <string>
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/spdy/core/spdy_header_block.h"
#include "net/third_party/quiche/src/spdy/core/spdy_headers_handler_interface.h"
#include "net/third_party/quiche/src/spdy/core/spdy_protocol.h"
@@ -17,7 +17,7 @@
namespace spdy {
-inline bool operator==(quiche::QuicheStringPiece x,
+inline bool operator==(absl::string_view x,
const SpdyHeaderBlock::ValueProxy& y) {
return y.operator==(x);
}
@@ -49,8 +49,7 @@
void OnHeaderBlockStart() override;
- void OnHeader(quiche::QuicheStringPiece name,
- quiche::QuicheStringPiece value) override;
+ void OnHeader(absl::string_view name, absl::string_view value) override;
void OnHeaderBlockEnd(size_t header_bytes_parsed,
size_t compressed_header_bytes_parsed) override;