OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "config.h" | |
6 #include "modules/serviceworkers/HeaderMap.h" | |
7 | |
8 #include "modules/serviceworkers/HeaderMapForEachCallback.h" | |
9 #include "wtf/PassRefPtr.h" | |
10 #include "wtf/RefPtr.h" | |
11 #include "wtf/text/WTFString.h" | |
12 | |
13 namespace WebCore { | |
14 | |
15 PassRefPtr<HeaderMap> HeaderMap::create() | |
16 { | |
17 return adoptRef(new HeaderMap); | |
18 } | |
19 | |
20 unsigned long HeaderMap::size() const | |
21 { | |
22 return m_headers.size(); | |
23 } | |
24 | |
25 void HeaderMap::clear() | |
26 { | |
27 m_headers.clear(); | |
28 } | |
29 | |
30 bool HeaderMap::remove(const String& key) | |
31 { | |
32 if (!has(key)) | |
33 return false; | |
34 m_headers.remove(key); | |
35 return true; | |
36 } | |
37 | |
38 String HeaderMap::get(const String& key) | |
39 { | |
40 return m_headers.get(key); | |
41 } | |
42 | |
43 bool HeaderMap::has(const String& key) | |
44 { | |
45 return m_headers.find(key) != m_headers.end(); | |
46 } | |
47 | |
48 void HeaderMap::set(const String& key, const String& value) | |
49 { | |
50 m_headers.set(key, value); | |
51 } | |
52 | |
53 void HeaderMap::forEach(PassOwnPtr<HeaderMapForEachCallback> callback, ScriptVal ue& thisArg) | |
54 { | |
55 forEachInternal(callback, &thisArg); | |
56 } | |
57 | |
58 void HeaderMap::forEach(PassOwnPtr<HeaderMapForEachCallback> callback) | |
59 { | |
60 forEachInternal(callback, 0); | |
61 } | |
62 | |
63 HeaderMap::HeaderMap() | |
64 { | |
65 ScriptWrappable::init(this); | |
66 } | |
67 | |
68 void HeaderMap::forEachInternal(PassOwnPtr<HeaderMapForEachCallback> callback, S criptValue* thisArg) | |
69 { | |
70 for (HashMap<String, String>::const_iterator it = m_headers.begin(); it != m _headers.end(); ++it) { | |
jsbell
2014/05/23 20:59:49
Do we need to terminate the loop if the callback t
kinuko
2014/05/26 05:45:13
Um, maybe... done.
| |
71 if (thisArg) | |
72 callback->handleItem(*thisArg, it->value, it->key, this); | |
73 else | |
74 callback->handleItem(it->value, it->key, this); | |
75 } | |
76 } | |
77 | |
78 } // namespace WebCore | |
OLD | NEW |