diff options
Diffstat (limited to 'chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h')
-rw-r--r-- | chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h b/chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h index 037d5827a08..8f52eaf0fd6 100644 --- a/chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h +++ b/chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h @@ -7,6 +7,7 @@ #include <algorithm> #include <cstdint> +#include <sstream> #include <string> #include <vector> @@ -17,6 +18,7 @@ #include "base/strings/stringprintf.h" #include "net/base/hex_utils.h" #include "net/base/parse_number.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" namespace quiche { @@ -29,6 +31,11 @@ class QuicheTextUtilsImpl { return base::StartsWith(data, prefix, base::CompareCase::SENSITIVE); } + // Returns true if |data| end with |suffix|, case sensitively. + static bool EndsWith(QuicheStringPiece data, QuicheStringPiece suffix) { + return base::EndsWith(data, suffix, base::CompareCase::SENSITIVE); + } + // Returns true of |data| ends with |suffix|, case insensitively. static bool EndsWithIgnoreCase(QuicheStringPiece data, QuicheStringPiece suffix) { @@ -115,6 +122,16 @@ class QuicheTextUtilsImpl { } } + // Decodes a base64-encoded |input|. Returns nullopt when the input is + // invalid. + static QuicheOptional<std::string> Base64Decode(QuicheStringPiece input) { + std::string output; + if (!base::Base64Decode(input, &output)) { + return QuicheOptional<std::string>(); + } + return output; + } + // Returns a std::string containing hex and ASCII representations of |binary|, // side-by-side in the style of hexdump. Non-printable characters will be // printed as '.' in the ASCII output. |