| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 SYNC_SYNCABLE_ENTRY_KERNEL_H_ | 5 #ifndef SYNC_SYNCABLE_ENTRY_KERNEL_H_ |
| 6 #define SYNC_SYNCABLE_ENTRY_KERNEL_H_ | 6 #define SYNC_SYNCABLE_ENTRY_KERNEL_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 | 224 |
| 225 // Set the dirty bit, and optionally add this entry's metahandle to | 225 // Set the dirty bit, and optionally add this entry's metahandle to |
| 226 // a provided index on dirty bits in |dirty_index|. Parameter may be null, | 226 // a provided index on dirty bits in |dirty_index|. Parameter may be null, |
| 227 // and will result only in setting the dirty bit of this entry. | 227 // and will result only in setting the dirty bit of this entry. |
| 228 inline void mark_dirty(syncable::MetahandleSet* dirty_index) { | 228 inline void mark_dirty(syncable::MetahandleSet* dirty_index) { |
| 229 if (!dirty_ && dirty_index) { | 229 if (!dirty_ && dirty_index) { |
| 230 DCHECK_NE(0, ref(META_HANDLE)); | 230 DCHECK_NE(0, ref(META_HANDLE)); |
| 231 dirty_index->insert(ref(META_HANDLE)); | 231 dirty_index->insert(ref(META_HANDLE)); |
| 232 } | 232 } |
| 233 dirty_ = true; | 233 dirty_ = true; |
| 234 cached_size_ = 0; |
| 234 } | 235 } |
| 235 | 236 |
| 236 // Clear the dirty bit, and optionally remove this entry's metahandle from | 237 // Clear the dirty bit, and optionally remove this entry's metahandle from |
| 237 // a provided index on dirty bits in |dirty_index|. Parameter may be null, | 238 // a provided index on dirty bits in |dirty_index|. Parameter may be null, |
| 238 // and will result only in clearing dirty bit of this entry. | 239 // and will result only in clearing dirty bit of this entry. |
| 239 inline void clear_dirty(syncable::MetahandleSet* dirty_index) { | 240 inline void clear_dirty(syncable::MetahandleSet* dirty_index) { |
| 240 if (dirty_ && dirty_index) { | 241 if (dirty_ && dirty_index) { |
| 241 DCHECK_NE(0, ref(META_HANDLE)); | 242 DCHECK_NE(0, ref(META_HANDLE)); |
| 242 dirty_index->erase(ref(META_HANDLE)); | 243 dirty_index->erase(ref(META_HANDLE)); |
| 243 } | 244 } |
| 244 dirty_ = false; | 245 dirty_ = false; |
| 245 } | 246 } |
| 246 | 247 |
| 247 inline bool is_dirty() const { | 248 inline bool is_dirty() const { |
| 248 return dirty_; | 249 return dirty_; |
| 249 } | 250 } |
| 250 | 251 |
| 252 inline void set_cached_size(size_t size) { cached_size_ = size; } |
| 253 |
| 254 inline size_t cached_size() const { return cached_size_; } |
| 255 |
| 251 // Setters. | 256 // Setters. |
| 252 inline void put(MetahandleField field, int64_t value) { | 257 inline void put(MetahandleField field, int64_t value) { |
| 253 int64_fields[field - INT64_FIELDS_BEGIN] = value; | 258 int64_fields[field - INT64_FIELDS_BEGIN] = value; |
| 254 } | 259 } |
| 255 inline void put(Int64Field field, int64_t value) { | 260 inline void put(Int64Field field, int64_t value) { |
| 256 int64_fields[field - INT64_FIELDS_BEGIN] = value; | 261 int64_fields[field - INT64_FIELDS_BEGIN] = value; |
| 257 } | 262 } |
| 258 inline void put(TimeField field, const base::Time& value) { | 263 inline void put(TimeField field, const base::Time& value) { |
| 259 // Round-trip to proto time format and back so that we have | 264 // Round-trip to proto time format and back so that we have |
| 260 // consistent time resolutions (ms). | 265 // consistent time resolutions (ms). |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 // Dumps all kernel info into a DictionaryValue and returns it. | 386 // Dumps all kernel info into a DictionaryValue and returns it. |
| 382 // Transfers ownership of the DictionaryValue to the caller. | 387 // Transfers ownership of the DictionaryValue to the caller. |
| 383 // Note: |cryptographer| is an optional parameter for use in decrypting | 388 // Note: |cryptographer| is an optional parameter for use in decrypting |
| 384 // encrypted specifics. If it is NULL or the specifics are not decryptsble, | 389 // encrypted specifics. If it is NULL or the specifics are not decryptsble, |
| 385 // they will be serialized as empty proto's. | 390 // they will be serialized as empty proto's. |
| 386 base::DictionaryValue* ToValue(Cryptographer* cryptographer) const; | 391 base::DictionaryValue* ToValue(Cryptographer* cryptographer) const; |
| 387 | 392 |
| 388 private: | 393 private: |
| 389 // Tracks whether this entry needs to be saved to the database. | 394 // Tracks whether this entry needs to be saved to the database. |
| 390 bool dirty_; | 395 bool dirty_; |
| 396 size_t cached_size_; |
| 391 }; | 397 }; |
| 392 | 398 |
| 393 class EntryKernelLessByMetaHandle { | 399 class EntryKernelLessByMetaHandle { |
| 394 public: | 400 public: |
| 395 inline bool operator()(const EntryKernel* a, | 401 inline bool operator()(const EntryKernel* a, |
| 396 const EntryKernel* b) const { | 402 const EntryKernel* b) const { |
| 397 return a->ref(META_HANDLE) < b->ref(META_HANDLE); | 403 return a->ref(META_HANDLE) < b->ref(META_HANDLE); |
| 398 } | 404 } |
| 399 }; | 405 }; |
| 400 | 406 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 416 // Caller owns the return value. | 422 // Caller owns the return value. |
| 417 base::ListValue* EntryKernelMutationMapToValue( | 423 base::ListValue* EntryKernelMutationMapToValue( |
| 418 const EntryKernelMutationMap& mutations); | 424 const EntryKernelMutationMap& mutations); |
| 419 | 425 |
| 420 std::ostream& operator<<(std::ostream& os, const EntryKernel& entry_kernel); | 426 std::ostream& operator<<(std::ostream& os, const EntryKernel& entry_kernel); |
| 421 | 427 |
| 422 } // namespace syncable | 428 } // namespace syncable |
| 423 } // namespace syncer | 429 } // namespace syncer |
| 424 | 430 |
| 425 #endif // SYNC_SYNCABLE_ENTRY_KERNEL_H_ | 431 #endif // SYNC_SYNCABLE_ENTRY_KERNEL_H_ |
| OLD | NEW |