Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(234)

Unified Diff: Source/platform/network/HTTPHeaderMap.h

Issue 536523002: HTTPHeaderMap: Favor composition over inheritance. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: .. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/platform/network/HTTPHeaderMap.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/platform/network/HTTPHeaderMap.h
diff --git a/Source/platform/network/HTTPHeaderMap.h b/Source/platform/network/HTTPHeaderMap.h
index 811a40de644df9a07e60ffc8ed31d07ab2c1bd22..f18cec05bd778e4e9dfc46a7482781a3ae7a97e0 100644
--- a/Source/platform/network/HTTPHeaderMap.h
+++ b/Source/platform/network/HTTPHeaderMap.h
@@ -41,7 +41,7 @@ namespace blink {
typedef Vector<std::pair<String, String> > CrossThreadHTTPHeaderMapData;
// FIXME: Not every header fits into a map. Notably, multiple Set-Cookie header fields are needed to set multiple cookies.
-class PLATFORM_EXPORT HTTPHeaderMap : public HashMap<AtomicString, AtomicString, CaseFoldingHash> {
+class PLATFORM_EXPORT HTTPHeaderMap {
public:
HTTPHeaderMap();
~HTTPHeaderMap();
@@ -51,15 +51,28 @@ public:
void adopt(PassOwnPtr<CrossThreadHTTPHeaderMapData>);
- const AtomicString& get(const AtomicString& name) const;
+ typedef HashMap<AtomicString, AtomicString, CaseFoldingHash> MapType;
+ typedef MapType::AddResult AddResult;
+ typedef MapType::const_iterator const_iterator;
- AddResult add(const AtomicString& name, const AtomicString& value);
+ size_t size() const { return m_headers.size(); }
+ const_iterator begin() const { return m_headers.begin(); }
+ const_iterator end() const { return m_headers.end(); }
+ const_iterator find(const AtomicString &k) const { return m_headers.find(k); }
+ void clear() { m_headers.clear(); }
+ const AtomicString& get(const AtomicString& k) const { return m_headers.get(k); }
+ AddResult set(const AtomicString& k, const AtomicString& v) { return m_headers.set(k, v); }
+ AddResult add(const AtomicString& k, const AtomicString& v) { return m_headers.add(k, v); }
+ void remove(const AtomicString& k) { m_headers.remove(k); }
+ bool operator!=(const HTTPHeaderMap &rhs) const { return m_headers != rhs.m_headers; }
// Alternate accessors that are faster than converting the char* to AtomicString first.
bool contains(const char*) const;
const AtomicString& get(const char*) const;
AddResult add(const char* name, const AtomicString& value);
+private:
+ HashMap<AtomicString, AtomicString, CaseFoldingHash> m_headers;
};
} // namespace blink
« no previous file with comments | « no previous file | Source/platform/network/HTTPHeaderMap.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698