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

Unified Diff: content/browser/indexed_db/indexed_db_callbacks_wrapper.h

Issue 15564008: Migrate the IndexedDB backend from Blink to Chromium (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update to ToT again Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/indexed_db/indexed_db_callbacks_wrapper.h
diff --git a/content/browser/indexed_db/indexed_db_callbacks_wrapper.h b/content/browser/indexed_db/indexed_db_callbacks_wrapper.h
new file mode 100644
index 0000000000000000000000000000000000000000..7fdd4d54e2a41229c64c56fea2fd6834226c5892
--- /dev/null
+++ b/content/browser/indexed_db/indexed_db_callbacks_wrapper.h
@@ -0,0 +1,95 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_CALLBACKS_WRAPPER_H_
+#define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_CALLBACKS_WRAPPER_H_
+
+#include <vector>
+
+#include "base/basictypes.h"
+#include "base/logging.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "content/browser/indexed_db/indexed_db_database.h"
+#include "content/browser/indexed_db/indexed_db_database_error.h"
+#include "content/common/indexed_db/indexed_db_key.h"
+#include "content/common/indexed_db/indexed_db_key_path.h"
+#include "third_party/WebKit/public/platform/WebIDBCallbacks.h"
+
+namespace WebKit {
+class WebIDBCallbacks;
+}
+
+namespace content {
+class IndexedDBCursor;
+class WebIDBDatabaseImpl;
+
+class IndexedDBCallbacksWrapper
+ : public base::RefCounted<IndexedDBCallbacksWrapper> {
+ public:
+ static scoped_refptr<IndexedDBCallbacksWrapper> Create(
+ WebKit::WebIDBCallbacks* callbacks) {
+ return make_scoped_refptr(new IndexedDBCallbacksWrapper(callbacks));
+ }
+
+ virtual void OnError(scoped_refptr<IndexedDBDatabaseError> error);
+ // From IDBFactory.webkitGetDatabaseNames()
+ virtual void OnSuccess(const std::vector<string16>& string);
+ // From IDBObjectStore/IDBIndex.openCursor(),
+ // IDBIndex.openKeyCursor()
+ virtual void OnSuccess(scoped_refptr<IndexedDBCursor> cursor,
+ const IndexedDBKey& key,
+ const IndexedDBKey& primary_key,
+ std::vector<char>* value);
+ // From IDBObjectStore.add()/put(), IDBIndex.getKey()
+ virtual void OnSuccess(const IndexedDBKey& key);
+ // From IDBObjectStore/IDBIndex.get()/count(), and various methods
+ // that yield null/undefined.
+ virtual void OnSuccess(std::vector<char>* value);
+ // From IDBObjectStore/IDBIndex.get() (with key injection)
+ virtual void OnSuccess(std::vector<char>* data,
+ const IndexedDBKey& key,
+ const IndexedDBKeyPath& key_path);
+ // From IDBObjectStore/IDBIndex.count()
+ virtual void OnSuccess(int64 value);
+
+ // From IDBFactor.deleteDatabase(),
+ // IDBObjectStore/IDBIndex.get(), IDBObjectStore.delete(),
+ // IDBObjectStore.clear()
+ virtual void OnSuccess();
+
+ // From IDBCursor.advance()/continue()
+ virtual void OnSuccess(const IndexedDBKey& key,
+ const IndexedDBKey& primary_key,
+ std::vector<char>* value);
+ // From IDBCursor.advance()/continue()
+ virtual void OnSuccessWithPrefetch(
+ const std::vector<IndexedDBKey>& keys,
+ const std::vector<IndexedDBKey>& primary_keys,
+ const std::vector<std::vector<char> >& values);
+ // From IDBFactory.open()/deleteDatabase()
+ virtual void OnBlocked(int64 /* existing_version */);
+ // From IDBFactory.open()
+ virtual void OnUpgradeNeeded(int64 /* old_version */,
+ scoped_refptr<IndexedDBDatabase> db,
+ const IndexedDBDatabaseMetadata& metadata);
+ virtual void OnSuccess(scoped_refptr<IndexedDBDatabase> db,
+ const IndexedDBDatabaseMetadata& metadata);
+ virtual void SetDatabaseCallbacks(
+ scoped_refptr<IndexedDBDatabaseCallbacksWrapper> database_callbacks);
+
+ private:
+ explicit IndexedDBCallbacksWrapper(WebKit::WebIDBCallbacks* callbacks);
+ virtual ~IndexedDBCallbacksWrapper();
+ friend class base::RefCounted<IndexedDBCallbacksWrapper>;
+ scoped_ptr<WebIDBDatabaseImpl> web_database_impl_;
+ scoped_ptr<WebKit::WebIDBCallbacks> callbacks_;
+ scoped_refptr<IndexedDBDatabaseCallbacksWrapper> database_callbacks_;
+ bool did_complete_;
+ bool did_create_proxy_;
+};
+
+} // namespace content
+
+#endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_CALLBACKS_WRAPPER_H_

Powered by Google App Engine
This is Rietveld 408576698