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

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

Issue 1082423002: [Sync] Make DirectoryBackingStore's db_ private. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move friend declarations to private section. Created 5 years, 8 months 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
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 <deque> 8 #include <deque>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 VERIFY_CHANGES = 1, // Checks only mutated entries. Does not check hierarchy. 48 VERIFY_CHANGES = 1, // Checks only mutated entries. Does not check hierarchy.
49 FULL_DB_VERIFICATION = 2 // Check every entry. This can be expensive. 49 FULL_DB_VERIFICATION = 2 // Check every entry. This can be expensive.
50 }; 50 };
51 51
52 // Directory stores and manages EntryKernels. 52 // Directory stores and manages EntryKernels.
53 // 53 //
54 // This class is tightly coupled to several other classes via Directory::Kernel. 54 // This class is tightly coupled to several other classes via Directory::Kernel.
55 // Although Directory's kernel_ is exposed via public accessor it should be 55 // Although Directory's kernel_ is exposed via public accessor it should be
56 // treated as pseudo-private. 56 // treated as pseudo-private.
57 class SYNC_EXPORT Directory { 57 class SYNC_EXPORT Directory {
58 friend class SyncableDirectoryTest;
59 friend class syncer::TestUserShare;
60 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest, ManageDeleteJournals);
61 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest,
62 TakeSnapshotGetsAllDirtyHandlesTest);
63 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest,
64 TakeSnapshotGetsOnlyDirtyHandlesTest);
65 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest,
66 TakeSnapshotGetsMetahandlesToPurge);
67
68 public: 58 public:
69 typedef std::vector<int64> Metahandles; 59 typedef std::vector<int64> Metahandles;
70 60
71 // Be careful when using these hash_map containers. According to the spec, 61 // Be careful when using these hash_map containers. According to the spec,
72 // inserting into them may invalidate all iterators. 62 // inserting into them may invalidate all iterators.
73 // 63 //
74 // It gets worse, though. The Anroid STL library has a bug that means it may 64 // It gets worse, though. The Anroid STL library has a bug that means it may
75 // invalidate all iterators when you erase from the map, too. That means that 65 // invalidate all iterators when you erase from the map, too. That means that
76 // you can't iterate while erasing. STLDeleteElements(), std::remove_if(), 66 // you can't iterate while erasing. STLDeleteElements(), std::remove_if(),
77 // and other similar functions are off-limits too, until this bug is fixed. 67 // and other similar functions are off-limits too, until this bug is fixed.
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 523
534 bool ReindexParentId(BaseWriteTransaction* trans, EntryKernel* const entry, 524 bool ReindexParentId(BaseWriteTransaction* trans, EntryKernel* const entry,
535 const Id& new_parent_id); 525 const Id& new_parent_id);
536 526
537 // Accessors for the underlying Kernel. Although these are public methods, the 527 // Accessors for the underlying Kernel. Although these are public methods, the
538 // number of classes that call these should be limited. 528 // number of classes that call these should be limited.
539 Kernel* kernel(); 529 Kernel* kernel();
540 const Kernel* kernel() const; 530 const Kernel* kernel() const;
541 531
542 private: 532 private:
533 friend class SyncableDirectoryTest;
534 friend class syncer::TestUserShare;
535 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest, ManageDeleteJournals);
536 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest,
537 TakeSnapshotGetsAllDirtyHandlesTest);
538 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest,
539 TakeSnapshotGetsOnlyDirtyHandlesTest);
540 FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest,
541 TakeSnapshotGetsMetahandlesToPurge);
542
543 // You'll notice that some of the methods below are private overloads of the 543 // You'll notice that some of the methods below are private overloads of the
544 // public ones declared above. The general pattern is that the public overload 544 // public ones declared above. The general pattern is that the public overload
545 // constructs a ScopedKernelLock before calling the corresponding private 545 // constructs a ScopedKernelLock before calling the corresponding private
546 // overload with the held ScopedKernelLock. 546 // overload with the held ScopedKernelLock.
547 547
548 virtual EntryKernel* GetEntryByHandle(const ScopedKernelLock& lock, 548 virtual EntryKernel* GetEntryByHandle(const ScopedKernelLock& lock,
549 int64 metahandle); 549 int64 metahandle);
550 550
551 virtual EntryKernel* GetEntryById(const ScopedKernelLock& lock, const Id& id); 551 virtual EntryKernel* GetEntryById(const ScopedKernelLock& lock, const Id& id);
552 552
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
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_
OLDNEW
« no previous file with comments | « sync/syncable/deferred_on_disk_directory_backing_store.cc ('k') | sync/syncable/directory_backing_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698