Index: net/tools/balsa/string_piece_utils.h |
diff --git a/net/tools/balsa/string_piece_utils.h b/net/tools/balsa/string_piece_utils.h |
deleted file mode 100644 |
index 12fc69be85fca9e2ccda824d50774bada11dc587..0000000000000000000000000000000000000000 |
--- a/net/tools/balsa/string_piece_utils.h |
+++ /dev/null |
@@ -1,112 +0,0 @@ |
-// Copyright 2013 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. |
- |
-#ifndef NET_TOOLS_BALSA_STRING_PIECE_UTILS_H_ |
-#define NET_TOOLS_BALSA_STRING_PIECE_UTILS_H_ |
- |
-#include <ctype.h> |
- |
-#include "base/port.h" |
-#include "base/strings/string_piece.h" |
- |
-namespace net { |
- |
-#if defined(COMPILER_MSVC) |
-struct StringPieceCaseCompare { |
- static const size_t bucket_size = 4; |
- |
- size_t operator()(const base::StringPiece& sp) const { |
- // based on __stl_string_hash in http://www.sgi.com/tech/stl/string |
- size_t hash_val = 0; |
- for (base::StringPiece::const_iterator it = sp.begin(); |
- it != sp.end(); ++it) { |
- hash_val = 5 * hash_val + tolower(*it); |
- } |
- return hash_val; |
- } |
- |
- bool operator()(const base::StringPiece& sp1, |
- const base::StringPiece& sp2) const { |
- size_t len1 = sp1.length(); |
- size_t len2 = sp2.length(); |
- bool sp1_shorter = len1 < len2; |
- size_t len = sp1_shorter ? len1 : len2; |
- int rv = _memicmp(sp1.data(), sp2.data(), len); |
- if (rv == 0) { |
- return sp1_shorter; |
- } |
- return rv < 0; |
- } |
-}; |
-#else // COMPILER_MSVC |
-struct StringPieceCaseHash { |
- size_t operator()(const base::StringPiece& sp) const { |
- // based on __stl_string_hash in http://www.sgi.com/tech/stl/string |
- size_t hash_val = 0; |
- for (base::StringPiece::const_iterator it = sp.begin(); |
- it != sp.end(); ++it) { |
- hash_val = 5 * hash_val + tolower(*it); |
- } |
- return hash_val; |
- } |
-}; |
-#endif // COMPILER_MSVC |
- |
-struct StringPieceUtils { |
- static bool EqualIgnoreCase(const base::StringPiece& piece1, |
- const base::StringPiece& piece2) { |
- base::StringPiece::const_iterator p1i = piece1.begin(); |
- base::StringPiece::const_iterator p2i = piece2.begin(); |
- if (piece1.empty() && piece2.empty()) { |
- return true; |
- } else if (piece1.size() != piece2.size()) { |
- return false; |
- } |
- while (p1i != piece1.end() && p2i != piece2.end()) { |
- if (tolower(*p1i) != tolower(*p2i)) |
- return false; |
- ++p1i; |
- ++p2i; |
- } |
- return true; |
- } |
- |
- static void RemoveWhitespaceContext(base::StringPiece* piece1) { |
- base::StringPiece::const_iterator c = piece1->begin(); |
- base::StringPiece::const_iterator e = piece1->end(); |
- while (c != e && isspace(*c)) { |
- ++c; |
- } |
- if (c == e) { |
- *piece1 = base::StringPiece(c, e-c); |
- return; |
- } |
- --e; |
- while (c != e &&isspace(*e)) { |
- --e; |
- } |
- ++e; |
- *piece1 = base::StringPiece(c, e-c); |
- } |
- |
- static bool StartsWithIgnoreCase(const base::StringPiece& text, |
- const base::StringPiece& starts_with) { |
- if (text.size() < starts_with.size()) |
- return false; |
- return EqualIgnoreCase(text.substr(0, starts_with.size()), starts_with); |
- } |
-}; |
-struct StringPieceCaseEqual { |
- bool operator()(const base::StringPiece& piece1, |
- const base::StringPiece& piece2) const { |
- return StringPieceUtils::EqualIgnoreCase(piece1, piece2); |
- } |
-}; |
- |
- |
- |
-} // namespace net |
- |
-#endif // NET_TOOLS_BALSA_STRING_PIECE_UTILS_H_ |
- |