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.
5 #ifndef CONTENT_CHILD_INDEXED_DB_PROXY_WEBIDBDATABASE_IMPL_H_
6 #define CONTENT_CHILD_INDEXED_DB_PROXY_WEBIDBDATABASE_IMPL_H_
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"
14 class WebIDBCallbacks;
15 class WebIDBDatabaseCallbacks;
20 class ThreadSafeSender;
22 class WebIDBDatabaseImpl : public blink::WebIDBDatabase {
24 WebIDBDatabaseImpl(int32 ipc_database_id,
25 int32 ipc_database_callbacks_id,
26 ThreadSafeSender* thread_safe_sender);
27 virtual ~WebIDBDatabaseImpl();
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,
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);
42 virtual void get(long long transactionId,
43 long long objectStoreId,
45 const blink::WebIDBKeyRange&,
47 blink::WebIDBCallbacks*);
48 virtual void put(long long transactionId,
49 long long objectStoreId,
50 const blink::WebData& value,
51 const blink::WebIDBKey&,
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,
67 const blink::WebIDBKeyRange&,
68 blink::WebIDBCursor::Direction direction,
71 blink::WebIDBCallbacks*);
72 virtual void count(long long transactionId,
73 long long objectStoreId,
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,
87 const blink::WebString& name,
88 const blink::WebIDBKeyPath&,
91 virtual void deleteIndex(long long transactionId,
92 long long objectStoreId,
94 virtual void abort(long long transaction_id);
95 virtual void commit(long long transaction_id);
98 int32 ipc_database_id_;
99 int32 ipc_database_callbacks_id_;
100 scoped_refptr<ThreadSafeSender> thread_safe_sender_;
103 } // namespace content
105 #endif // CONTENT_CHILD_INDEXED_DB_PROXY_WEBIDBDATABASE_IMPL_H_