- add sources.
[platform/framework/web/crosswalk.git] / src / content / child / indexed_db / proxy_webidbdatabase_impl.h
1 // Copyright 2013 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 CONTENT_CHILD_INDEXED_DB_PROXY_WEBIDBDATABASE_IMPL_H_
6 #define CONTENT_CHILD_INDEXED_DB_PROXY_WEBIDBDATABASE_IMPL_H_
7
8 #include "base/basictypes.h"
9 #include "base/memory/ref_counted.h"
10 #include "third_party/WebKit/public/platform/WebIDBDatabase.h"
11
12 namespace WebKit {
13 class WebIDBCallbacks;
14 class WebIDBDatabaseCallbacks;
15 class WebString;
16 }
17
18 namespace content {
19 class ThreadSafeSender;
20
21 class RendererWebIDBDatabaseImpl : public WebKit::WebIDBDatabase {
22  public:
23   RendererWebIDBDatabaseImpl(int32 ipc_database_id,
24                              int32 ipc_database_callbacks_id,
25                              ThreadSafeSender* thread_safe_sender);
26   virtual ~RendererWebIDBDatabaseImpl();
27
28   // WebKit::WebIDBDatabase
29   virtual void createObjectStore(
30       long long transaction_id,
31       long long objectstore_id,
32       const WebKit::WebString& name,
33       const WebKit::WebIDBKeyPath& key_path,
34       bool auto_increment);
35   virtual void deleteObjectStore(
36       long long transaction_id,
37       long long object_store_id);
38   virtual void createTransaction(
39       long long transaction_id,
40       WebKit::WebIDBDatabaseCallbacks* callbacks,
41       const WebKit::WebVector<long long>& scope,
42       unsigned short mode);
43   virtual void close();
44   virtual void get(long long transactionId,
45                    long long objectStoreId,
46                    long long indexId,
47                    const WebKit::WebIDBKeyRange&,
48                    bool keyOnly,
49                    WebKit::WebIDBCallbacks*);
50   virtual void put(long long transactionId,
51                    long long objectStoreId,
52                    const WebKit::WebData& value,
53                    const WebKit::WebIDBKey&,
54                    PutMode,
55                    WebKit::WebIDBCallbacks*,
56                    const WebKit::WebVector<long long>& indexIds,
57                    const WebKit::WebVector<WebIndexKeys>&);
58   virtual void setIndexKeys(long long transactionId,
59                             long long objectStoreId,
60                             const WebKit::WebIDBKey&,
61                             const WebKit::WebVector<long long>& indexIds,
62                             const WebKit::WebVector<WebIndexKeys>&);
63   virtual void setIndexesReady(long long transactionId,
64                                long long objectStoreId,
65                                const WebKit::WebVector<long long>& indexIds);
66   virtual void openCursor(long long transactionId,
67                           long long objectStoreId,
68                           long long indexId,
69                           const WebKit::WebIDBKeyRange&,
70                           unsigned short direction,
71                           bool keyOnly,
72                           TaskType,
73                           WebKit::WebIDBCallbacks*);
74   virtual void count(long long transactionId,
75                      long long objectStoreId,
76                      long long indexId,
77                      const WebKit::WebIDBKeyRange&,
78                      WebKit::WebIDBCallbacks*);
79   virtual void deleteRange(long long transactionId,
80                            long long objectStoreId,
81                            const WebKit::WebIDBKeyRange&,
82                            WebKit::WebIDBCallbacks*);
83   virtual void clear(long long transactionId,
84                      long long objectStoreId,
85                      WebKit::WebIDBCallbacks*);
86   virtual void createIndex(long long transactionId,
87                            long long objectStoreId,
88                            long long indexId,
89                            const WebKit::WebString& name,
90                            const WebKit::WebIDBKeyPath&,
91                            bool unique,
92                            bool multiEntry);
93   virtual void deleteIndex(long long transactionId, long
94                            long objectStoreId,
95                            long long indexId);
96   virtual void abort(long long transaction_id);
97   virtual void commit(long long transaction_id);
98
99  private:
100   int32 ipc_database_id_;
101   int32 ipc_database_callbacks_id_;
102   scoped_refptr<ThreadSafeSender> thread_safe_sender_;
103 };
104
105 }  // namespace content
106
107 #endif  // CONTENT_CHILD_INDEXED_DB_PROXY_WEBIDBDATABASE_IMPL_H_