| 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 <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
| 13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
| 14 #include "base/strings/string16.h" | 14 #include "base/strings/string16.h" |
| 15 #include "base/strings/string_piece.h" | 15 #include "base/strings/string_piece.h" |
| 16 #include "content/common/indexed_db/indexed_db_key.h" | 16 #include "content/common/indexed_db/indexed_db_key.h" |
| 17 #include "content/common/indexed_db/indexed_db_key_path.h" | 17 #include "content/common/indexed_db/indexed_db_key_path.h" |
| 18 | 18 |
| 19 namespace content { | 19 namespace content { |
| 20 | 20 |
| 21 CONTENT_EXPORT extern const unsigned char kMinimumIndexId; | 21 CONTENT_EXPORT extern const unsigned char kMinimumIndexId; |
| 22 | 22 |
| 23 CONTENT_EXPORT std::string MaxIDBKey(); | 23 CONTENT_EXPORT std::string MaxIDBKey(); |
| 24 CONTENT_EXPORT std::string MinIDBKey(); | 24 CONTENT_EXPORT std::string MinIDBKey(); |
| 25 | 25 |
| 26 CONTENT_EXPORT void EncodeByte(unsigned char value, std::string* into); | 26 CONTENT_EXPORT void EncodeByte(unsigned char value, std::string* into); |
| 27 CONTENT_EXPORT void EncodeBool(bool value, std::string* into); | 27 CONTENT_EXPORT void EncodeBool(bool value, std::string* into); |
| 28 CONTENT_EXPORT void EncodeInt(int64 value, std::string* into); | 28 CONTENT_EXPORT void EncodeInt(int64 value, std::string* into); |
| 29 CONTENT_EXPORT void EncodeVarInt(int64 value, std::string* into); | 29 CONTENT_EXPORT void EncodeVarInt(int64 value, std::string* into); |
| 30 CONTENT_EXPORT void EncodeString(const string16& value, std::string* into); | 30 CONTENT_EXPORT void EncodeString(const base::string16& value, |
| 31 CONTENT_EXPORT void EncodeStringWithLength(const string16& value, | 31 std::string* into); |
| 32 CONTENT_EXPORT void EncodeStringWithLength(const base::string16& value, |
| 32 std::string* into); | 33 std::string* into); |
| 33 CONTENT_EXPORT void EncodeBinary(const std::string& value, std::string* into); | 34 CONTENT_EXPORT void EncodeBinary(const std::string& value, std::string* into); |
| 34 CONTENT_EXPORT void EncodeDouble(double value, std::string* into); | 35 CONTENT_EXPORT void EncodeDouble(double value, std::string* into); |
| 35 CONTENT_EXPORT void EncodeIDBKey(const IndexedDBKey& value, std::string* into); | 36 CONTENT_EXPORT void EncodeIDBKey(const IndexedDBKey& value, std::string* into); |
| 36 CONTENT_EXPORT void EncodeIDBKeyPath(const IndexedDBKeyPath& value, | 37 CONTENT_EXPORT void EncodeIDBKeyPath(const IndexedDBKeyPath& value, |
| 37 std::string* into); | 38 std::string* into); |
| 38 | 39 |
| 39 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeByte(base::StringPiece* slice, | 40 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeByte(base::StringPiece* slice, |
| 40 unsigned char* value); | 41 unsigned char* value); |
| 41 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeBool(base::StringPiece* slice, | 42 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeBool(base::StringPiece* slice, |
| 42 bool* value); | 43 bool* value); |
| 43 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeInt(base::StringPiece* slice, | 44 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeInt(base::StringPiece* slice, |
| 44 int64* value); | 45 int64* value); |
| 45 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeVarInt(base::StringPiece* slice, | 46 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeVarInt(base::StringPiece* slice, |
| 46 int64* value); | 47 int64* value); |
| 47 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeString(base::StringPiece* slice, | 48 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeString(base::StringPiece* slice, |
| 48 string16* value); | 49 base::string16* value); |
| 49 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeStringWithLength( | 50 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeStringWithLength( |
| 50 base::StringPiece* slice, | 51 base::StringPiece* slice, |
| 51 string16* value); | 52 base::string16* value); |
| 52 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeBinary(base::StringPiece* slice, | 53 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeBinary(base::StringPiece* slice, |
| 53 std::string* value); | 54 std::string* value); |
| 54 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeDouble(base::StringPiece* slice, | 55 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeDouble(base::StringPiece* slice, |
| 55 double* value); | 56 double* value); |
| 56 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeIDBKey( | 57 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeIDBKey( |
| 57 base::StringPiece* slice, | 58 base::StringPiece* slice, |
| 58 scoped_ptr<IndexedDBKey>* value); | 59 scoped_ptr<IndexedDBKey>* value); |
| 59 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeIDBKeyPath( | 60 CONTENT_EXPORT WARN_UNUSED_RESULT bool DecodeIDBKeyPath( |
| 60 base::StringPiece* slice, | 61 base::StringPiece* slice, |
| 61 IndexedDBKeyPath* value); | 62 IndexedDBKeyPath* value); |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 int Compare(const DatabaseFreeListKey& other) const; | 182 int Compare(const DatabaseFreeListKey& other) const; |
| 182 | 183 |
| 183 private: | 184 private: |
| 184 int64 database_id_; | 185 int64 database_id_; |
| 185 }; | 186 }; |
| 186 | 187 |
| 187 class DatabaseNameKey { | 188 class DatabaseNameKey { |
| 188 public: | 189 public: |
| 189 static bool Decode(base::StringPiece* slice, DatabaseNameKey* result); | 190 static bool Decode(base::StringPiece* slice, DatabaseNameKey* result); |
| 190 CONTENT_EXPORT static std::string Encode(const std::string& origin_identifier, | 191 CONTENT_EXPORT static std::string Encode(const std::string& origin_identifier, |
| 191 const string16& database_name); | 192 const base::string16& database_name); |
| 192 static std::string EncodeMinKeyForOrigin( | 193 static std::string EncodeMinKeyForOrigin( |
| 193 const std::string& origin_identifier); | 194 const std::string& origin_identifier); |
| 194 static std::string EncodeStopKeyForOrigin( | 195 static std::string EncodeStopKeyForOrigin( |
| 195 const std::string& origin_identifier); | 196 const std::string& origin_identifier); |
| 196 string16 origin() const { return origin_; } | 197 base::string16 origin() const { return origin_; } |
| 197 string16 database_name() const { return database_name_; } | 198 base::string16 database_name() const { return database_name_; } |
| 198 int Compare(const DatabaseNameKey& other); | 199 int Compare(const DatabaseNameKey& other); |
| 199 | 200 |
| 200 private: | 201 private: |
| 201 string16 origin_; // TODO(jsbell): Store encoded strings, or just pointers. | 202 base::string16 origin_; // TODO(jsbell): Store encoded strings, or just |
| 202 string16 database_name_; | 203 // pointers. |
| 204 base::string16 database_name_; |
| 203 }; | 205 }; |
| 204 | 206 |
| 205 class DatabaseMetaDataKey { | 207 class DatabaseMetaDataKey { |
| 206 public: | 208 public: |
| 207 enum MetaDataType { | 209 enum MetaDataType { |
| 208 ORIGIN_NAME = 0, | 210 ORIGIN_NAME = 0, |
| 209 DATABASE_NAME = 1, | 211 DATABASE_NAME = 1, |
| 210 USER_VERSION = 2, | 212 USER_VERSION = 2, |
| 211 MAX_OBJECT_STORE_ID = 3, | 213 MAX_OBJECT_STORE_ID = 3, |
| 212 USER_INT_VERSION = 4, | 214 USER_INT_VERSION = 4, |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 int64 object_store_id_; | 310 int64 object_store_id_; |
| 309 int64 index_id_; | 311 int64 index_id_; |
| 310 }; | 312 }; |
| 311 | 313 |
| 312 class ObjectStoreNamesKey { | 314 class ObjectStoreNamesKey { |
| 313 public: | 315 public: |
| 314 // TODO(jsbell): We never use this to look up object store ids, | 316 // TODO(jsbell): We never use this to look up object store ids, |
| 315 // because a mapping is kept in the IndexedDBDatabase. Can the | 317 // because a mapping is kept in the IndexedDBDatabase. Can the |
| 316 // mapping become unreliable? Can we remove this? | 318 // mapping become unreliable? Can we remove this? |
| 317 static bool Decode(base::StringPiece* slice, ObjectStoreNamesKey* result); | 319 static bool Decode(base::StringPiece* slice, ObjectStoreNamesKey* result); |
| 318 CONTENT_EXPORT static std::string Encode(int64 database_id, | 320 CONTENT_EXPORT static std::string Encode( |
| 319 const string16& object_store_name); | 321 int64 database_id, |
| 322 const base::string16& object_store_name); |
| 320 int Compare(const ObjectStoreNamesKey& other); | 323 int Compare(const ObjectStoreNamesKey& other); |
| 321 string16 object_store_name() const { return object_store_name_; } | 324 base::string16 object_store_name() const { return object_store_name_; } |
| 322 | 325 |
| 323 private: | 326 private: |
| 324 // TODO(jsbell): Store the encoded string, or just pointers to it. | 327 // TODO(jsbell): Store the encoded string, or just pointers to it. |
| 325 string16 object_store_name_; | 328 base::string16 object_store_name_; |
| 326 }; | 329 }; |
| 327 | 330 |
| 328 class IndexNamesKey { | 331 class IndexNamesKey { |
| 329 public: | 332 public: |
| 330 IndexNamesKey(); | 333 IndexNamesKey(); |
| 331 // TODO(jsbell): We never use this to look up index ids, because a mapping | 334 // TODO(jsbell): We never use this to look up index ids, because a mapping |
| 332 // is kept at a higher level. | 335 // is kept at a higher level. |
| 333 static bool Decode(base::StringPiece* slice, IndexNamesKey* result); | 336 static bool Decode(base::StringPiece* slice, IndexNamesKey* result); |
| 334 CONTENT_EXPORT static std::string Encode(int64 database_id, | 337 CONTENT_EXPORT static std::string Encode(int64 database_id, |
| 335 int64 object_store_id, | 338 int64 object_store_id, |
| 336 const string16& index_name); | 339 const base::string16& index_name); |
| 337 int Compare(const IndexNamesKey& other); | 340 int Compare(const IndexNamesKey& other); |
| 338 string16 index_name() const { return index_name_; } | 341 base::string16 index_name() const { return index_name_; } |
| 339 | 342 |
| 340 private: | 343 private: |
| 341 int64 object_store_id_; | 344 int64 object_store_id_; |
| 342 string16 index_name_; | 345 base::string16 index_name_; |
| 343 }; | 346 }; |
| 344 | 347 |
| 345 class ObjectStoreDataKey { | 348 class ObjectStoreDataKey { |
| 346 public: | 349 public: |
| 347 static bool Decode(base::StringPiece* slice, ObjectStoreDataKey* result); | 350 static bool Decode(base::StringPiece* slice, ObjectStoreDataKey* result); |
| 348 CONTENT_EXPORT static std::string Encode(int64 database_id, | 351 CONTENT_EXPORT static std::string Encode(int64 database_id, |
| 349 int64 object_store_id, | 352 int64 object_store_id, |
| 350 const std::string encoded_user_key); | 353 const std::string encoded_user_key); |
| 351 static std::string Encode(int64 database_id, | 354 static std::string Encode(int64 database_id, |
| 352 int64 object_store_id, | 355 int64 object_store_id, |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 std::string encoded_user_key_; | 429 std::string encoded_user_key_; |
| 427 std::string encoded_primary_key_; | 430 std::string encoded_primary_key_; |
| 428 int64 sequence_number_; | 431 int64 sequence_number_; |
| 429 | 432 |
| 430 DISALLOW_COPY_AND_ASSIGN(IndexDataKey); | 433 DISALLOW_COPY_AND_ASSIGN(IndexDataKey); |
| 431 }; | 434 }; |
| 432 | 435 |
| 433 } // namespace content | 436 } // namespace content |
| 434 | 437 |
| 435 #endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_LEVELDB_CODING_H_ | 438 #endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_LEVELDB_CODING_H_ |
| OLD | NEW |