OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_LEVELDB_CODING_H_ | 5 #ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_LEVELDB_CODING_H_ |
6 #define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_LEVELDB_CODING_H_ | 6 #define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_LEVELDB_CODING_H_ |
7 | 7 |
| 8 #include <stddef.h> |
| 9 #include <stdint.h> |
| 10 |
8 #include <string> | 11 #include <string> |
9 #include <utility> | 12 #include <utility> |
10 #include <vector> | 13 #include <vector> |
11 | 14 |
12 #include "base/basictypes.h" | |
13 #include "base/logging.h" | 15 #include "base/logging.h" |
| 16 #include "base/macros.h" |
14 #include "base/memory/ref_counted.h" | 17 #include "base/memory/ref_counted.h" |
15 #include "base/memory/scoped_ptr.h" | 18 #include "base/memory/scoped_ptr.h" |
16 #include "base/strings/string16.h" | 19 #include "base/strings/string16.h" |
17 #include "base/strings/string_piece.h" | 20 #include "base/strings/string_piece.h" |
18 #include "content/common/indexed_db/indexed_db_key.h" | 21 #include "content/common/indexed_db/indexed_db_key.h" |
19 #include "content/common/indexed_db/indexed_db_key_path.h" | 22 #include "content/common/indexed_db/indexed_db_key_path.h" |
20 | 23 |
21 namespace content { | 24 namespace content { |
22 | 25 |
23 CONTENT_EXPORT extern const unsigned char kMinimumIndexId; | 26 CONTENT_EXPORT extern const unsigned char kMinimumIndexId; |
24 | 27 |
25 CONTENT_EXPORT std::string MaxIDBKey(); | 28 CONTENT_EXPORT std::string MaxIDBKey(); |
26 CONTENT_EXPORT std::string MinIDBKey(); | 29 CONTENT_EXPORT std::string MinIDBKey(); |
27 | 30 |
28 // DatabaseId, BlobKey | 31 // DatabaseId, BlobKey |
29 typedef std::pair<int64_t, int64_t> BlobJournalEntryType; | 32 typedef std::pair<int64_t, int64_t> BlobJournalEntryType; |
30 typedef std::vector<BlobJournalEntryType> BlobJournalType; | 33 typedef std::vector<BlobJournalEntryType> BlobJournalType; |
31 | 34 |
32 CONTENT_EXPORT void EncodeByte(unsigned char value, std::string* into); | 35 CONTENT_EXPORT void EncodeByte(unsigned char value, std::string* into); |
33 CONTENT_EXPORT void EncodeBool(bool value, std::string* into); | 36 CONTENT_EXPORT void EncodeBool(bool value, std::string* into); |
34 CONTENT_EXPORT void EncodeInt(int64 value, std::string* into); | 37 CONTENT_EXPORT void EncodeInt(int64_t value, std::string* into); |
35 CONTENT_EXPORT void EncodeVarInt(int64 value, std::string* into); | 38 CONTENT_EXPORT void EncodeVarInt(int64_t value, std::string* into); |
36 CONTENT_EXPORT void EncodeString(const base::string16& value, | 39 CONTENT_EXPORT void EncodeString(const base::string16& value, |
37 std::string* into); | 40 std::string* into); |
38 CONTENT_EXPORT void EncodeStringWithLength(const base::string16& value, | 41 CONTENT_EXPORT void EncodeStringWithLength(const base::string16& value, |
39 std::string* into); | 42 std::string* into); |
40 CONTENT_EXPORT void EncodeBinary(const std::string& value, std::string* into); | 43 CONTENT_EXPORT void EncodeBinary(const std::string& value, std::string* into); |
41 CONTENT_EXPORT void EncodeDouble(double value, std::string* into); | 44 CONTENT_EXPORT void EncodeDouble(double value, std::string* into); |
42 CONTENT_EXPORT void EncodeIDBKey(const IndexedDBKey& value, std::string* into); | 45 CONTENT_EXPORT void EncodeIDBKey(const IndexedDBKey& value, std::string* into); |
43 CONTENT_EXPORT void EncodeIDBKeyPath(const IndexedDBKeyPath& value, | 46 CONTENT_EXPORT void EncodeIDBKeyPath(const IndexedDBKeyPath& value, |
44 std::string* into); | 47 std::string* into); |
45 CONTENT_EXPORT void EncodeBlobJournal(const BlobJournalType& journal, | 48 CONTENT_EXPORT void EncodeBlobJournal(const BlobJournalType& journal, |
46 std::string* into); | 49 std::string* into); |
47 | 50 |
48 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeByte(base::StringPiece* slice, | 51 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeByte(base::StringPiece* slice, |
49 unsigned char* value); | 52 unsigned char* value); |
50 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeBool(base::StringPiece* slice, | 53 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeBool(base::StringPiece* slice, |
51 bool* value); | 54 bool* value); |
52 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeInt(base::StringPiece* slice, | 55 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeInt(base::StringPiece* slice, |
53 int64* value); | 56 int64_t* value); |
54 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeVarInt(base::StringPiece* slice, | 57 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeVarInt(base::StringPiece* slice, |
55 int64* value); | 58 int64_t* value); |
56 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeString(base::StringPiece* slice, | 59 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeString(base::StringPiece* slice, |
57 base::string16* value); | 60 base::string16* value); |
58 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeStringWithLength( | 61 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeStringWithLength( |
59 base::StringPiece* slice, | 62 base::StringPiece* slice, |
60 base::string16* value); | 63 base::string16* value); |
61 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeBinary(base::StringPiece* slice, | 64 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeBinary(base::StringPiece* slice, |
62 std::string* value); | 65 std::string* value); |
63 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeDouble(base::StringPiece* slice, | 66 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeDouble(base::StringPiece* slice, |
64 double* value); | 67 double* value); |
65 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeIDBKey( | 68 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeIDBKey( |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 static const size_t kMaxObjectStoreIdSizeBytes = | 114 static const size_t kMaxObjectStoreIdSizeBytes = |
112 1ULL << kMaxObjectStoreIdSizeBits; // 8 | 115 1ULL << kMaxObjectStoreIdSizeBits; // 8 |
113 static const size_t kMaxIndexIdSizeBytes = 1ULL << kMaxIndexIdSizeBits; // 4 | 116 static const size_t kMaxIndexIdSizeBytes = 1ULL << kMaxIndexIdSizeBits; // 4 |
114 | 117 |
115 static const size_t kMaxDatabaseIdBits = | 118 static const size_t kMaxDatabaseIdBits = |
116 kMaxDatabaseIdSizeBytes * 8 - 1; // 63 | 119 kMaxDatabaseIdSizeBytes * 8 - 1; // 63 |
117 static const size_t kMaxObjectStoreIdBits = | 120 static const size_t kMaxObjectStoreIdBits = |
118 kMaxObjectStoreIdSizeBytes * 8 - 1; // 63 | 121 kMaxObjectStoreIdSizeBytes * 8 - 1; // 63 |
119 static const size_t kMaxIndexIdBits = kMaxIndexIdSizeBytes * 8 - 1; // 31 | 122 static const size_t kMaxIndexIdBits = kMaxIndexIdSizeBytes * 8 - 1; // 31 |
120 | 123 |
121 static const int64 kMaxDatabaseId = | 124 static const int64_t kMaxDatabaseId = |
122 (1ULL << kMaxDatabaseIdBits) - 1; // max signed int64 | 125 (1ULL << kMaxDatabaseIdBits) - 1; // max signed int64_t |
123 static const int64 kMaxObjectStoreId = | 126 static const int64_t kMaxObjectStoreId = |
124 (1ULL << kMaxObjectStoreIdBits) - 1; // max signed int64 | 127 (1ULL << kMaxObjectStoreIdBits) - 1; // max signed int64_t |
125 static const int64 kMaxIndexId = | 128 static const int64_t kMaxIndexId = |
126 (1ULL << kMaxIndexIdBits) - 1; // max signed int32 | 129 (1ULL << kMaxIndexIdBits) - 1; // max signed int32_t |
127 | 130 |
128 static const int64 kInvalidId = -1; | 131 static const int64_t kInvalidId = -1; |
129 | 132 |
130 KeyPrefix(); | 133 KeyPrefix(); |
131 explicit KeyPrefix(int64 database_id); | 134 explicit KeyPrefix(int64_t database_id); |
132 KeyPrefix(int64 database_id, int64 object_store_id); | 135 KeyPrefix(int64_t database_id, int64_t object_store_id); |
133 KeyPrefix(int64 database_id, int64 object_store_id, int64 index_id); | 136 KeyPrefix(int64_t database_id, int64_t object_store_id, int64_t index_id); |
134 static KeyPrefix CreateWithSpecialIndex(int64 database_id, | 137 static KeyPrefix CreateWithSpecialIndex(int64_t database_id, |
135 int64 object_store_id, | 138 int64_t object_store_id, |
136 int64 index_id); | 139 int64_t index_id); |
137 | 140 |
138 static bool Decode(base::StringPiece* slice, KeyPrefix* result); | 141 static bool Decode(base::StringPiece* slice, KeyPrefix* result); |
139 std::string Encode() const; | 142 std::string Encode() const; |
140 static std::string EncodeEmpty(); | 143 static std::string EncodeEmpty(); |
141 int Compare(const KeyPrefix& other) const; | 144 int Compare(const KeyPrefix& other) const; |
142 | 145 |
143 CONTENT_EXPORT static bool IsValidDatabaseId(int64 database_id); | 146 CONTENT_EXPORT static bool IsValidDatabaseId(int64_t database_id); |
144 static bool IsValidObjectStoreId(int64 index_id); | 147 static bool IsValidObjectStoreId(int64_t index_id); |
145 static bool IsValidIndexId(int64 index_id); | 148 static bool IsValidIndexId(int64_t index_id); |
146 static bool ValidIds(int64 database_id, | 149 static bool ValidIds(int64_t database_id, |
147 int64 object_store_id, | 150 int64_t object_store_id, |
148 int64 index_id) { | 151 int64_t index_id) { |
149 return IsValidDatabaseId(database_id) && | 152 return IsValidDatabaseId(database_id) && |
150 IsValidObjectStoreId(object_store_id) && IsValidIndexId(index_id); | 153 IsValidObjectStoreId(object_store_id) && IsValidIndexId(index_id); |
151 } | 154 } |
152 static bool ValidIds(int64 database_id, int64 object_store_id) { | 155 static bool ValidIds(int64_t database_id, int64_t object_store_id) { |
153 return IsValidDatabaseId(database_id) && | 156 return IsValidDatabaseId(database_id) && |
154 IsValidObjectStoreId(object_store_id); | 157 IsValidObjectStoreId(object_store_id); |
155 } | 158 } |
156 | 159 |
157 Type type() const; | 160 Type type() const; |
158 | 161 |
159 int64 database_id_; | 162 int64_t database_id_; |
160 int64 object_store_id_; | 163 int64_t object_store_id_; |
161 int64 index_id_; | 164 int64_t index_id_; |
162 | 165 |
163 private: | 166 private: |
164 // Special constructor for CreateWithSpecialIndex() | 167 // Special constructor for CreateWithSpecialIndex() |
165 KeyPrefix(enum Type, | 168 KeyPrefix(enum Type, |
166 int64 database_id, | 169 int64_t database_id, |
167 int64 object_store_id, | 170 int64_t object_store_id, |
168 int64 index_id); | 171 int64_t index_id); |
169 | 172 |
170 static std::string EncodeInternal(int64 database_id, | 173 static std::string EncodeInternal(int64_t database_id, |
171 int64 object_store_id, | 174 int64_t object_store_id, |
172 int64 index_id); | 175 int64_t index_id); |
173 }; | 176 }; |
174 | 177 |
175 class SchemaVersionKey { | 178 class SchemaVersionKey { |
176 public: | 179 public: |
177 CONTENT_EXPORT static std::string Encode(); | 180 CONTENT_EXPORT static std::string Encode(); |
178 }; | 181 }; |
179 | 182 |
180 class MaxDatabaseIdKey { | 183 class MaxDatabaseIdKey { |
181 public: | 184 public: |
182 CONTENT_EXPORT static std::string Encode(); | 185 CONTENT_EXPORT static std::string Encode(); |
(...skipping 11 matching lines...) Expand all Loading... |
194 | 197 |
195 class LiveBlobJournalKey { | 198 class LiveBlobJournalKey { |
196 public: | 199 public: |
197 static std::string Encode(); | 200 static std::string Encode(); |
198 }; | 201 }; |
199 | 202 |
200 class DatabaseFreeListKey { | 203 class DatabaseFreeListKey { |
201 public: | 204 public: |
202 DatabaseFreeListKey(); | 205 DatabaseFreeListKey(); |
203 static bool Decode(base::StringPiece* slice, DatabaseFreeListKey* result); | 206 static bool Decode(base::StringPiece* slice, DatabaseFreeListKey* result); |
204 CONTENT_EXPORT static std::string Encode(int64 database_id); | 207 CONTENT_EXPORT static std::string Encode(int64_t database_id); |
205 static CONTENT_EXPORT std::string EncodeMaxKey(); | 208 static CONTENT_EXPORT std::string EncodeMaxKey(); |
206 int64 DatabaseId() const; | 209 int64_t DatabaseId() const; |
207 int Compare(const DatabaseFreeListKey& other) const; | 210 int Compare(const DatabaseFreeListKey& other) const; |
208 | 211 |
209 private: | 212 private: |
210 int64 database_id_; | 213 int64_t database_id_; |
211 }; | 214 }; |
212 | 215 |
213 class DatabaseNameKey { | 216 class DatabaseNameKey { |
214 public: | 217 public: |
215 static bool Decode(base::StringPiece* slice, DatabaseNameKey* result); | 218 static bool Decode(base::StringPiece* slice, DatabaseNameKey* result); |
216 CONTENT_EXPORT static std::string Encode(const std::string& origin_identifier, | 219 CONTENT_EXPORT static std::string Encode(const std::string& origin_identifier, |
217 const base::string16& database_name); | 220 const base::string16& database_name); |
218 static std::string EncodeMinKeyForOrigin( | 221 static std::string EncodeMinKeyForOrigin( |
219 const std::string& origin_identifier); | 222 const std::string& origin_identifier); |
220 static std::string EncodeStopKeyForOrigin( | 223 static std::string EncodeStopKeyForOrigin( |
(...skipping 13 matching lines...) Expand all Loading... |
234 enum MetaDataType { | 237 enum MetaDataType { |
235 ORIGIN_NAME = 0, | 238 ORIGIN_NAME = 0, |
236 DATABASE_NAME = 1, | 239 DATABASE_NAME = 1, |
237 USER_VERSION = 2, | 240 USER_VERSION = 2, |
238 MAX_OBJECT_STORE_ID = 3, | 241 MAX_OBJECT_STORE_ID = 3, |
239 USER_INT_VERSION = 4, | 242 USER_INT_VERSION = 4, |
240 BLOB_KEY_GENERATOR_CURRENT_NUMBER = 5, | 243 BLOB_KEY_GENERATOR_CURRENT_NUMBER = 5, |
241 MAX_SIMPLE_METADATA_TYPE = 6 | 244 MAX_SIMPLE_METADATA_TYPE = 6 |
242 }; | 245 }; |
243 | 246 |
244 CONTENT_EXPORT static const int64 kAllBlobsKey; | 247 CONTENT_EXPORT static const int64_t kAllBlobsKey; |
245 static const int64 kBlobKeyGeneratorInitialNumber; | 248 static const int64_t kBlobKeyGeneratorInitialNumber; |
246 // All keys <= 0 are invalid. This one's just a convenient example. | 249 // All keys <= 0 are invalid. This one's just a convenient example. |
247 static const int64 kInvalidBlobKey; | 250 static const int64_t kInvalidBlobKey; |
248 | 251 |
249 static bool IsValidBlobKey(int64 blob_key); | 252 static bool IsValidBlobKey(int64_t blob_key); |
250 CONTENT_EXPORT static std::string Encode(int64 database_id, | 253 CONTENT_EXPORT static std::string Encode(int64_t database_id, |
251 MetaDataType type); | 254 MetaDataType type); |
252 }; | 255 }; |
253 | 256 |
254 class ObjectStoreMetaDataKey { | 257 class ObjectStoreMetaDataKey { |
255 public: | 258 public: |
256 enum MetaDataType { | 259 enum MetaDataType { |
257 NAME = 0, | 260 NAME = 0, |
258 KEY_PATH = 1, | 261 KEY_PATH = 1, |
259 AUTO_INCREMENT = 2, | 262 AUTO_INCREMENT = 2, |
260 EVICTABLE = 3, | 263 EVICTABLE = 3, |
261 LAST_VERSION = 4, | 264 LAST_VERSION = 4, |
262 MAX_INDEX_ID = 5, | 265 MAX_INDEX_ID = 5, |
263 HAS_KEY_PATH = 6, | 266 HAS_KEY_PATH = 6, |
264 KEY_GENERATOR_CURRENT_NUMBER = 7 | 267 KEY_GENERATOR_CURRENT_NUMBER = 7 |
265 }; | 268 }; |
266 | 269 |
267 ObjectStoreMetaDataKey(); | 270 ObjectStoreMetaDataKey(); |
268 static bool Decode(base::StringPiece* slice, ObjectStoreMetaDataKey* result); | 271 static bool Decode(base::StringPiece* slice, ObjectStoreMetaDataKey* result); |
269 CONTENT_EXPORT static std::string Encode(int64 database_id, | 272 CONTENT_EXPORT static std::string Encode(int64_t database_id, |
270 int64 object_store_id, | 273 int64_t object_store_id, |
271 unsigned char meta_data_type); | 274 unsigned char meta_data_type); |
272 CONTENT_EXPORT static std::string EncodeMaxKey(int64 database_id); | 275 CONTENT_EXPORT static std::string EncodeMaxKey(int64_t database_id); |
273 CONTENT_EXPORT static std::string EncodeMaxKey(int64 database_id, | 276 CONTENT_EXPORT static std::string EncodeMaxKey(int64_t database_id, |
274 int64 object_store_id); | 277 int64_t object_store_id); |
275 int64 ObjectStoreId() const; | 278 int64_t ObjectStoreId() const; |
276 unsigned char MetaDataType() const; | 279 unsigned char MetaDataType() const; |
277 int Compare(const ObjectStoreMetaDataKey& other); | 280 int Compare(const ObjectStoreMetaDataKey& other); |
278 | 281 |
279 private: | 282 private: |
280 int64 object_store_id_; | 283 int64_t object_store_id_; |
281 unsigned char meta_data_type_; | 284 unsigned char meta_data_type_; |
282 }; | 285 }; |
283 | 286 |
284 class IndexMetaDataKey { | 287 class IndexMetaDataKey { |
285 public: | 288 public: |
286 enum MetaDataType { | 289 enum MetaDataType { |
287 NAME = 0, | 290 NAME = 0, |
288 UNIQUE = 1, | 291 UNIQUE = 1, |
289 KEY_PATH = 2, | 292 KEY_PATH = 2, |
290 MULTI_ENTRY = 3 | 293 MULTI_ENTRY = 3 |
291 }; | 294 }; |
292 | 295 |
293 IndexMetaDataKey(); | 296 IndexMetaDataKey(); |
294 static bool Decode(base::StringPiece* slice, IndexMetaDataKey* result); | 297 static bool Decode(base::StringPiece* slice, IndexMetaDataKey* result); |
295 CONTENT_EXPORT static std::string Encode(int64 database_id, | 298 CONTENT_EXPORT static std::string Encode(int64_t database_id, |
296 int64 object_store_id, | 299 int64_t object_store_id, |
297 int64 index_id, | 300 int64_t index_id, |
298 unsigned char meta_data_type); | 301 unsigned char meta_data_type); |
299 CONTENT_EXPORT static std::string EncodeMaxKey(int64 database_id, | 302 CONTENT_EXPORT static std::string EncodeMaxKey(int64_t database_id, |
300 int64 object_store_id); | 303 int64_t object_store_id); |
301 CONTENT_EXPORT static std::string EncodeMaxKey(int64 database_id, | 304 CONTENT_EXPORT static std::string EncodeMaxKey(int64_t database_id, |
302 int64 object_store_id, | 305 int64_t object_store_id, |
303 int64 index_id); | 306 int64_t index_id); |
304 int Compare(const IndexMetaDataKey& other); | 307 int Compare(const IndexMetaDataKey& other); |
305 int64 IndexId() const; | 308 int64_t IndexId() const; |
306 unsigned char meta_data_type() const { return meta_data_type_; } | 309 unsigned char meta_data_type() const { return meta_data_type_; } |
307 | 310 |
308 private: | 311 private: |
309 int64 object_store_id_; | 312 int64_t object_store_id_; |
310 int64 index_id_; | 313 int64_t index_id_; |
311 unsigned char meta_data_type_; | 314 unsigned char meta_data_type_; |
312 }; | 315 }; |
313 | 316 |
314 class ObjectStoreFreeListKey { | 317 class ObjectStoreFreeListKey { |
315 public: | 318 public: |
316 ObjectStoreFreeListKey(); | 319 ObjectStoreFreeListKey(); |
317 static bool Decode(base::StringPiece* slice, ObjectStoreFreeListKey* result); | 320 static bool Decode(base::StringPiece* slice, ObjectStoreFreeListKey* result); |
318 CONTENT_EXPORT static std::string Encode(int64 database_id, | 321 CONTENT_EXPORT static std::string Encode(int64_t database_id, |
319 int64 object_store_id); | 322 int64_t object_store_id); |
320 CONTENT_EXPORT static std::string EncodeMaxKey(int64 database_id); | 323 CONTENT_EXPORT static std::string EncodeMaxKey(int64_t database_id); |
321 int64 ObjectStoreId() const; | 324 int64_t ObjectStoreId() const; |
322 int Compare(const ObjectStoreFreeListKey& other); | 325 int Compare(const ObjectStoreFreeListKey& other); |
323 | 326 |
324 private: | 327 private: |
325 int64 object_store_id_; | 328 int64_t object_store_id_; |
326 }; | 329 }; |
327 | 330 |
328 class IndexFreeListKey { | 331 class IndexFreeListKey { |
329 public: | 332 public: |
330 IndexFreeListKey(); | 333 IndexFreeListKey(); |
331 static bool Decode(base::StringPiece* slice, IndexFreeListKey* result); | 334 static bool Decode(base::StringPiece* slice, IndexFreeListKey* result); |
332 CONTENT_EXPORT static std::string Encode(int64 database_id, | 335 CONTENT_EXPORT static std::string Encode(int64_t database_id, |
333 int64 object_store_id, | 336 int64_t object_store_id, |
334 int64 index_id); | 337 int64_t index_id); |
335 CONTENT_EXPORT static std::string EncodeMaxKey(int64 database_id, | 338 CONTENT_EXPORT static std::string EncodeMaxKey(int64_t database_id, |
336 int64 object_store_id); | 339 int64_t object_store_id); |
337 int Compare(const IndexFreeListKey& other); | 340 int Compare(const IndexFreeListKey& other); |
338 int64 ObjectStoreId() const; | 341 int64_t ObjectStoreId() const; |
339 int64 IndexId() const; | 342 int64_t IndexId() const; |
340 | 343 |
341 private: | 344 private: |
342 int64 object_store_id_; | 345 int64_t object_store_id_; |
343 int64 index_id_; | 346 int64_t index_id_; |
344 }; | 347 }; |
345 | 348 |
346 class ObjectStoreNamesKey { | 349 class ObjectStoreNamesKey { |
347 public: | 350 public: |
348 // TODO(jsbell): We never use this to look up object store ids, | 351 // TODO(jsbell): We never use this to look up object store ids, |
349 // because a mapping is kept in the IndexedDBDatabase. Can the | 352 // because a mapping is kept in the IndexedDBDatabase. Can the |
350 // mapping become unreliable? Can we remove this? | 353 // mapping become unreliable? Can we remove this? |
351 static bool Decode(base::StringPiece* slice, ObjectStoreNamesKey* result); | 354 static bool Decode(base::StringPiece* slice, ObjectStoreNamesKey* result); |
352 CONTENT_EXPORT static std::string Encode( | 355 CONTENT_EXPORT static std::string Encode( |
353 int64 database_id, | 356 int64_t database_id, |
354 const base::string16& object_store_name); | 357 const base::string16& object_store_name); |
355 int Compare(const ObjectStoreNamesKey& other); | 358 int Compare(const ObjectStoreNamesKey& other); |
356 base::string16 object_store_name() const { return object_store_name_; } | 359 base::string16 object_store_name() const { return object_store_name_; } |
357 | 360 |
358 private: | 361 private: |
359 // TODO(jsbell): Store the encoded string, or just pointers to it. | 362 // TODO(jsbell): Store the encoded string, or just pointers to it. |
360 base::string16 object_store_name_; | 363 base::string16 object_store_name_; |
361 }; | 364 }; |
362 | 365 |
363 class IndexNamesKey { | 366 class IndexNamesKey { |
364 public: | 367 public: |
365 IndexNamesKey(); | 368 IndexNamesKey(); |
366 // TODO(jsbell): We never use this to look up index ids, because a mapping | 369 // TODO(jsbell): We never use this to look up index ids, because a mapping |
367 // is kept at a higher level. | 370 // is kept at a higher level. |
368 static bool Decode(base::StringPiece* slice, IndexNamesKey* result); | 371 static bool Decode(base::StringPiece* slice, IndexNamesKey* result); |
369 CONTENT_EXPORT static std::string Encode(int64 database_id, | 372 CONTENT_EXPORT static std::string Encode(int64_t database_id, |
370 int64 object_store_id, | 373 int64_t object_store_id, |
371 const base::string16& index_name); | 374 const base::string16& index_name); |
372 int Compare(const IndexNamesKey& other); | 375 int Compare(const IndexNamesKey& other); |
373 base::string16 index_name() const { return index_name_; } | 376 base::string16 index_name() const { return index_name_; } |
374 | 377 |
375 private: | 378 private: |
376 int64 object_store_id_; | 379 int64_t object_store_id_; |
377 base::string16 index_name_; | 380 base::string16 index_name_; |
378 }; | 381 }; |
379 | 382 |
380 class ObjectStoreDataKey { | 383 class ObjectStoreDataKey { |
381 public: | 384 public: |
382 static const int64 kSpecialIndexNumber; | 385 static const int64_t kSpecialIndexNumber; |
383 | 386 |
384 ObjectStoreDataKey(); | 387 ObjectStoreDataKey(); |
385 ~ObjectStoreDataKey(); | 388 ~ObjectStoreDataKey(); |
386 | 389 |
387 static bool Decode(base::StringPiece* slice, ObjectStoreDataKey* result); | 390 static bool Decode(base::StringPiece* slice, ObjectStoreDataKey* result); |
388 CONTENT_EXPORT static std::string Encode(int64 database_id, | 391 CONTENT_EXPORT static std::string Encode(int64_t database_id, |
389 int64 object_store_id, | 392 int64_t object_store_id, |
390 const std::string encoded_user_key); | 393 const std::string encoded_user_key); |
391 static std::string Encode(int64 database_id, | 394 static std::string Encode(int64_t database_id, |
392 int64 object_store_id, | 395 int64_t object_store_id, |
393 const IndexedDBKey& user_key); | 396 const IndexedDBKey& user_key); |
394 scoped_ptr<IndexedDBKey> user_key() const; | 397 scoped_ptr<IndexedDBKey> user_key() const; |
395 private: | 398 private: |
396 std::string encoded_user_key_; | 399 std::string encoded_user_key_; |
397 }; | 400 }; |
398 | 401 |
399 class ExistsEntryKey { | 402 class ExistsEntryKey { |
400 public: | 403 public: |
401 ExistsEntryKey(); | 404 ExistsEntryKey(); |
402 ~ExistsEntryKey(); | 405 ~ExistsEntryKey(); |
403 | 406 |
404 static bool Decode(base::StringPiece* slice, ExistsEntryKey* result); | 407 static bool Decode(base::StringPiece* slice, ExistsEntryKey* result); |
405 CONTENT_EXPORT static std::string Encode(int64 database_id, | 408 CONTENT_EXPORT static std::string Encode(int64_t database_id, |
406 int64 object_store_id, | 409 int64_t object_store_id, |
407 const std::string& encoded_key); | 410 const std::string& encoded_key); |
408 static std::string Encode(int64 database_id, | 411 static std::string Encode(int64_t database_id, |
409 int64 object_store_id, | 412 int64_t object_store_id, |
410 const IndexedDBKey& user_key); | 413 const IndexedDBKey& user_key); |
411 scoped_ptr<IndexedDBKey> user_key() const; | 414 scoped_ptr<IndexedDBKey> user_key() const; |
412 | 415 |
413 private: | 416 private: |
414 static const int64 kSpecialIndexNumber; | 417 static const int64_t kSpecialIndexNumber; |
415 | 418 |
416 std::string encoded_user_key_; | 419 std::string encoded_user_key_; |
417 DISALLOW_COPY_AND_ASSIGN(ExistsEntryKey); | 420 DISALLOW_COPY_AND_ASSIGN(ExistsEntryKey); |
418 }; | 421 }; |
419 | 422 |
420 class BlobEntryKey { | 423 class BlobEntryKey { |
421 public: | 424 public: |
422 BlobEntryKey() : database_id_(0), object_store_id_(0) {} | 425 BlobEntryKey() : database_id_(0), object_store_id_(0) {} |
423 static bool Decode(base::StringPiece* slice, BlobEntryKey* result); | 426 static bool Decode(base::StringPiece* slice, BlobEntryKey* result); |
424 static bool FromObjectStoreDataKey(base::StringPiece* slice, | 427 static bool FromObjectStoreDataKey(base::StringPiece* slice, |
425 BlobEntryKey* result); | 428 BlobEntryKey* result); |
426 static std::string ReencodeToObjectStoreDataKey(base::StringPiece* slice); | 429 static std::string ReencodeToObjectStoreDataKey(base::StringPiece* slice); |
427 static std::string EncodeMinKeyForObjectStore(int64 database_id, | 430 static std::string EncodeMinKeyForObjectStore(int64_t database_id, |
428 int64 object_store_id); | 431 int64_t object_store_id); |
429 static std::string EncodeStopKeyForObjectStore(int64 database_id, | 432 static std::string EncodeStopKeyForObjectStore(int64_t database_id, |
430 int64 object_store_id); | 433 int64_t object_store_id); |
431 static std::string Encode(int64 database_id, | 434 static std::string Encode(int64_t database_id, |
432 int64 object_store_id, | 435 int64_t object_store_id, |
433 const IndexedDBKey& user_key); | 436 const IndexedDBKey& user_key); |
434 std::string Encode() const; | 437 std::string Encode() const; |
435 int64 database_id() const { return database_id_; } | 438 int64_t database_id() const { return database_id_; } |
436 int64 object_store_id() const { return object_store_id_; } | 439 int64_t object_store_id() const { return object_store_id_; } |
437 | 440 |
438 private: | 441 private: |
439 static const int64 kSpecialIndexNumber; | 442 static const int64_t kSpecialIndexNumber; |
440 | 443 |
441 static std::string Encode(int64 database_id, | 444 static std::string Encode(int64_t database_id, |
442 int64 object_store_id, | 445 int64_t object_store_id, |
443 const std::string& encoded_user_key); | 446 const std::string& encoded_user_key); |
444 int64 database_id_; | 447 int64_t database_id_; |
445 int64 object_store_id_; | 448 int64_t object_store_id_; |
446 // This is the user's ObjectStoreDataKey, not the BlobEntryKey itself. | 449 // This is the user's ObjectStoreDataKey, not the BlobEntryKey itself. |
447 std::string encoded_user_key_; | 450 std::string encoded_user_key_; |
448 }; | 451 }; |
449 | 452 |
450 class IndexDataKey { | 453 class IndexDataKey { |
451 public: | 454 public: |
452 IndexDataKey(); | 455 IndexDataKey(); |
453 ~IndexDataKey(); | 456 ~IndexDataKey(); |
454 static bool Decode(base::StringPiece* slice, IndexDataKey* result); | 457 static bool Decode(base::StringPiece* slice, IndexDataKey* result); |
455 CONTENT_EXPORT static std::string Encode( | 458 CONTENT_EXPORT static std::string Encode( |
456 int64 database_id, | 459 int64_t database_id, |
457 int64 object_store_id, | 460 int64_t object_store_id, |
458 int64 index_id, | 461 int64_t index_id, |
459 const std::string& encoded_user_key, | 462 const std::string& encoded_user_key, |
460 const std::string& encoded_primary_key, | 463 const std::string& encoded_primary_key, |
461 int64 sequence_number); | 464 int64_t sequence_number); |
462 static std::string Encode(int64 database_id, | 465 static std::string Encode(int64_t database_id, |
463 int64 object_store_id, | 466 int64_t object_store_id, |
464 int64 index_id, | 467 int64_t index_id, |
465 const IndexedDBKey& user_key); | 468 const IndexedDBKey& user_key); |
466 static std::string Encode(int64 database_id, | 469 static std::string Encode(int64_t database_id, |
467 int64 object_store_id, | 470 int64_t object_store_id, |
468 int64 index_id, | 471 int64_t index_id, |
469 const IndexedDBKey& user_key, | 472 const IndexedDBKey& user_key, |
470 const IndexedDBKey& user_primary_key); | 473 const IndexedDBKey& user_primary_key); |
471 static std::string EncodeMinKey(int64 database_id, | 474 static std::string EncodeMinKey(int64_t database_id, |
472 int64 object_store_id, | 475 int64_t object_store_id, |
473 int64 index_id); | 476 int64_t index_id); |
474 CONTENT_EXPORT static std::string EncodeMaxKey(int64 database_id, | 477 CONTENT_EXPORT static std::string EncodeMaxKey(int64_t database_id, |
475 int64 object_store_id, | 478 int64_t object_store_id, |
476 int64 index_id); | 479 int64_t index_id); |
477 int64 DatabaseId() const; | 480 int64_t DatabaseId() const; |
478 int64 ObjectStoreId() const; | 481 int64_t ObjectStoreId() const; |
479 int64 IndexId() const; | 482 int64_t IndexId() const; |
480 scoped_ptr<IndexedDBKey> user_key() const; | 483 scoped_ptr<IndexedDBKey> user_key() const; |
481 scoped_ptr<IndexedDBKey> primary_key() const; | 484 scoped_ptr<IndexedDBKey> primary_key() const; |
482 | 485 |
483 private: | 486 private: |
484 int64 database_id_; | 487 int64_t database_id_; |
485 int64 object_store_id_; | 488 int64_t object_store_id_; |
486 int64 index_id_; | 489 int64_t index_id_; |
487 std::string encoded_user_key_; | 490 std::string encoded_user_key_; |
488 std::string encoded_primary_key_; | 491 std::string encoded_primary_key_; |
489 int64 sequence_number_; | 492 int64_t sequence_number_; |
490 | 493 |
491 DISALLOW_COPY_AND_ASSIGN(IndexDataKey); | 494 DISALLOW_COPY_AND_ASSIGN(IndexDataKey); |
492 }; | 495 }; |
493 | 496 |
494 } // namespace content | 497 } // namespace content |
495 | 498 |
496 #endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_LEVELDB_CODING_H_ | 499 #endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_LEVELDB_CODING_H_ |
OLD | NEW |