| OLD | NEW |
| 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 #ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_CALLBACKS_H_ | 5 #ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_CALLBACKS_H_ |
| 6 #define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_CALLBACKS_H_ | 6 #define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_CALLBACKS_H_ |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
| 10 #include "content/browser/indexed_db/indexed_db_dispatcher_host.h" | 10 #include "content/browser/indexed_db/indexed_db_dispatcher_host.h" |
| 11 #include "googleurl/src/gurl.h" | 11 #include "googleurl/src/gurl.h" |
| 12 #include "third_party/WebKit/public/platform/WebIDBCallbacks.h" | 12 #include "third_party/WebKit/public/platform/WebIDBCallbacks.h" |
| 13 #include "third_party/WebKit/public/platform/WebIDBDatabase.h" | 13 #include "third_party/WebKit/public/platform/WebIDBDatabase.h" |
| 14 | 14 |
| 15 namespace content { | 15 namespace content { |
| 16 class IndexedDBCursor; |
| 16 class IndexedDBDatabaseError; | 17 class IndexedDBDatabaseError; |
| 17 class WebIDBCursorImpl; | |
| 18 class WebIDBDatabaseImpl; | 18 class WebIDBDatabaseImpl; |
| 19 struct IndexedDBDatabaseMetadata; | 19 struct IndexedDBDatabaseMetadata; |
| 20 | 20 |
| 21 class IndexedDBCallbacksBase { | 21 class IndexedDBCallbacksBase { |
| 22 public: | 22 public: |
| 23 virtual ~IndexedDBCallbacksBase(); | 23 virtual ~IndexedDBCallbacksBase(); |
| 24 | 24 |
| 25 virtual void onError(const IndexedDBDatabaseError& error); | 25 virtual void onError(const IndexedDBDatabaseError& error); |
| 26 virtual void onBlocked(long long old_version); | 26 virtual void onBlocked(long long old_version); |
| 27 | 27 |
| 28 // implemented by subclasses, but need to be called later | 28 // implemented by subclasses, but need to be called later |
| 29 virtual void onSuccess(const std::vector<string16>& value); | 29 virtual void onSuccess(const std::vector<string16>& value); |
| 30 virtual void onSuccess(WebIDBDatabaseImpl* idb_object, | 30 virtual void onSuccess(WebIDBDatabaseImpl* idb_object, |
| 31 const IndexedDBDatabaseMetadata& metadata); | 31 const IndexedDBDatabaseMetadata& metadata); |
| 32 virtual void onUpgradeNeeded(long long old_version, | 32 virtual void onUpgradeNeeded(long long old_version, |
| 33 WebIDBDatabaseImpl* database, | 33 WebIDBDatabaseImpl* database, |
| 34 const IndexedDBDatabaseMetadata&, | 34 const IndexedDBDatabaseMetadata&, |
| 35 WebKit::WebIDBCallbacks::DataLoss data_loss); | 35 WebKit::WebIDBCallbacks::DataLoss data_loss); |
| 36 virtual void onSuccess(WebIDBCursorImpl* idb_object, | 36 virtual void onSuccess(IndexedDBCursor* idb_object, |
| 37 const IndexedDBKey& key, | 37 const IndexedDBKey& key, |
| 38 const IndexedDBKey& primaryKey, | 38 const IndexedDBKey& primaryKey, |
| 39 std::vector<char>* value); | 39 std::vector<char>* value); |
| 40 virtual void onSuccess(const IndexedDBKey& key, | 40 virtual void onSuccess(const IndexedDBKey& key, |
| 41 const IndexedDBKey& primaryKey, | 41 const IndexedDBKey& primaryKey, |
| 42 std::vector<char>* value); | 42 std::vector<char>* value); |
| 43 virtual void onSuccess(std::vector<char>* value); | 43 virtual void onSuccess(std::vector<char>* value); |
| 44 virtual void onSuccessWithPrefetch( | 44 virtual void onSuccessWithPrefetch( |
| 45 const std::vector<IndexedDBKey>& keys, | 45 const std::vector<IndexedDBKey>& keys, |
| 46 const std::vector<IndexedDBKey>& primaryKeys, | 46 const std::vector<IndexedDBKey>& primaryKeys, |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 OVERRIDE; | 95 OVERRIDE; |
| 96 | 96 |
| 97 private: | 97 private: |
| 98 int64 host_transaction_id_; | 98 int64 host_transaction_id_; |
| 99 GURL origin_url_; | 99 GURL origin_url_; |
| 100 int32 ipc_database_id_; | 100 int32 ipc_database_id_; |
| 101 int32 ipc_database_callbacks_id_; | 101 int32 ipc_database_callbacks_id_; |
| 102 DISALLOW_IMPLICIT_CONSTRUCTORS(IndexedDBCallbacksDatabase); | 102 DISALLOW_IMPLICIT_CONSTRUCTORS(IndexedDBCallbacksDatabase); |
| 103 }; | 103 }; |
| 104 | 104 |
| 105 // WebIDBCursorImpl uses: | 105 // IndexedDBCursor uses: |
| 106 // * onSuccess(WebIDBCursorImpl*, WebIDBKey, WebIDBKey, WebData) | 106 // * onSuccess(IndexedDBCursor*, WebIDBKey, WebIDBKey, WebData) |
| 107 // when an openCursor()/openKeyCursor() call has succeeded, | 107 // when an openCursor()/openKeyCursor() call has succeeded, |
| 108 // * onSuccess(WebIDBKey, WebIDBKey, WebData) | 108 // * onSuccess(WebIDBKey, WebIDBKey, WebData) |
| 109 // when an advance()/continue() call has succeeded, or | 109 // when an advance()/continue() call has succeeded, or |
| 110 // * onSuccess() | 110 // * onSuccess() |
| 111 // to indicate it does not contain any data, i.e., there is no key within | 111 // to indicate it does not contain any data, i.e., there is no key within |
| 112 // the key range, or it has reached the end. | 112 // the key range, or it has reached the end. |
| 113 template <> | 113 template <> |
| 114 class IndexedDBCallbacks<WebIDBCursorImpl> : public IndexedDBCallbacksBase { | 114 class IndexedDBCallbacks<IndexedDBCursor> : public IndexedDBCallbacksBase { |
| 115 public: | 115 public: |
| 116 IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host, | 116 IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host, |
| 117 int32 ipc_thread_id, | 117 int32 ipc_thread_id, |
| 118 int32 ipc_callbacks_id, | 118 int32 ipc_callbacks_id, |
| 119 int32 ipc_cursor_id) | 119 int32 ipc_cursor_id) |
| 120 : IndexedDBCallbacksBase(dispatcher_host, | 120 : IndexedDBCallbacksBase(dispatcher_host, |
| 121 ipc_thread_id, | 121 ipc_thread_id, |
| 122 ipc_callbacks_id), | 122 ipc_callbacks_id), |
| 123 ipc_cursor_id_(ipc_cursor_id) {} | 123 ipc_cursor_id_(ipc_cursor_id) {} |
| 124 | 124 |
| 125 virtual void onSuccess(WebIDBCursorImpl* idb_object, | 125 virtual void onSuccess(IndexedDBCursor* idb_object, |
| 126 const IndexedDBKey& key, | 126 const IndexedDBKey& key, |
| 127 const IndexedDBKey& primaryKey, | 127 const IndexedDBKey& primaryKey, |
| 128 std::vector<char>* value); | 128 std::vector<char>* value); |
| 129 virtual void onSuccess(const IndexedDBKey& key, | 129 virtual void onSuccess(const IndexedDBKey& key, |
| 130 const IndexedDBKey& primaryKey, | 130 const IndexedDBKey& primaryKey, |
| 131 std::vector<char>* value); | 131 std::vector<char>* value); |
| 132 virtual void onSuccess(std::vector<char>* value); | 132 virtual void onSuccess(std::vector<char>* value); |
| 133 virtual void onSuccessWithPrefetch( | 133 virtual void onSuccessWithPrefetch( |
| 134 const std::vector<IndexedDBKey>& keys, | 134 const std::vector<IndexedDBKey>& keys, |
| 135 const std::vector<IndexedDBKey>& primaryKeys, | 135 const std::vector<IndexedDBKey>& primaryKeys, |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 virtual void onSuccess(); | 200 virtual void onSuccess(); |
| 201 virtual void onSuccess(const IndexedDBKey& value); | 201 virtual void onSuccess(const IndexedDBKey& value); |
| 202 | 202 |
| 203 private: | 203 private: |
| 204 DISALLOW_IMPLICIT_CONSTRUCTORS(IndexedDBCallbacks); | 204 DISALLOW_IMPLICIT_CONSTRUCTORS(IndexedDBCallbacks); |
| 205 }; | 205 }; |
| 206 | 206 |
| 207 } // namespace content | 207 } // namespace content |
| 208 | 208 |
| 209 #endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_CALLBACKS_H_ | 209 #endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_CALLBACKS_H_ |
| OLD | NEW |