Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / serviceworkers / Cache.h
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 #ifndef Cache_h
6 #define Cache_h
7
8 #include "bindings/core/v8/ScriptPromise.h"
9 #include "bindings/core/v8/ScriptWrappable.h"
10 #include "wtf/Forward.h"
11 #include "wtf/Noncopyable.h"
12 #include "wtf/RefCounted.h"
13 #include "wtf/Vector.h"
14 #include "wtf/text/WTFString.h"
15 #include <v8.h>
16
17 namespace blink {
18
19 class Dictionary;
20 class Response;
21 class Request;
22 class ScriptState;
23 class WebServiceWorkerCache;
24
25 class Cache FINAL : public RefCountedWillBeGarbageCollected<Cache>, public ScriptWrappable {
26     WTF_MAKE_NONCOPYABLE(Cache);
27 public:
28     static PassRefPtrWillBeRawPtr<Cache> fromWebServiceWorkerCache(WebServiceWorkerCache*);
29
30     // From Cache.idl:
31     ScriptPromise match(ScriptState*, Request*, const Dictionary& queryParams);
32     ScriptPromise match(ScriptState*, const String&, const Dictionary& queryParams);
33     ScriptPromise matchAll(ScriptState*, Request*, const Dictionary& queryParams);
34     ScriptPromise matchAll(ScriptState*, const String&, const Dictionary& queryParams);
35     ScriptPromise add(ScriptState*, Request*);
36     ScriptPromise add(ScriptState*, const String&);
37     ScriptPromise addAll(ScriptState*, const Vector<ScriptValue>&);
38     ScriptPromise deleteFunction(ScriptState*, Request*, const Dictionary& queryParams);
39     ScriptPromise deleteFunction(ScriptState*, const String&, const Dictionary& queryParams);
40     ScriptPromise put(ScriptState*, Request*, Response*);
41     ScriptPromise put(ScriptState*, const String&, Response*);
42     ScriptPromise keys(ScriptState*);
43     ScriptPromise keys(ScriptState*, Request*, const Dictionary& queryParams);
44     ScriptPromise keys(ScriptState*, const String&, const Dictionary& queryParams);
45
46     void trace(Visitor*) { }
47
48 private:
49     explicit Cache(WebServiceWorkerCache* webCache);
50
51     WebServiceWorkerCache const* ALLOW_UNUSED m_webCache;
52 };
53
54 } // namespace blink
55
56 #endif // Cache_h