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