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

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

Issue 10083053: IndexedDB: Support get/getKey(keyRange) (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 8 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/indexed_db/indexed_db_dispatcher.h" 5 #include "content/common/indexed_db/indexed_db_dispatcher.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "base/threading/thread_local.h" 8 #include "base/threading/thread_local.h"
9 #include "content/common/child_thread.h" 9 #include "content/common/child_thread.h"
10 #include "content/common/indexed_db/indexed_db_messages.h" 10 #include "content/common/indexed_db/indexed_db_messages.h"
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 ResetCursorPrefetchCaches(); 362 ResetCursorPrefetchCaches();
363 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); 363 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
364 int32 response_id = pending_callbacks_.Add(callbacks.release()); 364 int32 response_id = pending_callbacks_.Add(callbacks.release());
365 Send(new IndexedDBHostMsg_IndexGetObject(idb_index_id, CurrentWorkerId(), 365 Send(new IndexedDBHostMsg_IndexGetObject(idb_index_id, CurrentWorkerId(),
366 response_id, key, 366 response_id, key,
367 TransactionId(transaction), ec)); 367 TransactionId(transaction), ec));
368 if (*ec) 368 if (*ec)
369 pending_callbacks_.Remove(response_id); 369 pending_callbacks_.Remove(response_id);
370 } 370 }
371 371
372 void IndexedDBDispatcher::RequestIDBIndexGetObjectByRange(
373 const IndexedDBKeyRange& key_range,
374 WebIDBCallbacks* callbacks_ptr,
375 int32 idb_index_id,
376 const WebIDBTransaction& transaction,
377 WebExceptionCode* ec) {
378 ResetCursorPrefetchCaches();
379 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
380 int32 response_id = pending_callbacks_.Add(callbacks.release());
381 Send(new IndexedDBHostMsg_IndexGetObjectByRange(
382 idb_index_id, CurrentWorkerId(),
jsbell 2012/04/18 19:23:44 Should have 4 more spaces of indent
alecflett 2012/04/18 20:16:07 Done.
383 response_id, key_range,
384 TransactionId(transaction), ec));
385 if (*ec)
386 pending_callbacks_.Remove(response_id);
387 }
388
372 void IndexedDBDispatcher::RequestIDBIndexGetKey( 389 void IndexedDBDispatcher::RequestIDBIndexGetKey(
373 const IndexedDBKey& key, 390 const IndexedDBKey& key,
374 WebIDBCallbacks* callbacks_ptr, 391 WebIDBCallbacks* callbacks_ptr,
375 int32 idb_index_id, 392 int32 idb_index_id,
376 const WebIDBTransaction& transaction, 393 const WebIDBTransaction& transaction,
377 WebExceptionCode* ec) { 394 WebExceptionCode* ec) {
378 ResetCursorPrefetchCaches(); 395 ResetCursorPrefetchCaches();
379 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); 396 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
380 int32 response_id = pending_callbacks_.Add(callbacks.release()); 397 int32 response_id = pending_callbacks_.Add(callbacks.release());
381 Send(new IndexedDBHostMsg_IndexGetKey( 398 Send(new IndexedDBHostMsg_IndexGetKey(
382 idb_index_id, CurrentWorkerId(), response_id, key, 399 idb_index_id, CurrentWorkerId(), response_id, key,
383 TransactionId(transaction), ec)); 400 TransactionId(transaction), ec));
384 if (*ec) 401 if (*ec)
385 pending_callbacks_.Remove(response_id); 402 pending_callbacks_.Remove(response_id);
386 } 403 }
387 404
405 void IndexedDBDispatcher::RequestIDBIndexGetKeyByRange(
406 const IndexedDBKeyRange& key_range,
407 WebIDBCallbacks* callbacks_ptr,
408 int32 idb_index_id,
409 const WebIDBTransaction& transaction,
410 WebExceptionCode* ec) {
411 ResetCursorPrefetchCaches();
412 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
413 int32 response_id = pending_callbacks_.Add(callbacks.release());
414 Send(new IndexedDBHostMsg_IndexGetKeyByRange(
415 idb_index_id, CurrentWorkerId(), response_id, key_range,
416 TransactionId(transaction), ec));
417 if (*ec)
418 pending_callbacks_.Remove(response_id);
419 }
420
388 void IndexedDBDispatcher::RequestIDBObjectStoreGet( 421 void IndexedDBDispatcher::RequestIDBObjectStoreGet(
389 const IndexedDBKey& key, 422 const IndexedDBKey& key,
390 WebIDBCallbacks* callbacks_ptr, 423 WebIDBCallbacks* callbacks_ptr,
391 int32 idb_object_store_id, 424 int32 idb_object_store_id,
392 const WebIDBTransaction& transaction, 425 const WebIDBTransaction& transaction,
393 WebExceptionCode* ec) { 426 WebExceptionCode* ec) {
394 ResetCursorPrefetchCaches(); 427 ResetCursorPrefetchCaches();
395 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); 428 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
396 429
397 int32 response_id = pending_callbacks_.Add(callbacks.release()); 430 int32 response_id = pending_callbacks_.Add(callbacks.release());
398 Send(new IndexedDBHostMsg_ObjectStoreGet( 431 Send(new IndexedDBHostMsg_ObjectStoreGet(
399 idb_object_store_id, CurrentWorkerId(), response_id, 432 idb_object_store_id, CurrentWorkerId(), response_id,
400 key, TransactionId(transaction), ec)); 433 key, TransactionId(transaction), ec));
401 if (*ec) 434 if (*ec)
402 pending_callbacks_.Remove(response_id); 435 pending_callbacks_.Remove(response_id);
403 } 436 }
404 437
438 void IndexedDBDispatcher::RequestIDBObjectStoreGetByRange(
439 const IndexedDBKeyRange& key_range,
440 WebIDBCallbacks* callbacks_ptr,
441 int32 idb_object_store_id,
442 const WebIDBTransaction& transaction,
443 WebExceptionCode* ec) {
444 ResetCursorPrefetchCaches();
445 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
446
447 int32 response_id = pending_callbacks_.Add(callbacks.release());
448 Send(new IndexedDBHostMsg_ObjectStoreGetByRange(
449 idb_object_store_id, CurrentWorkerId(), response_id,
450 key_range, TransactionId(transaction), ec));
451 if (*ec)
452 pending_callbacks_.Remove(response_id);
453 }
454
405 void IndexedDBDispatcher::RequestIDBObjectStorePut( 455 void IndexedDBDispatcher::RequestIDBObjectStorePut(
406 const content::SerializedScriptValue& value, 456 const content::SerializedScriptValue& value,
407 const IndexedDBKey& key, 457 const IndexedDBKey& key,
408 WebKit::WebIDBObjectStore::PutMode put_mode, 458 WebKit::WebIDBObjectStore::PutMode put_mode,
409 WebIDBCallbacks* callbacks_ptr, 459 WebIDBCallbacks* callbacks_ptr,
410 int32 idb_object_store_id, 460 int32 idb_object_store_id,
411 const WebIDBTransaction& transaction, 461 const WebIDBTransaction& transaction,
412 WebExceptionCode* ec) { 462 WebExceptionCode* ec) {
413 ResetCursorPrefetchCaches(); 463 ResetCursorPrefetchCaches();
414 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); 464 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 } 763 }
714 764
715 void IndexedDBDispatcher::ResetCursorPrefetchCaches(int32 exception_cursor_id) { 765 void IndexedDBDispatcher::ResetCursorPrefetchCaches(int32 exception_cursor_id) {
716 typedef std::map<int32, RendererWebIDBCursorImpl*>::iterator Iterator; 766 typedef std::map<int32, RendererWebIDBCursorImpl*>::iterator Iterator;
717 for (Iterator i = cursors_.begin(); i != cursors_.end(); ++i) { 767 for (Iterator i = cursors_.begin(); i != cursors_.end(); ++i) {
718 if (i->first == exception_cursor_id) 768 if (i->first == exception_cursor_id)
719 continue; 769 continue;
720 i->second->ResetPrefetchCache(); 770 i->second->ResetPrefetchCache();
721 } 771 }
722 } 772 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698