blob: 78769db3092db9e22f08483049c7f1d9fee708e5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// Copyright 2014 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.
#include "content/browser/indexed_db/indexed_db_class_factory.h"
#include "content/browser/indexed_db/leveldb/leveldb_iterator_impl.h"
#include "content/browser/indexed_db/leveldb/leveldb_transaction.h"
namespace content {
static IndexedDBClassFactory::GetterCallback* s_factory_getter;
static ::base::LazyInstance<IndexedDBClassFactory>::Leaky s_factory =
LAZY_INSTANCE_INITIALIZER;
void IndexedDBClassFactory::SetIndexedDBClassFactoryGetter(GetterCallback* cb) {
s_factory_getter = cb;
}
IndexedDBClassFactory* IndexedDBClassFactory::Get() {
if (s_factory_getter)
return (*s_factory_getter)();
else
return s_factory.Pointer();
}
LevelDBTransaction* IndexedDBClassFactory::CreateLevelDBTransaction(
LevelDBDatabase* db) {
return new LevelDBTransaction(db);
}
content::LevelDBIteratorImpl* IndexedDBClassFactory::CreateIteratorImpl(
scoped_ptr<leveldb::Iterator> iterator) {
return new LevelDBIteratorImpl(iterator.Pass());
}
} // namespace content
|