OLD | NEW |
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 <deque> | 8 #include <deque> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 // Getter/setters for the per datatype context. | 295 // Getter/setters for the per datatype context. |
296 void GetDataTypeContext(BaseTransaction* trans, | 296 void GetDataTypeContext(BaseTransaction* trans, |
297 ModelType type, | 297 ModelType type, |
298 sync_pb::DataTypeContext* context) const; | 298 sync_pb::DataTypeContext* context) const; |
299 void SetDataTypeContext(BaseWriteTransaction* trans, | 299 void SetDataTypeContext(BaseWriteTransaction* trans, |
300 ModelType type, | 300 ModelType type, |
301 const sync_pb::DataTypeContext& context); | 301 const sync_pb::DataTypeContext& context); |
302 | 302 |
303 ModelTypeSet InitialSyncEndedTypes(); | 303 ModelTypeSet InitialSyncEndedTypes(); |
304 bool InitialSyncEndedForType(ModelType type); | 304 bool InitialSyncEndedForType(ModelType type); |
305 bool InitialSyncEndedForType(BaseTransaction* trans, ModelType type); | |
306 | |
307 const std::string& name() const { return kernel_->name; } | |
308 | 305 |
309 // (Account) Store birthday is opaque to the client, so we keep it in the | 306 // (Account) Store birthday is opaque to the client, so we keep it in the |
310 // format it is in the proto buffer in case we switch to a binary birthday | 307 // format it is in the proto buffer in case we switch to a binary birthday |
311 // later. | 308 // later. |
312 std::string store_birthday() const; | 309 std::string store_birthday() const; |
313 void set_store_birthday(const std::string& store_birthday); | 310 void set_store_birthday(const std::string& store_birthday); |
314 | 311 |
315 // (Account) Bag of chip is an opaque state used by the server to track the | 312 // (Account) Bag of chip is an opaque state used by the server to track the |
316 // client. | 313 // client. |
317 std::string bag_of_chips() const; | 314 std::string bag_of_chips() const; |
318 void set_bag_of_chips(const std::string& bag_of_chips); | 315 void set_bag_of_chips(const std::string& bag_of_chips); |
319 | 316 |
320 // Unique to each account / client pair. | 317 // Unique to each account / client pair. |
321 std::string cache_guid() const; | 318 std::string cache_guid() const; |
322 | 319 |
323 // Returns a pointer to our Nigori node handler. | 320 // Returns a pointer to our Nigori node handler. |
324 NigoriHandler* GetNigoriHandler(); | 321 NigoriHandler* GetNigoriHandler(); |
325 | 322 |
326 // Returns a pointer to our cryptographer. Does not transfer ownership. | 323 // Returns a pointer to our cryptographer. Does not transfer ownership. |
327 // Not thread safe, so should only be accessed while holding a transaction. | 324 // Not thread safe, so should only be accessed while holding a transaction. |
328 Cryptographer* GetCryptographer(const BaseTransaction* trans); | 325 Cryptographer* GetCryptographer(const BaseTransaction* trans); |
329 | 326 |
330 // Returns true if the directory had encountered an unrecoverable error. | |
331 // Note: Any function in |Directory| that can be called without holding a | |
332 // transaction need to check if the Directory already has an unrecoverable | |
333 // error on it. | |
334 bool unrecoverable_error_set(const BaseTransaction* trans) const; | |
335 | |
336 // Called to immediately report an unrecoverable error (but don't | 327 // Called to immediately report an unrecoverable error (but don't |
337 // propagate it up). | 328 // propagate it up). |
338 void ReportUnrecoverableError() { | 329 void ReportUnrecoverableError() { |
339 if (report_unrecoverable_error_function_) { | 330 if (report_unrecoverable_error_function_) { |
340 report_unrecoverable_error_function_(); | 331 report_unrecoverable_error_function_(); |
341 } | 332 } |
342 } | 333 } |
343 | 334 |
344 // Called to set the unrecoverable error on the directory and to propagate | 335 // Called to set the unrecoverable error on the directory and to propagate |
345 // the error to upper layers. | 336 // the error to upper layers. |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
621 EntryKernel* entry, | 612 EntryKernel* entry, |
622 EntryKernelSet* entries_to_journal); | 613 EntryKernelSet* entries_to_journal); |
623 | 614 |
624 // A private version of the public GetMetaHandlesOfType for when you already | 615 // A private version of the public GetMetaHandlesOfType for when you already |
625 // have a ScopedKernelLock. | 616 // have a ScopedKernelLock. |
626 void GetMetaHandlesOfType(const ScopedKernelLock& lock, | 617 void GetMetaHandlesOfType(const ScopedKernelLock& lock, |
627 BaseTransaction* trans, | 618 BaseTransaction* trans, |
628 ModelType type, | 619 ModelType type, |
629 std::vector<int64>* result); | 620 std::vector<int64>* result); |
630 | 621 |
| 622 // Returns true if the initial sync for |type| has completed. |
| 623 bool InitialSyncEndedForType(BaseTransaction* trans, ModelType type); |
| 624 |
631 // Stops sending events to the delegate and the transaction | 625 // Stops sending events to the delegate and the transaction |
632 // observer. | 626 // observer. |
633 void Close(); | 627 void Close(); |
634 | 628 |
| 629 // Returns true if the directory had encountered an unrecoverable error. |
| 630 // Note: Any function in |Directory| that can be called without holding a |
| 631 // transaction need to check if the Directory already has an unrecoverable |
| 632 // error on it. |
| 633 bool unrecoverable_error_set(const BaseTransaction* trans) const; |
| 634 |
635 Kernel* kernel_; | 635 Kernel* kernel_; |
636 | 636 |
637 scoped_ptr<DirectoryBackingStore> store_; | 637 scoped_ptr<DirectoryBackingStore> store_; |
638 | 638 |
639 UnrecoverableErrorHandler* const unrecoverable_error_handler_; | 639 UnrecoverableErrorHandler* const unrecoverable_error_handler_; |
640 const ReportUnrecoverableErrorFunction report_unrecoverable_error_function_; | 640 const ReportUnrecoverableErrorFunction report_unrecoverable_error_function_; |
641 bool unrecoverable_error_set_; | 641 bool unrecoverable_error_set_; |
642 | 642 |
643 // Not owned. | 643 // Not owned. |
644 NigoriHandler* const nigori_handler_; | 644 NigoriHandler* const nigori_handler_; |
645 Cryptographer* const cryptographer_; | 645 Cryptographer* const cryptographer_; |
646 | 646 |
647 InvariantCheckLevel invariant_check_level_; | 647 InvariantCheckLevel invariant_check_level_; |
648 | 648 |
649 // Maintain deleted entries not in |kernel_| until it's verified that they | 649 // Maintain deleted entries not in |kernel_| until it's verified that they |
650 // are deleted in native models as well. | 650 // are deleted in native models as well. |
651 scoped_ptr<DeleteJournal> delete_journal_; | 651 scoped_ptr<DeleteJournal> delete_journal_; |
652 | 652 |
653 DISALLOW_COPY_AND_ASSIGN(Directory); | 653 DISALLOW_COPY_AND_ASSIGN(Directory); |
654 }; | 654 }; |
655 | 655 |
656 } // namespace syncable | 656 } // namespace syncable |
657 } // namespace syncer | 657 } // namespace syncer |
658 | 658 |
659 #endif // SYNC_SYNCABLE_DIRECTORY_H_ | 659 #endif // SYNC_SYNCABLE_DIRECTORY_H_ |
OLD | NEW |