2011-04-05 Hans Wennborg <hans@chromium.org>
[WebKit-https.git] / Source / WebCore / storage / IDBLevelDBBackingStore.cpp
1 /*
2  * Copyright (C) 2011 Google Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer.
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #include "config.h"
27 #include "IDBLevelDBBackingStore.h"
28
29 #if ENABLE(INDEXED_DATABASE)
30 #if ENABLE(LEVELDB)
31
32 #include "IDBFactoryBackendImpl.h"
33 #include <leveldb/db.h>
34
35 namespace WebCore {
36
37 IDBLevelDBBackingStore::IDBLevelDBBackingStore(String identifier, IDBFactoryBackendImpl* factory, leveldb::DB* db)
38     : m_identifier(identifier)
39     , m_factory(factory)
40     , m_db(db)
41 {
42     m_factory->addIDBBackingStore(identifier, this);
43 }
44
45 IDBLevelDBBackingStore::~IDBLevelDBBackingStore()
46 {
47     m_factory->removeIDBBackingStore(m_identifier);
48 }
49
50 PassRefPtr<IDBBackingStore> IDBLevelDBBackingStore::open(SecurityOrigin*, const String&, int64_t, const String&, IDBFactoryBackendImpl*)
51 {
52     ASSERT_NOT_REACHED(); // FIXME: Implement.
53     return adoptRef(new IDBLevelDBBackingStore("", 0, 0));
54 }
55
56 bool IDBLevelDBBackingStore::extractIDBDatabaseMetaData(const String&, String&, int64_t&)
57 {
58     ASSERT_NOT_REACHED(); // FIXME: Implement.
59     return false;
60 }
61
62
63 bool IDBLevelDBBackingStore::setIDBDatabaseMetaData(const String&, const String&, int64_t&, bool)
64 {
65     ASSERT_NOT_REACHED(); // FIXME: Implement.
66     return false;
67 }
68
69 void IDBLevelDBBackingStore::getObjectStores(int64_t, Vector<int64_t>&, Vector<String>&, Vector<String>&, Vector<bool>&)
70 {
71     ASSERT_NOT_REACHED(); // FIXME: Implement.
72 }
73
74 bool IDBLevelDBBackingStore::createObjectStore(int64_t, const String&, const String&, bool, int64_t&)
75 {
76     ASSERT_NOT_REACHED(); // FIXME: Implement.
77     return false;
78 }
79
80 void IDBLevelDBBackingStore::deleteObjectStore(int64_t, int64_t)
81 {
82     ASSERT_NOT_REACHED(); // FIXME: Implement.
83 }
84
85 String IDBLevelDBBackingStore::getObjectStoreRecord(int64_t, int64_t, const IDBKey&)
86 {
87     ASSERT_NOT_REACHED(); // FIXME: Implement.
88     return String();
89 }
90
91 bool IDBLevelDBBackingStore::putObjectStoreRecord(int64_t, int64_t, const IDBKey&, const String&, ObjectStoreRecordIdentifier*)
92 {
93     ASSERT_NOT_REACHED(); // FIXME: Implement.
94     return false;
95 }
96
97 void IDBLevelDBBackingStore::clearObjectStore(int64_t, int64_t)
98 {
99     ASSERT_NOT_REACHED(); // FIXME: Implement.
100 }
101
102 PassRefPtr<IDBBackingStore::ObjectStoreRecordIdentifier> IDBLevelDBBackingStore::createInvalidRecordIdentifier()
103 {
104     ASSERT_NOT_REACHED(); // FIXME: Implement.
105     return 0;
106 }
107
108 void IDBLevelDBBackingStore::deleteObjectStoreRecord(int64_t, int64_t, const ObjectStoreRecordIdentifier*)
109 {
110     ASSERT_NOT_REACHED(); // FIXME: Implement.
111 }
112
113 double IDBLevelDBBackingStore::nextAutoIncrementNumber(int64_t, int64_t)
114 {
115     ASSERT_NOT_REACHED(); // FIXME: Implement.
116     return 0;
117 }
118
119 bool IDBLevelDBBackingStore::keyExistsInObjectStore(int64_t, int64_t, const IDBKey&, ObjectStoreRecordIdentifier*)
120 {
121     ASSERT_NOT_REACHED(); // FIXME: Implement.
122     return false;
123 }
124
125 bool IDBLevelDBBackingStore::forEachObjectStoreRecord(int64_t, int64_t, ObjectStoreRecordCallback&)
126 {
127     ASSERT_NOT_REACHED(); // FIXME: Implement.
128     return false;
129 }
130
131 void IDBLevelDBBackingStore::getIndexes(int64_t, int64_t, Vector<int64_t>&, Vector<String>&, Vector<String>&, Vector<bool>&)
132 {
133     ASSERT_NOT_REACHED(); // FIXME: Implement.
134 }
135
136 bool IDBLevelDBBackingStore::createIndex(int64_t, int64_t, const String&, const String&, bool, int64_t&)
137 {
138     ASSERT_NOT_REACHED(); // FIXME: Implement.
139     return false;
140 }
141
142 void IDBLevelDBBackingStore::deleteIndex(int64_t, int64_t, int64_t)
143 {
144     ASSERT_NOT_REACHED(); // FIXME: Implement.
145 }
146
147 bool IDBLevelDBBackingStore::putIndexDataForRecord(int64_t, int64_t, int64_t, const IDBKey&, const ObjectStoreRecordIdentifier*)
148 {
149     ASSERT_NOT_REACHED(); // FIXME: Implement.
150     return false;
151 }
152
153 bool IDBLevelDBBackingStore::deleteIndexDataForRecord(int64_t, int64_t, int64_t, const ObjectStoreRecordIdentifier*)
154 {
155     ASSERT_NOT_REACHED(); // FIXME: Implement.
156     return false;
157 }
158
159 String IDBLevelDBBackingStore::getObjectViaIndex(int64_t, int64_t, int64_t, const IDBKey&)
160 {
161     ASSERT_NOT_REACHED(); // FIXME: Implement.
162     return String();
163 }
164
165 PassRefPtr<IDBKey> IDBLevelDBBackingStore::getPrimaryKeyViaIndex(int64_t, int64_t, int64_t, const IDBKey&)
166 {
167     ASSERT_NOT_REACHED(); // FIXME: Implement.
168     return 0;
169 }
170
171 bool IDBLevelDBBackingStore::keyExistsInIndex(int64_t, int64_t, int64_t, const IDBKey&)
172 {
173     ASSERT_NOT_REACHED(); // FIXME: Implement.
174     return false;
175 }
176
177 PassRefPtr<IDBBackingStore::Cursor> IDBLevelDBBackingStore::openObjectStoreCursor(int64_t, int64_t, const IDBKeyRange*, IDBCursor::Direction)
178 {
179     ASSERT_NOT_REACHED(); // FIXME: Implement.
180     return 0;
181 }
182
183 PassRefPtr<IDBBackingStore::Cursor> IDBLevelDBBackingStore::openIndexKeyCursor(int64_t, int64_t, int64_t, const IDBKeyRange*, IDBCursor::Direction)
184 {
185     ASSERT_NOT_REACHED(); // FIXME: Implement.
186     return 0;
187 }
188
189 PassRefPtr<IDBBackingStore::Cursor> IDBLevelDBBackingStore::openIndexCursor(int64_t, int64_t, int64_t, const IDBKeyRange*, IDBCursor::Direction)
190 {
191     ASSERT_NOT_REACHED(); // FIXME: Implement.
192     return 0;
193 }
194
195 PassRefPtr<IDBBackingStore::Transaction> IDBLevelDBBackingStore::createTransaction()
196 {
197     ASSERT_NOT_REACHED(); // FIXME: Implement.
198     return 0;
199 }
200
201 } // namespace WebCore
202
203 #endif // ENABLE(LEVELDB)
204 #endif // ENABLE(INDEXED_DATABASE)