Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Side by Side Diff: content/common/indexed_db/proxy_webidbobjectstore_impl.cc

Issue 11828054: Remove IPC code for old methods. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix merge conflicts Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2012 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 "content/common/indexed_db/proxy_webidbobjectstore_impl.h"
6
7 #include <vector>
8
9 #include "content/common/indexed_db/indexed_db_messages.h"
10 #include "content/public/common/serialized_script_value.h"
11 #include "content/common/indexed_db/indexed_db_dispatcher.h"
12 #include "content/common/indexed_db/proxy_webidbindex_impl.h"
13 #include "content/common/indexed_db/proxy_webidbtransaction_impl.h"
14 #include "content/common/child_thread.h"
15 #include "third_party/WebKit/Source/Platform/chromium/public/WebString.h"
16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDOMStringList.h"
17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKey.h"
18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyPath.h"
19 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyRange.h"
20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBTransaction.h"
21 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebSerialize dScriptValue.h"
22
23 using WebKit::WebDOMStringList;
24 using WebKit::WebExceptionCode;
25 using WebKit::WebFrame;
26 using WebKit::WebIDBCallbacks;
27 using WebKit::WebIDBKeyPath;
28 using WebKit::WebIDBKeyRange;
29 using WebKit::WebIDBIndex;
30 using WebKit::WebIDBKey;
31 using WebKit::WebIDBTransaction;
32 using WebKit::WebSerializedScriptValue;
33 using WebKit::WebString;
34 using WebKit::WebVector;
35
36 namespace content {
37
38 RendererWebIDBObjectStoreImpl::RendererWebIDBObjectStoreImpl(
39 int32 ipc_object_store_id)
40 : ipc_object_store_id_(ipc_object_store_id) {
41 }
42
43 RendererWebIDBObjectStoreImpl::~RendererWebIDBObjectStoreImpl() {
44 // It's not possible for there to be pending callbacks that address this
45 // object since inside WebKit, they hold a reference to the object wich owns
46 // this object. But, if that ever changed, then we'd need to invalidate
47 // any such pointers.
48 IndexedDBDispatcher::Send(
49 new IndexedDBHostMsg_ObjectStoreDestroyed(ipc_object_store_id_));
50 }
51
52 void RendererWebIDBObjectStoreImpl::get(
53 const WebIDBKeyRange& key_range,
54 WebIDBCallbacks* callbacks,
55 const WebIDBTransaction& transaction,
56 WebExceptionCode& ec) {
57 IndexedDBDispatcher* dispatcher =
58 IndexedDBDispatcher::ThreadSpecificInstance();
59 dispatcher->RequestIDBObjectStoreGet(
60 IndexedDBKeyRange(key_range), callbacks,
61 ipc_object_store_id_, transaction, &ec);
62 }
63
64 void RendererWebIDBObjectStoreImpl::put(
65 const WebSerializedScriptValue& value,
66 const WebIDBKey& key,
67 PutMode put_mode,
68 WebIDBCallbacks* callbacks,
69 const WebIDBTransaction& transaction,
70 const WebVector<long long>& index_ids,
71 const WebVector<WebVector<WebIDBKey> >& index_keys) {
72 IndexedDBDispatcher* dispatcher =
73 IndexedDBDispatcher::ThreadSpecificInstance();
74 dispatcher->RequestIDBObjectStorePut(
75 SerializedScriptValue(value), IndexedDBKey(key),
76 put_mode, callbacks, ipc_object_store_id_, transaction,
77 index_ids, index_keys);
78 }
79
80 void RendererWebIDBObjectStoreImpl::setIndexKeys(
81 const WebKit::WebIDBKey& primaryKey,
82 const WebKit::WebVector<long long>& index_ids,
83 const WebKit::WebVector<WebIndexKeys>& index_keys,
84 const WebKit::WebIDBTransaction& transaction) {
85 std::vector<int64> index_ids_list(index_ids.size());
86 for (size_t i = 0; i < index_ids.size(); ++i) {
87 index_ids_list[i] = index_ids[i];
88 }
89
90 std::vector<std::vector<IndexedDBKey> >
91 index_keys_list(index_keys.size());
92 for (size_t i = 0; i < index_keys.size(); ++i) {
93 index_keys_list[i].resize(index_keys[i].size());
94 for (size_t j = 0; j < index_keys[i].size(); ++j) {
95 index_keys_list[i][j] = IndexedDBKey(index_keys[i][j]);
96 }
97 }
98 IndexedDBDispatcher::Send(new IndexedDBHostMsg_ObjectStoreSetIndexKeys(
99 ipc_object_store_id_,
100 IndexedDBKey(primaryKey),
101 index_ids_list,
102 index_keys_list,
103 IndexedDBDispatcher::TransactionId(transaction)));
104 }
105
106 void RendererWebIDBObjectStoreImpl::setIndexesReady(
107 const WebKit::WebVector<long long>& index_ids,
108 const WebKit::WebIDBTransaction& transaction) {
109
110 std::vector<int64> index_id_list(index_ids.size());
111 for (size_t i = 0; i < index_ids.size(); ++i) {
112 index_id_list[i] = index_ids[i];
113 }
114
115 IndexedDBDispatcher::Send(new IndexedDBHostMsg_ObjectStoreSetIndexesReady(
116 ipc_object_store_id_,
117 index_id_list, IndexedDBDispatcher::TransactionId(transaction)));
118 }
119
120 void RendererWebIDBObjectStoreImpl::deleteFunction(
121 const WebIDBKeyRange& key_range,
122 WebIDBCallbacks* callbacks,
123 const WebIDBTransaction& transaction,
124 WebExceptionCode& ec) {
125 IndexedDBDispatcher* dispatcher =
126 IndexedDBDispatcher::ThreadSpecificInstance();
127 dispatcher->RequestIDBObjectStoreDelete(
128 IndexedDBKeyRange(key_range), callbacks, ipc_object_store_id_,
129 transaction, &ec);
130 }
131
132 void RendererWebIDBObjectStoreImpl::clear(
133 WebIDBCallbacks* callbacks,
134 const WebIDBTransaction& transaction,
135 WebExceptionCode& ec) {
136 IndexedDBDispatcher* dispatcher =
137 IndexedDBDispatcher::ThreadSpecificInstance();
138 dispatcher->RequestIDBObjectStoreClear(
139 callbacks, ipc_object_store_id_, transaction, &ec);
140 }
141
142 WebIDBIndex* RendererWebIDBObjectStoreImpl::createIndex(
143 long long id,
144 const WebString& name,
145 const WebIDBKeyPath& key_path,
146 bool unique,
147 bool multi_entry,
148 const WebIDBTransaction& transaction,
149 WebExceptionCode& ec) {
150 IndexedDBHostMsg_ObjectStoreCreateIndex_Params params;
151 params.id = id;
152 params.name = name;
153 params.key_path = IndexedDBKeyPath(key_path);
154 params.unique = unique;
155 params.multi_entry = multi_entry;
156 params.ipc_transaction_id = IndexedDBDispatcher::TransactionId(transaction);
157 params.ipc_object_store_id = ipc_object_store_id_;
158
159 int32 ipc_index_id;
160 IndexedDBDispatcher::Send(
161 new IndexedDBHostMsg_ObjectStoreCreateIndex(params, &ipc_index_id, &ec));
162 if (!ipc_index_id)
163 return NULL;
164 return new RendererWebIDBIndexImpl(ipc_index_id);
165 }
166
167 WebIDBIndex* RendererWebIDBObjectStoreImpl::index(
168 const long long index_id) {
169 int32 ipc_index_id;
170 IndexedDBDispatcher::Send(
171 new IndexedDBHostMsg_ObjectStoreIndex(ipc_object_store_id_, index_id,
172 &ipc_index_id));
173 if (!ipc_index_id)
174 return NULL;
175 return new RendererWebIDBIndexImpl(ipc_index_id);
176 }
177
178 void RendererWebIDBObjectStoreImpl::deleteIndex(
179 long long index_id,
180 const WebIDBTransaction& transaction,
181 WebExceptionCode& ec) {
182 IndexedDBDispatcher::Send(
183 new IndexedDBHostMsg_ObjectStoreDeleteIndex(
184 ipc_object_store_id_, index_id,
185 IndexedDBDispatcher::TransactionId(transaction), &ec));
186 }
187
188 void RendererWebIDBObjectStoreImpl::openCursor(
189 const WebIDBKeyRange& idb_key_range,
190 WebKit::WebIDBCursor::Direction direction, WebIDBCallbacks* callbacks,
191 WebKit::WebIDBTransaction::TaskType task_type,
192 const WebIDBTransaction& transaction,
193 WebExceptionCode& ec) {
194 IndexedDBDispatcher* dispatcher =
195 IndexedDBDispatcher::ThreadSpecificInstance();
196 dispatcher->RequestIDBObjectStoreOpenCursor(
197 idb_key_range, direction, callbacks, ipc_object_store_id_,
198 task_type, transaction, &ec);
199 }
200
201 void RendererWebIDBObjectStoreImpl::count(
202 const WebIDBKeyRange& idb_key_range,
203 WebIDBCallbacks* callbacks,
204 const WebIDBTransaction& transaction,
205 WebExceptionCode& ec) {
206 IndexedDBDispatcher* dispatcher =
207 IndexedDBDispatcher::ThreadSpecificInstance();
208 dispatcher->RequestIDBObjectStoreCount(
209 idb_key_range, callbacks, ipc_object_store_id_,
210 transaction, &ec);
211 }
212
213 } // namespace content
OLDNEW
« no previous file with comments | « content/common/indexed_db/proxy_webidbobjectstore_impl.h ('k') | content/common/indexed_db/proxy_webidbtransaction_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698