Make IDBDatabaseBackendLevelDB.cpp be cross platform
[WebKit-https.git] / Source / WebCore / Modules / indexeddb / leveldb / IDBTransactionBackendLevelDBOperations.h
1 /*
2  * Copyright (C) 2013 Apple 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  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #ifndef IDBTransactionBackendLevelDBOperations_h
27 #define IDBTransactionBackendLevelDBOperations_h
28
29 #include "IDBTransactionBackendLevelDB.h"
30
31 #if ENABLE(INDEXED_DATABASE) && USE(LEVELDB)
32
33 namespace WebCore {
34
35 class CreateObjectStoreOperation : public IDBTransactionBackendLevelDB::Operation {
36 public:
37     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, const IDBObjectStoreMetadata& objectStoreMetadata)
38     {
39         return adoptPtr(new CreateObjectStoreOperation(transaction, backingStore, objectStoreMetadata));
40     }
41     virtual void perform() OVERRIDE FINAL;
42 private:
43     CreateObjectStoreOperation(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, const IDBObjectStoreMetadata& objectStoreMetadata)
44         : m_transaction(transaction)
45         , m_backingStore(backingStore)
46         , m_objectStoreMetadata(objectStoreMetadata)
47     {
48     }
49     
50     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
51     const RefPtr<IDBBackingStoreInterface> m_backingStore;
52     const IDBObjectStoreMetadata m_objectStoreMetadata;
53 };
54
55 class DeleteObjectStoreOperation : public IDBTransactionBackendLevelDB::Operation {
56 public:
57     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, const IDBObjectStoreMetadata& objectStoreMetadata)
58     {
59         return adoptPtr(new DeleteObjectStoreOperation(transaction, backingStore, objectStoreMetadata));
60     }
61     virtual void perform() OVERRIDE FINAL;
62 private:
63     DeleteObjectStoreOperation(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, const IDBObjectStoreMetadata& objectStoreMetadata)
64         : m_transaction(transaction)
65         , m_backingStore(backingStore)
66         , m_objectStoreMetadata(objectStoreMetadata)
67     {
68     }
69
70     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
71     const RefPtr<IDBBackingStoreInterface> m_backingStore;
72     const IDBObjectStoreMetadata m_objectStoreMetadata;
73 };
74
75 class IDBDatabaseBackendImpl::VersionChangeOperation : public IDBTransactionBackendLevelDB::Operation {
76 public:
77     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, int64_t transactionId, int64_t version, PassRefPtr<IDBCallbacks> callbacks, PassRefPtr<IDBDatabaseCallbacks> databaseCallbacks)
78     {
79         return adoptPtr(new VersionChangeOperation(transaction, transactionId, version, callbacks, databaseCallbacks));
80     }
81     virtual void perform() OVERRIDE FINAL;
82 private:
83     VersionChangeOperation(IDBTransactionBackendLevelDB* transaction, int64_t transactionId, int64_t version, PassRefPtr<IDBCallbacks> callbacks, PassRefPtr<IDBDatabaseCallbacks> databaseCallbacks)
84         : m_transaction(transaction)
85         , m_transactionId(transactionId)
86         , m_version(version)
87         , m_callbacks(callbacks)
88         , m_databaseCallbacks(databaseCallbacks)
89     {
90     }
91
92     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
93     int64_t m_transactionId;
94     int64_t m_version;
95     RefPtr<IDBCallbacks> m_callbacks;
96     RefPtr<IDBDatabaseCallbacks> m_databaseCallbacks;
97 };
98
99 class CreateObjectStoreAbortOperation : public IDBTransactionBackendLevelDB::Operation {
100 public:
101     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, int64_t objectStoreId)
102     {
103         return adoptPtr(new CreateObjectStoreAbortOperation(transaction, objectStoreId));
104     }
105     virtual void perform() OVERRIDE FINAL;
106 private:
107     CreateObjectStoreAbortOperation(IDBTransactionBackendLevelDB* transaction, int64_t objectStoreId)
108         : m_transaction(transaction)
109         , m_objectStoreId(objectStoreId)
110     {
111     }
112
113     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
114     const int64_t m_objectStoreId;
115 };
116
117 class DeleteObjectStoreAbortOperation : public IDBTransactionBackendLevelDB::Operation {
118 public:
119     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, const IDBObjectStoreMetadata& objectStore)
120     {
121         return adoptPtr(new DeleteObjectStoreAbortOperation(transaction, objectStore));
122     }
123     virtual void perform() OVERRIDE FINAL;
124 private:
125     DeleteObjectStoreAbortOperation(IDBTransactionBackendLevelDB* transaction, const IDBObjectStoreMetadata& objectStoreMetadata)
126         : m_transaction(transaction)
127         , m_objectStoreMetadata(objectStoreMetadata)
128     {
129     }
130
131     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
132     IDBObjectStoreMetadata m_objectStoreMetadata;
133 };
134
135 class IDBDatabaseBackendImpl::VersionChangeAbortOperation : public IDBTransactionBackendLevelDB::Operation {
136 public:
137     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, const String& previousVersion, int64_t previousIntVersion)
138     {
139         return adoptPtr(new VersionChangeAbortOperation(transaction, previousVersion, previousIntVersion));
140     }
141     virtual void perform() OVERRIDE FINAL;
142 private:
143     VersionChangeAbortOperation(IDBTransactionBackendLevelDB* transaction, const String& previousVersion, int64_t previousIntVersion)
144         : m_transaction(transaction)
145         , m_previousVersion(previousVersion)
146         , m_previousIntVersion(previousIntVersion)
147     {
148     }
149
150     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
151     String m_previousVersion;
152     int64_t m_previousIntVersion;
153 };
154
155 class CreateIndexOperation : public IDBTransactionBackendLevelDB::Operation {
156 public:
157     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t objectStoreId, const IDBIndexMetadata& indexMetadata)
158     {
159         return adoptPtr(new CreateIndexOperation(transaction, backingStore, objectStoreId, indexMetadata));
160     }
161     virtual void perform() OVERRIDE FINAL;
162 private:
163     CreateIndexOperation(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t objectStoreId, const IDBIndexMetadata& indexMetadata)
164         : m_transaction(transaction)
165         , m_backingStore(backingStore)
166         , m_objectStoreId(objectStoreId)
167         , m_indexMetadata(indexMetadata)
168     {
169     }
170
171     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
172     const RefPtr<IDBBackingStoreInterface> m_backingStore;
173     const int64_t m_objectStoreId;
174     const IDBIndexMetadata m_indexMetadata;
175 };
176
177 class CreateIndexAbortOperation : public IDBTransactionBackendLevelDB::Operation {
178 public:
179     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, int64_t objectStoreId, int64_t indexId)
180     {
181         return adoptPtr(new CreateIndexAbortOperation(transaction, objectStoreId, indexId));
182     }
183     virtual void perform() OVERRIDE FINAL;
184 private:
185     CreateIndexAbortOperation(IDBTransactionBackendLevelDB* transaction, int64_t objectStoreId, int64_t indexId)
186         : m_transaction(transaction)
187         , m_objectStoreId(objectStoreId)
188         , m_indexId(indexId)
189     {
190     }
191
192     const RefPtr<IDBTransactionBackendLevelDB> m_transaction;
193     const int64_t m_objectStoreId;
194     const int64_t m_indexId;
195 };
196
197 class DeleteIndexOperation : public IDBTransactionBackendLevelDB::Operation {
198 public:
199     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t objectStoreId, const IDBIndexMetadata& indexMetadata)
200     {
201         return adoptPtr(new DeleteIndexOperation(transaction, backingStore, objectStoreId, indexMetadata));
202     }
203     virtual void perform() OVERRIDE FINAL;
204 private:
205     DeleteIndexOperation(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t objectStoreId, const IDBIndexMetadata& indexMetadata)
206         : m_transaction(transaction)
207         , m_backingStore(backingStore)
208         , m_objectStoreId(objectStoreId)
209         , m_indexMetadata(indexMetadata)
210     {
211     }
212
213     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
214     const RefPtr<IDBBackingStoreInterface> m_backingStore;
215     const int64_t m_objectStoreId;
216     const IDBIndexMetadata m_indexMetadata;
217 };
218
219 class DeleteIndexAbortOperation : public IDBTransactionBackendLevelDB::Operation {
220 public:
221     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, int64_t objectStoreId, const IDBIndexMetadata& indexMetadata)
222     {
223         return adoptPtr(new DeleteIndexAbortOperation(transaction, objectStoreId, indexMetadata));
224     }
225     virtual void perform() OVERRIDE FINAL;
226 private:
227     DeleteIndexAbortOperation(IDBTransactionBackendLevelDB* transaction, int64_t objectStoreId, const IDBIndexMetadata& indexMetadata)
228         : m_transaction(transaction)
229         , m_objectStoreId(objectStoreId)
230         , m_indexMetadata(indexMetadata)
231     {
232     }
233
234     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
235     const int64_t m_objectStoreId;
236     const IDBIndexMetadata m_indexMetadata;
237 };
238
239 class GetOperation : public IDBTransactionBackendLevelDB::Operation {
240 public:
241     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, const IDBDatabaseMetadata& metadata, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorType cursorType, PassRefPtr<IDBCallbacks> callbacks)
242     {
243         return adoptPtr(new GetOperation(transaction, backingStore, metadata, objectStoreId, indexId, keyRange, cursorType, callbacks));
244     }
245     virtual void perform() OVERRIDE FINAL;
246 private:
247     GetOperation(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, const IDBDatabaseMetadata& metadata, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorType cursorType, PassRefPtr<IDBCallbacks> callbacks)
248         : m_transaction(transaction)
249         , m_backingStore(backingStore)
250         , m_databaseId(metadata.id)
251         , m_objectStoreId(objectStoreId)
252         , m_indexId(indexId)
253         , m_keyPath(metadata.objectStores.get(objectStoreId).keyPath)
254         , m_autoIncrement(metadata.objectStores.get(objectStoreId).autoIncrement)
255         , m_keyRange(keyRange)
256         , m_cursorType(cursorType)
257         , m_callbacks(callbacks)
258     {
259         ASSERT(metadata.objectStores.contains(objectStoreId));
260         ASSERT(metadata.objectStores.get(objectStoreId).id == objectStoreId);
261     }
262
263     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
264     const RefPtr<IDBBackingStoreInterface> m_backingStore;
265     const int64_t m_databaseId;
266     const int64_t m_objectStoreId;
267     const int64_t m_indexId;
268     const IDBKeyPath m_keyPath;
269     const bool m_autoIncrement;
270     const RefPtr<IDBKeyRange> m_keyRange;
271     const IndexedDB::CursorType m_cursorType;
272     const RefPtr<IDBCallbacks> m_callbacks;
273 };
274
275 class PutOperation : public IDBTransactionBackendLevelDB::Operation {
276 public:
277     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t databaseId, const IDBObjectStoreMetadata& objectStore, PassRefPtr<SharedBuffer> value, PassRefPtr<IDBKey> key, IDBDatabaseBackendInterface::PutMode putMode, PassRefPtr<IDBCallbacks> callbacks, const Vector<int64_t>& indexIds, const Vector<IndexKeys>& indexKeys)
278     {
279         return adoptPtr(new PutOperation(transaction, backingStore, databaseId, objectStore, value, key, putMode, callbacks, indexIds, indexKeys));
280     }
281     virtual void perform() OVERRIDE FINAL;
282 private:
283     PutOperation(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t databaseId, const IDBObjectStoreMetadata& objectStore, PassRefPtr<SharedBuffer>& value, PassRefPtr<IDBKey> key, IDBDatabaseBackendInterface::PutMode putMode, PassRefPtr<IDBCallbacks> callbacks, const Vector<int64_t>& indexIds, const Vector<IndexKeys>& indexKeys)
284         : m_transaction(transaction)
285         , m_backingStore(backingStore)
286         , m_databaseId(databaseId)
287         , m_objectStore(objectStore)
288         , m_value(value)
289         , m_key(key)
290         , m_putMode(putMode)
291         , m_callbacks(callbacks)
292         , m_indexIds(indexIds)
293         , m_indexKeys(indexKeys)
294     {
295     }
296
297     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
298     const RefPtr<IDBBackingStoreInterface> m_backingStore;
299     const int64_t m_databaseId;
300     const IDBObjectStoreMetadata m_objectStore;
301     const RefPtr<SharedBuffer> m_value;
302     const RefPtr<IDBKey> m_key;
303     const IDBDatabaseBackendInterface::PutMode m_putMode;
304     const RefPtr<IDBCallbacks> m_callbacks;
305     const Vector<int64_t> m_indexIds;
306     const Vector<IndexKeys> m_indexKeys;
307 };
308
309 class SetIndexesReadyOperation : public IDBTransactionBackendLevelDB::Operation {
310 public:
311     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, size_t indexCount)
312     {
313         return adoptPtr(new SetIndexesReadyOperation(transaction, indexCount));
314     }
315     virtual void perform() OVERRIDE FINAL;
316 private:
317     SetIndexesReadyOperation(IDBTransactionBackendLevelDB* transaction, size_t indexCount)
318         : m_transaction(transaction)
319         , m_indexCount(indexCount)
320     {
321     }
322
323     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
324     const size_t m_indexCount;
325 };
326
327 class OpenCursorOperation : public IDBTransactionBackendLevelDB::Operation {
328 public:
329     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorDirection direction, IndexedDB::CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, PassRefPtr<IDBCallbacks> callbacks)
330     {
331         return adoptPtr(new OpenCursorOperation(transaction, backingStore, databaseId, objectStoreId, indexId, keyRange, direction, cursorType, taskType, callbacks));
332     }
333     virtual void perform() OVERRIDE FINAL;
334 private:
335     OpenCursorOperation(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorDirection direction, IndexedDB::CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, PassRefPtr<IDBCallbacks> callbacks)
336         : m_transaction(transaction)
337         , m_backingStore(backingStore)
338         , m_databaseId(databaseId)
339         , m_objectStoreId(objectStoreId)
340         , m_indexId(indexId)
341         , m_keyRange(keyRange)
342         , m_direction(direction)
343         , m_cursorType(cursorType)
344         , m_taskType(taskType)
345         , m_callbacks(callbacks)
346     {
347     }
348
349     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
350     const RefPtr<IDBBackingStoreInterface> m_backingStore;
351     const int64_t m_databaseId;
352     const int64_t m_objectStoreId;
353     const int64_t m_indexId;
354     const PassRefPtr<IDBKeyRange> m_keyRange;
355     const IndexedDB::CursorDirection m_direction;
356     const IndexedDB::CursorType m_cursorType;
357     const IDBDatabaseBackendInterface::TaskType m_taskType;
358     const RefPtr<IDBCallbacks> m_callbacks;
359 };
360
361 class CountOperation : public IDBTransactionBackendLevelDB::Operation {
362 public:
363     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
364     {
365         return adoptPtr(new CountOperation(transaction, backingStore, databaseId, objectStoreId, indexId, keyRange, callbacks));
366     }
367     virtual void perform() OVERRIDE FINAL;
368 private:
369     CountOperation(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
370         : m_transaction(transaction)
371         , m_backingStore(backingStore)
372         , m_databaseId(databaseId)
373         , m_objectStoreId(objectStoreId)
374         , m_indexId(indexId)
375         , m_keyRange(keyRange)
376         , m_callbacks(callbacks)
377     {
378     }
379
380     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
381     const RefPtr<IDBBackingStoreInterface> m_backingStore;
382     const int64_t m_databaseId;
383     const int64_t m_objectStoreId;
384     const int64_t m_indexId;
385     const RefPtr<IDBKeyRange> m_keyRange;
386     const RefPtr<IDBCallbacks> m_callbacks;
387 };
388
389 class DeleteRangeOperation : public IDBTransactionBackendLevelDB::Operation {
390 public:
391     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t databaseId, int64_t objectStoreId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
392     {
393         return adoptPtr(new DeleteRangeOperation(transaction, backingStore, databaseId, objectStoreId, keyRange, callbacks));
394     }
395     virtual void perform() OVERRIDE FINAL;
396 private:
397     DeleteRangeOperation(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t databaseId, int64_t objectStoreId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
398         : m_transaction(transaction)
399         , m_backingStore(backingStore)
400         , m_databaseId(databaseId)
401         , m_objectStoreId(objectStoreId)
402         , m_keyRange(keyRange)
403         , m_callbacks(callbacks)
404     {
405     }
406
407     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
408     const RefPtr<IDBBackingStoreInterface> m_backingStore;
409     const int64_t m_databaseId;
410     const int64_t m_objectStoreId;
411     const RefPtr<IDBKeyRange> m_keyRange;
412     const RefPtr<IDBCallbacks> m_callbacks;
413 };
414
415 class ClearOperation : public IDBTransactionBackendLevelDB::Operation {
416 public:
417     static PassOwnPtr<IDBTransactionBackendLevelDB::Operation> create(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t databaseId, int64_t objectStoreId, PassRefPtr<IDBCallbacks> callbacks)
418     {
419         return adoptPtr(new ClearOperation(transaction, backingStore, databaseId, objectStoreId, callbacks));
420     }
421     virtual void perform() OVERRIDE FINAL;
422 private:
423     ClearOperation(IDBTransactionBackendLevelDB* transaction, IDBBackingStoreInterface* backingStore, int64_t databaseId, int64_t objectStoreId, PassRefPtr<IDBCallbacks> callbacks)
424         : m_transaction(transaction)
425         , m_backingStore(backingStore)
426         , m_databaseId(databaseId)
427         , m_objectStoreId(objectStoreId)
428         , m_callbacks(callbacks)
429     {
430     }
431
432     RefPtr<IDBTransactionBackendLevelDB> m_transaction;
433     const RefPtr<IDBBackingStoreInterface> m_backingStore;
434     const int64_t m_databaseId;
435     const int64_t m_objectStoreId;
436     const RefPtr<IDBCallbacks> m_callbacks;
437 };
438
439 } // namespace WebCore
440
441 #endif // ENABLE(INDEXED_DATABASE) && USE(LEVELDB)
442 #endif // IDBTransactionBackendLevelDBOperations_h