Modern IDB: Check in empty SQLite backing store implementation.
[WebKit-https.git] / Source / WebCore / Modules / indexeddb / server / SQLiteIDBBackingStore.cpp
1 /*
2  * Copyright (C) 2016 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 #include "config.h"
27 #include "SQLiteIDBBackingStore.h"
28
29 #if ENABLE(INDEXED_DATABASE)
30
31 #include "IDBDatabaseException.h"
32 #include "NotImplemented.h"
33
34 namespace WebCore {
35 namespace IDBServer {
36
37 SQLiteIDBBackingStore::SQLiteIDBBackingStore(const IDBDatabaseIdentifier& identifier)
38     : m_identifier(identifier)
39 {
40 }
41
42 SQLiteIDBBackingStore::~SQLiteIDBBackingStore()
43 {
44 }
45
46 const IDBDatabaseInfo& SQLiteIDBBackingStore::getOrEstablishDatabaseInfo()
47 {
48     if (!m_databaseInfo)
49         m_databaseInfo = std::make_unique<IDBDatabaseInfo>(m_identifier.databaseName(), 0);
50
51     return *m_databaseInfo;
52 }
53
54 IDBError SQLiteIDBBackingStore::beginTransaction(const IDBTransactionInfo&)
55 {
56     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
57 }
58
59 IDBError SQLiteIDBBackingStore::abortTransaction(const IDBResourceIdentifier&)
60 {
61     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
62 }
63
64 IDBError SQLiteIDBBackingStore::commitTransaction(const IDBResourceIdentifier&)
65 {
66     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
67 }
68
69 IDBError SQLiteIDBBackingStore::createObjectStore(const IDBResourceIdentifier&, const IDBObjectStoreInfo&)
70 {
71     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
72 }
73
74 IDBError SQLiteIDBBackingStore::deleteObjectStore(const IDBResourceIdentifier&, const String&)
75 {
76     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
77 }
78
79 IDBError SQLiteIDBBackingStore::clearObjectStore(const IDBResourceIdentifier&, uint64_t)
80 {
81     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
82 }
83
84 IDBError SQLiteIDBBackingStore::createIndex(const IDBResourceIdentifier&, const IDBIndexInfo&)
85 {
86     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
87 }
88
89 IDBError SQLiteIDBBackingStore::deleteIndex(const IDBResourceIdentifier&, uint64_t, const String&)
90 {
91     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
92 }
93
94 IDBError SQLiteIDBBackingStore::keyExistsInObjectStore(const IDBResourceIdentifier&, uint64_t, const IDBKeyData&, bool&)
95 {
96     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
97 }
98
99 IDBError SQLiteIDBBackingStore::deleteRange(const IDBResourceIdentifier&, uint64_t, const IDBKeyRangeData&)
100 {
101     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
102 }
103
104 IDBError SQLiteIDBBackingStore::addRecord(const IDBResourceIdentifier&, uint64_t, const IDBKeyData&, const ThreadSafeDataBuffer&)
105 {
106     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
107 }
108
109 IDBError SQLiteIDBBackingStore::getRecord(const IDBResourceIdentifier&, uint64_t, const IDBKeyRangeData&, ThreadSafeDataBuffer&)
110 {
111     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
112 }
113
114 IDBError SQLiteIDBBackingStore::getIndexRecord(const IDBResourceIdentifier&, uint64_t, uint64_t, IndexedDB::IndexRecordType, const IDBKeyRangeData&, IDBGetResult&)
115 {
116     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
117 }
118
119 IDBError SQLiteIDBBackingStore::getCount(const IDBResourceIdentifier&, uint64_t, uint64_t, const IDBKeyRangeData&, uint64_t&)
120 {
121     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
122 }
123
124 IDBError SQLiteIDBBackingStore::generateKeyNumber(const IDBResourceIdentifier&, uint64_t, uint64_t&)
125 {
126     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
127 }
128
129 IDBError SQLiteIDBBackingStore::revertGeneratedKeyNumber(const IDBResourceIdentifier&, uint64_t, uint64_t)
130 {
131     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
132 }
133
134 IDBError SQLiteIDBBackingStore::maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier&, uint64_t, double)
135 {
136     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
137 }
138
139 IDBError SQLiteIDBBackingStore::openCursor(const IDBResourceIdentifier&, const IDBCursorInfo&, IDBGetResult&)
140 {
141     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
142 }
143
144 IDBError SQLiteIDBBackingStore::iterateCursor(const IDBResourceIdentifier&, const IDBResourceIdentifier&, const IDBKeyData&, uint32_t, IDBGetResult&)
145 {
146     return { IDBDatabaseException::UnknownError, ASCIILiteral("Not implemented") };
147 }
148
149 void SQLiteIDBBackingStore::deleteBackingStore()
150 {
151     notImplemented();
152 }
153
154 } // namespace IDBServer
155 } // namespace WebCore
156
157 #endif // ENABLE(INDEXED_DATABASE)