Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: sync/syncable/directory.h

Issue 1545553003: Switch to standard integer types in sync/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sync/syncable/deferred_on_disk_directory_backing_store.h ('k') | sync/syncable/directory.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 SYNC_SYNCABLE_DIRECTORY_H_ 5 #ifndef SYNC_SYNCABLE_DIRECTORY_H_
6 #define SYNC_SYNCABLE_DIRECTORY_H_ 6 #define SYNC_SYNCABLE_DIRECTORY_H_
7 7
8 #include <stddef.h>
9 #include <stdint.h>
10
8 #include <deque> 11 #include <deque>
9 #include <set> 12 #include <set>
10 #include <string> 13 #include <string>
11 #include <vector> 14 #include <vector>
12 15
13 #include "base/basictypes.h"
14 #include "base/callback.h" 16 #include "base/callback.h"
15 #include "base/containers/hash_tables.h" 17 #include "base/containers/hash_tables.h"
16 #include "base/files/file_util.h" 18 #include "base/files/file_util.h"
17 #include "base/gtest_prod_util.h" 19 #include "base/gtest_prod_util.h"
20 #include "base/macros.h"
18 #include "base/values.h" 21 #include "base/values.h"
19 #include "sync/api/attachments/attachment_id.h" 22 #include "sync/api/attachments/attachment_id.h"
20 #include "sync/base/sync_export.h" 23 #include "sync/base/sync_export.h"
21 #include "sync/internal_api/public/util/weak_handle.h" 24 #include "sync/internal_api/public/util/weak_handle.h"
22 #include "sync/syncable/dir_open_result.h" 25 #include "sync/syncable/dir_open_result.h"
23 #include "sync/syncable/entry.h" 26 #include "sync/syncable/entry.h"
24 #include "sync/syncable/entry_kernel.h" 27 #include "sync/syncable/entry_kernel.h"
25 #include "sync/syncable/metahandle_set.h" 28 #include "sync/syncable/metahandle_set.h"
26 #include "sync/syncable/parent_child_index.h" 29 #include "sync/syncable/parent_child_index.h"
27 #include "sync/syncable/syncable_delete_journal.h" 30 #include "sync/syncable/syncable_delete_journal.h"
(...skipping 22 matching lines...) Expand all
50 FULL_DB_VERIFICATION = 2 // Check every entry. This can be expensive. 53 FULL_DB_VERIFICATION = 2 // Check every entry. This can be expensive.
51 }; 54 };
52 55
53 // Directory stores and manages EntryKernels. 56 // Directory stores and manages EntryKernels.
54 // 57 //
55 // This class is tightly coupled to several other classes via Directory::Kernel. 58 // This class is tightly coupled to several other classes via Directory::Kernel.
56 // Although Directory's kernel_ is exposed via public accessor it should be 59 // Although Directory's kernel_ is exposed via public accessor it should be
57 // treated as pseudo-private. 60 // treated as pseudo-private.
58 class SYNC_EXPORT Directory { 61 class SYNC_EXPORT Directory {
59 public: 62 public:
60 typedef std::vector<int64> Metahandles; 63 typedef std::vector<int64_t> Metahandles;
61 64
62 // TODO(skym): Convert this hash_map usage to unordered_map, crbug/567280. 65 // TODO(skym): Convert this hash_map usage to unordered_map, crbug/567280.
63 // Be careful when using these hash_map containers. According to the spec, 66 // Be careful when using these hash_map containers. According to the spec,
64 // inserting into them may invalidate all iterators. 67 // inserting into them may invalidate all iterators.
65 // 68 //
66 // It gets worse, though. The Anroid STL library has a bug that means it may 69 // It gets worse, though. The Anroid STL library has a bug that means it may
67 // invalidate all iterators when you erase from the map, too. That means that 70 // invalidate all iterators when you erase from the map, too. That means that
68 // you can't iterate while erasing. STLDeleteElements(), std::remove_if(), 71 // you can't iterate while erasing. STLDeleteElements(), std::remove_if(),
69 // and other similar functions are off-limits too, until this bug is fixed. 72 // and other similar functions are off-limits too, until this bug is fixed.
70 // 73 //
71 // See http://sourceforge.net/p/stlport/bugs/239/. 74 // See http://sourceforge.net/p/stlport/bugs/239/.
72 typedef base::hash_map<int64, EntryKernel*> MetahandlesMap; 75 typedef base::hash_map<int64_t, EntryKernel*> MetahandlesMap;
73 typedef base::hash_map<std::string, EntryKernel*> IdsMap; 76 typedef base::hash_map<std::string, EntryKernel*> IdsMap;
74 typedef base::hash_map<std::string, EntryKernel*> TagsMap; 77 typedef base::hash_map<std::string, EntryKernel*> TagsMap;
75 typedef std::string AttachmentIdUniqueId; 78 typedef std::string AttachmentIdUniqueId;
76 typedef base::hash_map<AttachmentIdUniqueId, MetahandleSet> 79 typedef base::hash_map<AttachmentIdUniqueId, MetahandleSet>
77 IndexByAttachmentId; 80 IndexByAttachmentId;
78 81
79 static const base::FilePath::CharType kSyncDatabaseFilename[]; 82 static const base::FilePath::CharType kSyncDatabaseFilename[];
80 83
81 // The dirty/clean state of kernel fields backed by the share_info table. 84 // The dirty/clean state of kernel fields backed by the share_info table.
82 // This is public so it can be used in SaveChangesSnapshot for persistence. 85 // This is public so it can be used in SaveChangesSnapshot for persistence.
(...skipping 18 matching lines...) Expand all
101 bool HasEmptyDownloadProgress(ModelType model_type); 104 bool HasEmptyDownloadProgress(ModelType model_type);
102 105
103 // Last sync timestamp fetched from the server. 106 // Last sync timestamp fetched from the server.
104 sync_pb::DataTypeProgressMarker download_progress[MODEL_TYPE_COUNT]; 107 sync_pb::DataTypeProgressMarker download_progress[MODEL_TYPE_COUNT];
105 // Sync-side transaction version per data type. Monotonically incremented 108 // Sync-side transaction version per data type. Monotonically incremented
106 // when updating native model. A copy is also saved in native model. 109 // when updating native model. A copy is also saved in native model.
107 // Later out-of-sync models can be detected and fixed by comparing 110 // Later out-of-sync models can be detected and fixed by comparing
108 // transaction versions of sync model and native model. 111 // transaction versions of sync model and native model.
109 // TODO(hatiaol): implement detection and fixing of out-of-sync models. 112 // TODO(hatiaol): implement detection and fixing of out-of-sync models.
110 // Bug 154858. 113 // Bug 154858.
111 int64 transaction_version[MODEL_TYPE_COUNT]; 114 int64_t transaction_version[MODEL_TYPE_COUNT];
112 // The store birthday we were given by the server. Contents are opaque to 115 // The store birthday we were given by the server. Contents are opaque to
113 // the client. 116 // the client.
114 std::string store_birthday; 117 std::string store_birthday;
115 // The serialized bag of chips we were given by the server. Contents are 118 // The serialized bag of chips we were given by the server. Contents are
116 // opaque to the client. This is the serialization of a message of type 119 // opaque to the client. This is the serialization of a message of type
117 // ChipBag defined in sync.proto. It can contains NULL characters. 120 // ChipBag defined in sync.proto. It can contains NULL characters.
118 std::string bag_of_chips; 121 std::string bag_of_chips;
119 // The per-datatype context. 122 // The per-datatype context.
120 sync_pb::DataTypeContext datatype_context[MODEL_TYPE_COUNT]; 123 sync_pb::DataTypeContext datatype_context[MODEL_TYPE_COUNT];
121 }; 124 };
122 125
123 // What the Directory needs on initialization to create itself and its Kernel. 126 // What the Directory needs on initialization to create itself and its Kernel.
124 // Filled by DirectoryBackingStore::Load. 127 // Filled by DirectoryBackingStore::Load.
125 struct KernelLoadInfo { 128 struct KernelLoadInfo {
126 PersistedKernelInfo kernel_info; 129 PersistedKernelInfo kernel_info;
127 std::string cache_guid; // Created on first initialization, never changes. 130 std::string cache_guid; // Created on first initialization, never changes.
128 int64 max_metahandle; // Computed (using sql MAX aggregate) on init. 131 int64_t max_metahandle; // Computed (using sql MAX aggregate) on init.
129 KernelLoadInfo() : max_metahandle(0) { 132 KernelLoadInfo() : max_metahandle(0) {
130 } 133 }
131 }; 134 };
132 135
133 // When the Directory is told to SaveChanges, a SaveChangesSnapshot is 136 // When the Directory is told to SaveChanges, a SaveChangesSnapshot is
134 // constructed and forms a consistent snapshot of what needs to be sent to 137 // constructed and forms a consistent snapshot of what needs to be sent to
135 // the backing store. 138 // the backing store.
136 struct SYNC_EXPORT SaveChangesSnapshot { 139 struct SYNC_EXPORT SaveChangesSnapshot {
137 SaveChangesSnapshot(); 140 SaveChangesSnapshot();
138 ~SaveChangesSnapshot(); 141 ~SaveChangesSnapshot();
(...skipping 15 matching lines...) Expand all
154 Kernel(const std::string& name, const KernelLoadInfo& info, 157 Kernel(const std::string& name, const KernelLoadInfo& info,
155 DirectoryChangeDelegate* delegate, 158 DirectoryChangeDelegate* delegate,
156 const WeakHandle<TransactionObserver>& transaction_observer); 159 const WeakHandle<TransactionObserver>& transaction_observer);
157 160
158 ~Kernel(); 161 ~Kernel();
159 162
160 // Implements ReadTransaction / WriteTransaction using a simple lock. 163 // Implements ReadTransaction / WriteTransaction using a simple lock.
161 base::Lock transaction_mutex; 164 base::Lock transaction_mutex;
162 165
163 // Protected by transaction_mutex. Used by WriteTransactions. 166 // Protected by transaction_mutex. Used by WriteTransactions.
164 int64 next_write_transaction_id; 167 int64_t next_write_transaction_id;
165 168
166 // The name of this directory. 169 // The name of this directory.
167 std::string const name; 170 std::string const name;
168 171
169 // Protects all members below. 172 // Protects all members below.
170 // The mutex effectively protects all the indices, but not the 173 // The mutex effectively protects all the indices, but not the
171 // entries themselves. So once a pointer to an entry is pulled 174 // entries themselves. So once a pointer to an entry is pulled
172 // from the index, the mutex can be unlocked and entry read or written. 175 // from the index, the mutex can be unlocked and entry read or written.
173 // 176 //
174 // Never hold the mutex and do anything with the database or any 177 // Never hold the mutex and do anything with the database or any
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 234
232 // A unique identifier for this account's cache db, used to generate 235 // A unique identifier for this account's cache db, used to generate
233 // unique server IDs. No need to lock, only written at init time. 236 // unique server IDs. No need to lock, only written at init time.
234 const std::string cache_guid; 237 const std::string cache_guid;
235 238
236 // It doesn't make sense for two threads to run SaveChanges at the same 239 // It doesn't make sense for two threads to run SaveChanges at the same
237 // time; this mutex protects that activity. 240 // time; this mutex protects that activity.
238 base::Lock save_changes_mutex; 241 base::Lock save_changes_mutex;
239 242
240 // The next metahandle is protected by kernel mutex. 243 // The next metahandle is protected by kernel mutex.
241 int64 next_metahandle; 244 int64_t next_metahandle;
242 245
243 // The delegate for directory change events. Must not be NULL. 246 // The delegate for directory change events. Must not be NULL.
244 DirectoryChangeDelegate* const delegate; 247 DirectoryChangeDelegate* const delegate;
245 248
246 // The transaction observer. 249 // The transaction observer.
247 const WeakHandle<TransactionObserver> transaction_observer; 250 const WeakHandle<TransactionObserver> transaction_observer;
248 }; 251 };
249 252
250 // Does not take ownership of |encryptor|. 253 // Does not take ownership of |encryptor|.
251 // |report_unrecoverable_error_function| may be NULL. 254 // |report_unrecoverable_error_function| may be NULL.
252 // Takes ownership of |store|. 255 // Takes ownership of |store|.
253 Directory( 256 Directory(
254 DirectoryBackingStore* store, 257 DirectoryBackingStore* store,
255 const WeakHandle<UnrecoverableErrorHandler>& unrecoverable_error_handler, 258 const WeakHandle<UnrecoverableErrorHandler>& unrecoverable_error_handler,
256 const base::Closure& report_unrecoverable_error_function, 259 const base::Closure& report_unrecoverable_error_function,
257 NigoriHandler* nigori_handler, 260 NigoriHandler* nigori_handler,
258 Cryptographer* cryptographer); 261 Cryptographer* cryptographer);
259 virtual ~Directory(); 262 virtual ~Directory();
260 263
261 // Does not take ownership of |delegate|, which must not be NULL. 264 // Does not take ownership of |delegate|, which must not be NULL.
262 // Starts sending events to |delegate| if the returned result is 265 // Starts sending events to |delegate| if the returned result is
263 // OPENED. Note that events to |delegate| may be sent from *any* 266 // OPENED. Note that events to |delegate| may be sent from *any*
264 // thread. |transaction_observer| must be initialized. 267 // thread. |transaction_observer| must be initialized.
265 DirOpenResult Open(const std::string& name, 268 DirOpenResult Open(const std::string& name,
266 DirectoryChangeDelegate* delegate, 269 DirectoryChangeDelegate* delegate,
267 const WeakHandle<TransactionObserver>& 270 const WeakHandle<TransactionObserver>&
268 transaction_observer); 271 transaction_observer);
269 272
270 int64 NextMetahandle(); 273 int64_t NextMetahandle();
271 // Generates next client ID based on a randomly generated GUID. 274 // Generates next client ID based on a randomly generated GUID.
272 syncable::Id NextId(); 275 syncable::Id NextId();
273 276
274 bool good() const { return NULL != kernel_; } 277 bool good() const { return NULL != kernel_; }
275 278
276 // The download progress is an opaque token provided by the sync server 279 // The download progress is an opaque token provided by the sync server
277 // to indicate the continuation state of the next GetUpdates operation. 280 // to indicate the continuation state of the next GetUpdates operation.
278 void GetDownloadProgress( 281 void GetDownloadProgress(
279 ModelType type, 282 ModelType type,
280 sync_pb::DataTypeProgressMarker* value_out) const; 283 sync_pb::DataTypeProgressMarker* value_out) const;
281 void GetDownloadProgressAsString( 284 void GetDownloadProgressAsString(
282 ModelType type, 285 ModelType type,
283 std::string* value_out) const; 286 std::string* value_out) const;
284 void SetDownloadProgress( 287 void SetDownloadProgress(
285 ModelType type, 288 ModelType type,
286 const sync_pb::DataTypeProgressMarker& value); 289 const sync_pb::DataTypeProgressMarker& value);
287 bool HasEmptyDownloadProgress(ModelType type) const; 290 bool HasEmptyDownloadProgress(ModelType type) const;
288 291
289 // Gets the total number of entries in the directory. 292 // Gets the total number of entries in the directory.
290 size_t GetEntriesCount() const; 293 size_t GetEntriesCount() const;
291 294
292 // Gets/Increments transaction version of a model type. Must be called when 295 // Gets/Increments transaction version of a model type. Must be called when
293 // holding kernel mutex. 296 // holding kernel mutex.
294 int64 GetTransactionVersion(ModelType type) const; 297 int64_t GetTransactionVersion(ModelType type) const;
295 void IncrementTransactionVersion(ModelType type); 298 void IncrementTransactionVersion(ModelType type);
296 299
297 // Getter/setters for the per datatype context. 300 // Getter/setters for the per datatype context.
298 void GetDataTypeContext(BaseTransaction* trans, 301 void GetDataTypeContext(BaseTransaction* trans,
299 ModelType type, 302 ModelType type,
300 sync_pb::DataTypeContext* context) const; 303 sync_pb::DataTypeContext* context) const;
301 void SetDataTypeContext(BaseWriteTransaction* trans, 304 void SetDataTypeContext(BaseWriteTransaction* trans,
302 ModelType type, 305 ModelType type,
303 const sync_pb::DataTypeContext& context); 306 const sync_pb::DataTypeContext& context);
304 307
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 // state and indices (by deep copy) under a ReadTransaction, passing this 395 // state and indices (by deep copy) under a ReadTransaction, passing this
393 // snapshot to the backing store under no transaction, and finally cleaning 396 // snapshot to the backing store under no transaction, and finally cleaning
394 // up by either purging entries no longer needed (this part done under a 397 // up by either purging entries no longer needed (this part done under a
395 // WriteTransaction) or rolling back the dirty bits. It also uses 398 // WriteTransaction) or rolling back the dirty bits. It also uses
396 // internal locking to enforce SaveChanges operations are mutually exclusive. 399 // internal locking to enforce SaveChanges operations are mutually exclusive.
397 // 400 //
398 // WARNING: THIS METHOD PERFORMS SYNCHRONOUS I/O VIA SQLITE. 401 // WARNING: THIS METHOD PERFORMS SYNCHRONOUS I/O VIA SQLITE.
399 bool SaveChanges(); 402 bool SaveChanges();
400 403
401 // Returns the number of entities with the unsynced bit set. 404 // Returns the number of entities with the unsynced bit set.
402 int64 unsynced_entity_count() const; 405 int64_t unsynced_entity_count() const;
403 406
404 // Get GetUnsyncedMetaHandles should only be called after SaveChanges and 407 // Get GetUnsyncedMetaHandles should only be called after SaveChanges and
405 // before any new entries have been created. The intention is that the 408 // before any new entries have been created. The intention is that the
406 // syncer should call it from its PerformSyncQueries member. 409 // syncer should call it from its PerformSyncQueries member.
407 void GetUnsyncedMetaHandles(BaseTransaction* trans, 410 void GetUnsyncedMetaHandles(BaseTransaction* trans,
408 Metahandles* result); 411 Metahandles* result);
409 412
410 // Returns whether or not this |type| has unapplied updates. 413 // Returns whether or not this |type| has unapplied updates.
411 bool TypeHasUnappliedUpdates(ModelType type); 414 bool TypeHasUnappliedUpdates(ModelType type);
412 415
413 // Get all the metahandles for unapplied updates for a given set of 416 // Get all the metahandles for unapplied updates for a given set of
414 // server types. 417 // server types.
415 void GetUnappliedUpdateMetaHandles(BaseTransaction* trans, 418 void GetUnappliedUpdateMetaHandles(BaseTransaction* trans,
416 FullModelTypeSet server_types, 419 FullModelTypeSet server_types,
417 std::vector<int64>* result); 420 std::vector<int64_t>* result);
418 421
419 // Get all the metahandles of entries of |type|. 422 // Get all the metahandles of entries of |type|.
420 void GetMetaHandlesOfType(BaseTransaction* trans, 423 void GetMetaHandlesOfType(BaseTransaction* trans,
421 ModelType type, 424 ModelType type,
422 Metahandles* result); 425 Metahandles* result);
423 426
424 // Get metahandle counts for various criteria to show on the 427 // Get metahandle counts for various criteria to show on the
425 // about:sync page. The information is computed on the fly 428 // about:sync page. The information is computed on the fly
426 // each time. If this results in a significant performance hit, 429 // each time. If this results in a significant performance hit,
427 // additional data structures can be added to cache results. 430 // additional data structures can be added to cache results.
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 // uploaded to the sync server. 501 // uploaded to the sync server.
499 void GetAttachmentIdsToUpload(BaseTransaction* trans, 502 void GetAttachmentIdsToUpload(BaseTransaction* trans,
500 ModelType type, 503 ModelType type,
501 AttachmentIdList* ids); 504 AttachmentIdList* ids);
502 505
503 // For new entry creation only. 506 // For new entry creation only.
504 bool InsertEntry(BaseWriteTransaction* trans, EntryKernel* entry); 507 bool InsertEntry(BaseWriteTransaction* trans, EntryKernel* entry);
505 508
506 // Update the attachment index for |metahandle| removing it from the index 509 // Update the attachment index for |metahandle| removing it from the index
507 // under |old_metadata| entries and add it under |new_metadata| entries. 510 // under |old_metadata| entries and add it under |new_metadata| entries.
508 void UpdateAttachmentIndex(const int64 metahandle, 511 void UpdateAttachmentIndex(const int64_t metahandle,
509 const sync_pb::AttachmentMetadata& old_metadata, 512 const sync_pb::AttachmentMetadata& old_metadata,
510 const sync_pb::AttachmentMetadata& new_metadata); 513 const sync_pb::AttachmentMetadata& new_metadata);
511 514
512 virtual EntryKernel* GetEntryById(const Id& id); 515 virtual EntryKernel* GetEntryById(const Id& id);
513 virtual EntryKernel* GetEntryByClientTag(const std::string& tag); 516 virtual EntryKernel* GetEntryByClientTag(const std::string& tag);
514 EntryKernel* GetEntryByServerTag(const std::string& tag); 517 EntryKernel* GetEntryByServerTag(const std::string& tag);
515 518
516 virtual EntryKernel* GetEntryByHandle(int64 handle); 519 virtual EntryKernel* GetEntryByHandle(int64_t handle);
517 520
518 bool ReindexId(BaseWriteTransaction* trans, EntryKernel* const entry, 521 bool ReindexId(BaseWriteTransaction* trans, EntryKernel* const entry,
519 const Id& new_id); 522 const Id& new_id);
520 523
521 bool ReindexParentId(BaseWriteTransaction* trans, EntryKernel* const entry, 524 bool ReindexParentId(BaseWriteTransaction* trans, EntryKernel* const entry,
522 const Id& new_parent_id); 525 const Id& new_parent_id);
523 526
524 // Accessors for the underlying Kernel. Although these are public methods, the 527 // Accessors for the underlying Kernel. Although these are public methods, the
525 // number of classes that call these should be limited. 528 // number of classes that call these should be limited.
526 Kernel* kernel(); 529 Kernel* kernel();
(...skipping 10 matching lines...) Expand all
537 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest, 540 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest,
538 TakeSnapshotGetsMetahandlesToPurge); 541 TakeSnapshotGetsMetahandlesToPurge);
539 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest, CatastrophicError); 542 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest, CatastrophicError);
540 543
541 // You'll notice that some of the methods below are private overloads of the 544 // You'll notice that some of the methods below are private overloads of the
542 // public ones declared above. The general pattern is that the public overload 545 // public ones declared above. The general pattern is that the public overload
543 // constructs a ScopedKernelLock before calling the corresponding private 546 // constructs a ScopedKernelLock before calling the corresponding private
544 // overload with the held ScopedKernelLock. 547 // overload with the held ScopedKernelLock.
545 548
546 virtual EntryKernel* GetEntryByHandle(const ScopedKernelLock& lock, 549 virtual EntryKernel* GetEntryByHandle(const ScopedKernelLock& lock,
547 int64 metahandle); 550 int64_t metahandle);
548 551
549 virtual EntryKernel* GetEntryById(const ScopedKernelLock& lock, const Id& id); 552 virtual EntryKernel* GetEntryById(const ScopedKernelLock& lock, const Id& id);
550 553
551 bool InsertEntry(const ScopedKernelLock& lock, 554 bool InsertEntry(const ScopedKernelLock& lock,
552 BaseWriteTransaction* trans, 555 BaseWriteTransaction* trans,
553 EntryKernel* entry); 556 EntryKernel* entry);
554 557
555 // Remove each of |metahandle|'s attachment ids from index_by_attachment_id. 558 // Remove each of |metahandle|'s attachment ids from index_by_attachment_id.
556 void RemoveFromAttachmentIndex( 559 void RemoveFromAttachmentIndex(
557 const ScopedKernelLock& lock, 560 const ScopedKernelLock& lock,
558 const int64 metahandle, 561 const int64_t metahandle,
559 const sync_pb::AttachmentMetadata& attachment_metadata); 562 const sync_pb::AttachmentMetadata& attachment_metadata);
560 563
561 // Add each of |metahandle|'s attachment ids to the index_by_attachment_id. 564 // Add each of |metahandle|'s attachment ids to the index_by_attachment_id.
562 void AddToAttachmentIndex( 565 void AddToAttachmentIndex(
563 const ScopedKernelLock& lock, 566 const ScopedKernelLock& lock,
564 const int64 metahandle, 567 const int64_t metahandle,
565 const sync_pb::AttachmentMetadata& attachment_metadata); 568 const sync_pb::AttachmentMetadata& attachment_metadata);
566 569
567 void ClearDirtyMetahandles(const ScopedKernelLock& lock); 570 void ClearDirtyMetahandles(const ScopedKernelLock& lock);
568 571
569 DirOpenResult OpenImpl( 572 DirOpenResult OpenImpl(
570 const std::string& name, 573 const std::string& name,
571 DirectoryChangeDelegate* delegate, 574 DirectoryChangeDelegate* delegate,
572 const WeakHandle<TransactionObserver>& transaction_observer); 575 const WeakHandle<TransactionObserver>& transaction_observer);
573 576
574 // A helper that implements the logic of checking tree invariants. 577 // A helper that implements the logic of checking tree invariants.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 void DeleteEntry(const ScopedKernelLock& lock, 620 void DeleteEntry(const ScopedKernelLock& lock,
618 bool save_to_journal, 621 bool save_to_journal,
619 EntryKernel* entry, 622 EntryKernel* entry,
620 EntryKernelSet* entries_to_journal); 623 EntryKernelSet* entries_to_journal);
621 624
622 // A private version of the public GetMetaHandlesOfType for when you already 625 // A private version of the public GetMetaHandlesOfType for when you already
623 // have a ScopedKernelLock. 626 // have a ScopedKernelLock.
624 void GetMetaHandlesOfType(const ScopedKernelLock& lock, 627 void GetMetaHandlesOfType(const ScopedKernelLock& lock,
625 BaseTransaction* trans, 628 BaseTransaction* trans,
626 ModelType type, 629 ModelType type,
627 std::vector<int64>* result); 630 std::vector<int64_t>* result);
628 631
629 // Invoked by DirectoryBackingStore when a catastrophic database error is 632 // Invoked by DirectoryBackingStore when a catastrophic database error is
630 // detected. 633 // detected.
631 void OnCatastrophicError(); 634 void OnCatastrophicError();
632 635
633 // Stops sending events to the delegate and the transaction 636 // Stops sending events to the delegate and the transaction
634 // observer. 637 // observer.
635 void Close(); 638 void Close();
636 639
637 // Returns true if the directory had encountered an unrecoverable error. 640 // Returns true if the directory had encountered an unrecoverable error.
(...skipping 22 matching lines...) Expand all
660 663
661 base::WeakPtrFactory<Directory> weak_ptr_factory_; 664 base::WeakPtrFactory<Directory> weak_ptr_factory_;
662 665
663 DISALLOW_COPY_AND_ASSIGN(Directory); 666 DISALLOW_COPY_AND_ASSIGN(Directory);
664 }; 667 };
665 668
666 } // namespace syncable 669 } // namespace syncable
667 } // namespace syncer 670 } // namespace syncer
668 671
669 #endif // SYNC_SYNCABLE_DIRECTORY_H_ 672 #endif // SYNC_SYNCABLE_DIRECTORY_H_
OLDNEW
« no previous file with comments | « sync/syncable/deferred_on_disk_directory_backing_store.h ('k') | sync/syncable/directory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698