| 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..aa3b82ecdbb36679e06454c650c01821ce9084e2
|
| --- /dev/null
|
| +++ b/content/browser/indexed_db/indexed_db_callbacks_wrapper.h
|
| @@ -0,0 +1,94 @@
|
| +// 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/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/Source/Platform/chromium/public/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>);
|
| + // From IndexedDBFactory.WebkitGetDatabaseNames()
|
| + virtual void OnSuccess(const std::vector<string16>&);
|
| + // From IndexedDBObjectStore/IndexedDBIndex.OpenCursor(),
|
| + // IndexedDBIndex.OpenKeyCursor()
|
| + virtual void OnSuccess(scoped_refptr<IndexedDBCursor>,
|
| + const IndexedDBKey&,
|
| + const IndexedDBKey& primary_key,
|
| + std::vector<char>*);
|
| + // From IndexedDBObjectStore.Add()/Put(), IndexedDBIndex.GetKey()
|
| + virtual void OnSuccess(const IndexedDBKey& key);
|
| + // From IndexedDBObjectStore/IndexedDBIndex.get()/Count(), and various methods
|
| + // that yield null/undefined.
|
| + virtual void OnSuccess(std::vector<char>*);
|
| + // From IndexedDBObjectStore/IndexedDBIndex.get() (with key injection)
|
| + virtual void OnSuccess(std::vector<char>*,
|
| + const IndexedDBKey& key,
|
| + const IndexedDBKeyPath&);
|
| + // From IndexedDBObjectStore/IndexedDBIndex.Count()
|
| + virtual void OnSuccess(int64_t value);
|
| +
|
| + // From IndexedDBFactor.DeleteDatabase(),
|
| + // IndexedDBObjectStore/IndexedDBIndex.get(), IndexedDBObjectStore.Delete(),
|
| + // IndexedDBObjectStore.Clear()
|
| + virtual void OnSuccess();
|
| +
|
| + // From IndexedDBCursor.Advance()/Continue()
|
| + virtual void OnSuccess(const IndexedDBKey&,
|
| + const IndexedDBKey& primary_key,
|
| + std::vector<char>*);
|
| + // From IndexedDBCursor.Advance()/Continue()
|
| + virtual void OnSuccessWithPrefetch(
|
| + const std::vector<IndexedDBKey>& keys,
|
| + const std::vector<IndexedDBKey>& primary_keys,
|
| + const std::vector<std::vector<char> >& values);
|
| + // From IndexedDBFactory.Open()/DeleteDatabase()
|
| + virtual void OnBlocked(int64_t /* existing_version */);
|
| + // From IndexedDBFactory.Open()
|
| + virtual void OnUpgradeNeeded(int64_t /* old_version */,
|
| + scoped_refptr<IndexedDBDatabase>,
|
| + const IndexedDBDatabaseMetadata&);
|
| + virtual void OnSuccess(scoped_refptr<IndexedDBDatabase>,
|
| + const IndexedDBDatabaseMetadata&);
|
| + virtual void SetDatabaseCallbacks(
|
| + scoped_refptr<IndexedDBDatabaseCallbacksWrapper> database_callbacks);
|
| +
|
| + private:
|
| + explicit IndexedDBCallbacksWrapper(WebKit::WebIDBCallbacks*);
|
| + 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_
|
|
|