diff options
author | Steve Block <steveblock@google.com> | 2009-12-15 10:12:09 +0000 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2009-12-17 17:41:10 +0000 |
commit | 643ca7872b450ea4efacab6188849e5aac2ba161 (patch) | |
tree | 6982576c228bcd1a7efe98afed544d840751094c /WebCore/platform/network/HTTPHeaderMap.cpp | |
parent | d026980fde6eb3b01c1fe49441174e89cd1be298 (diff) | |
download | external_webkit-643ca7872b450ea4efacab6188849e5aac2ba161.zip external_webkit-643ca7872b450ea4efacab6188849e5aac2ba161.tar.gz external_webkit-643ca7872b450ea4efacab6188849e5aac2ba161.tar.bz2 |
Merge webkit.org at r51976 : Initial merge by git.
Change-Id: Ib0e7e2f0fb4bee5a186610272edf3186f0986b43
Diffstat (limited to 'WebCore/platform/network/HTTPHeaderMap.cpp')
-rw-r--r-- | WebCore/platform/network/HTTPHeaderMap.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/WebCore/platform/network/HTTPHeaderMap.cpp b/WebCore/platform/network/HTTPHeaderMap.cpp index 07c66e8..413fb7b 100644 --- a/WebCore/platform/network/HTTPHeaderMap.cpp +++ b/WebCore/platform/network/HTTPHeaderMap.cpp @@ -59,5 +59,41 @@ void HTTPHeaderMap::adopt(auto_ptr<CrossThreadHTTPHeaderMapData> data) set(header.first, header.second); } } + +// Adapter that allows the HashMap to take C strings as keys. +struct CaseFoldingCStringTranslator { + static unsigned hash(const char* cString) + { + return CaseFoldingHash::hash(cString, strlen(cString)); + } + + static bool equal(const AtomicString& key, const char* cString) + { + return equalIgnoringCase(key, cString); + } + + static void translate(AtomicString& location, const char* cString, unsigned /*hash*/) + { + location = AtomicString(cString); + } +}; + +String HTTPHeaderMap::get(const char* name) const +{ + const_iterator i = find<const char*, CaseFoldingCStringTranslator>(name); + if (i == end()) + return String(); + return i->second; +} + +bool HTTPHeaderMap::contains(const char* name) const +{ + return find<const char*, CaseFoldingCStringTranslator>(name) != end(); +} + +pair<HTTPHeaderMap::iterator, bool> HTTPHeaderMap::add(const char* name, const String& value) +{ + return HashMap<AtomicString, String, CaseFoldingHash>::add<const char*, CaseFoldingCStringTranslator>(name, value); +} } // namespace WebCore |