| Index: content/browser/indexed_db/indexed_db_factory.h
|
| diff --git a/content/browser/indexed_db/indexed_db_factory.h b/content/browser/indexed_db/indexed_db_factory.h
|
| index 20f77a25d94a53af8224ba0509923b838e9ebcaf..6844571996e69183b6ead34880a05d87d403d4a1 100644
|
| --- a/content/browser/indexed_db/indexed_db_factory.h
|
| +++ b/content/browser/indexed_db/indexed_db_factory.h
|
| @@ -5,42 +5,70 @@
|
| #ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_FACTORY_H_
|
| #define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_FACTORY_H_
|
|
|
| +#include <map>
|
| +#include <set>
|
| +
|
| #include "base/basictypes.h"
|
| #include "base/files/file_path.h"
|
| #include "base/memory/ref_counted.h"
|
| +#include "base/memory/weak_ptr.h"
|
| #include "base/string16.h"
|
| +#include "content/browser/indexed_db/indexed_db_callbacks_wrapper.h"
|
| +#include "content/browser/indexed_db/indexed_db_database_callbacks_wrapper.h"
|
| +#include "content/browser/indexed_db/indexed_db_factory.h"
|
| +#include "content/common/content_export.h"
|
|
|
| namespace content {
|
|
|
| -class IndexedDBCallbacksWrapper;
|
| +class IndexedDBBackingStore;
|
| class IndexedDBDatabase;
|
| -class IndexedDBDatabaseCallbacksWrapper;
|
|
|
| -class IndexedDBFactory : public base::RefCounted<IndexedDBFactory> {
|
| +class CONTENT_EXPORT IndexedDBFactory
|
| + : NON_EXPORTED_BASE(public base::RefCounted<IndexedDBFactory>) {
|
| public:
|
| - static scoped_refptr<IndexedDBFactory> Create();
|
| + static scoped_refptr<IndexedDBFactory> Create() {
|
| + return make_scoped_refptr(new IndexedDBFactory());
|
| + }
|
|
|
| - virtual void GetDatabaseNames(
|
| - scoped_refptr<IndexedDBCallbacksWrapper> callbacks,
|
| - const string16& database_identifier,
|
| - const base::FilePath& data_directory) = 0;
|
| - virtual void Open(
|
| - const string16& name,
|
| - int64 version,
|
| - int64 transaction_id,
|
| - scoped_refptr<IndexedDBCallbacksWrapper> callbacks,
|
| - scoped_refptr<IndexedDBDatabaseCallbacksWrapper> database_callbacks,
|
| - const string16& database_identifier,
|
| - const base::FilePath& data_directory) = 0;
|
| - virtual void DeleteDatabase(
|
| - const string16& name,
|
| - scoped_refptr<IndexedDBCallbacksWrapper> callbacks,
|
| - const string16& database_identifier,
|
| - const base::FilePath& data_directory) = 0;
|
| + // Notifications from weak pointers.
|
| + void RemoveIDBDatabaseBackend(const string16& unique_identifier);
|
| +
|
| + void GetDatabaseNames(scoped_refptr<IndexedDBCallbacksWrapper> callbacks,
|
| + const string16& database_identifier,
|
| + const base::FilePath& data_directory);
|
| + void Open(const string16& name,
|
| + int64 version,
|
| + int64 transaction_id,
|
| + scoped_refptr<IndexedDBCallbacksWrapper> callbacks,
|
| + scoped_refptr<IndexedDBDatabaseCallbacksWrapper> database_callbacks,
|
| + const string16& database_identifier,
|
| + const base::FilePath& data_directory);
|
| +
|
| + void DeleteDatabase(const string16& name,
|
| + scoped_refptr<IndexedDBCallbacksWrapper> callbacks,
|
| + const string16& database_identifier,
|
| + const base::FilePath& data_directory);
|
|
|
| protected:
|
| - virtual ~IndexedDBFactory() {}
|
| friend class base::RefCounted<IndexedDBFactory>;
|
| +
|
| + IndexedDBFactory();
|
| + virtual ~IndexedDBFactory();
|
| +
|
| + scoped_refptr<IndexedDBBackingStore> OpenBackingStore(
|
| + const string16& database_identifier,
|
| + const base::FilePath& data_directory);
|
| +
|
| + private:
|
| + typedef std::map<string16, scoped_refptr<IndexedDBDatabase> >
|
| + IndexedDBDatabaseMap;
|
| + IndexedDBDatabaseMap database_backend_map_;
|
| +
|
| + typedef std::map<string16, base::WeakPtr<IndexedDBBackingStore> >
|
| + IndexedDBBackingStoreMap;
|
| + IndexedDBBackingStoreMap backing_store_map_;
|
| +
|
| + std::set<scoped_refptr<IndexedDBBackingStore> > session_only_backing_stores_;
|
| };
|
|
|
| } // namespace content
|
|
|