| Index: sync/syncable/directory.h
|
| diff --git a/sync/syncable/directory.h b/sync/syncable/directory.h
|
| index 170d7b66322376fa78145812cc99f127e8003ac5..fc0d510376fe9bed14f46289ee7bbc9c32d7b97b 100644
|
| --- a/sync/syncable/directory.h
|
| +++ b/sync/syncable/directory.h
|
| @@ -420,29 +420,6 @@ class SYNC_EXPORT Directory {
|
| ModelType type,
|
| AttachmentIdSet* id_set);
|
|
|
| - protected: // for friends, mainly used by Entry constructors
|
| - virtual EntryKernel* GetEntryByHandle(int64 handle);
|
| - virtual EntryKernel* GetEntryByHandle(int64 metahandle,
|
| - ScopedKernelLock* lock);
|
| - virtual EntryKernel* GetEntryById(const Id& id);
|
| - EntryKernel* GetEntryByServerTag(const std::string& tag);
|
| - virtual EntryKernel* GetEntryByClientTag(const std::string& tag);
|
| - bool ReindexId(BaseWriteTransaction* trans, EntryKernel* const entry,
|
| - const Id& new_id);
|
| - bool ReindexParentId(BaseWriteTransaction* trans, EntryKernel* const entry,
|
| - const Id& new_parent_id);
|
| - // Update the attachment index for |metahandle| removing it from the index
|
| - // under |old_metadata| entries and add it under |new_metadata| entries.
|
| - void UpdateAttachmentIndex(const int64 metahandle,
|
| - const sync_pb::AttachmentMetadata& old_metadata,
|
| - const sync_pb::AttachmentMetadata& new_metadata);
|
| - void ClearDirtyMetahandles();
|
| -
|
| - DirOpenResult OpenImpl(
|
| - const std::string& name,
|
| - DirectoryChangeDelegate* delegate,
|
| - const WeakHandle<TransactionObserver>& transaction_observer);
|
| -
|
| private:
|
| struct Kernel {
|
| // |delegate| must not be NULL. |transaction_observer| must be
|
| @@ -543,9 +520,57 @@ class SYNC_EXPORT Directory {
|
| const WeakHandle<TransactionObserver> transaction_observer;
|
| };
|
|
|
| - // These private versions expect the kernel lock to already be held
|
| - // before calling.
|
| - EntryKernel* GetEntryById(const Id& id, ScopedKernelLock* const lock);
|
| + // You'll notice that some of these methods have two forms. One that takes a
|
| + // ScopedKernelLock and one that doesn't. The general pattern is that those
|
| + // without a ScopedKernelLock parameter construct one internally before
|
| + // calling the form that takes one.
|
| +
|
| + virtual EntryKernel* GetEntryByHandle(int64 handle);
|
| + virtual EntryKernel* GetEntryByHandle(const ScopedKernelLock& lock,
|
| + int64 metahandle);
|
| +
|
| + virtual EntryKernel* GetEntryById(const Id& id);
|
| + virtual EntryKernel* GetEntryById(const ScopedKernelLock& lock, const Id& id);
|
| +
|
| + EntryKernel* GetEntryByServerTag(const std::string& tag);
|
| + virtual EntryKernel* GetEntryByClientTag(const std::string& tag);
|
| +
|
| + // For new entry creation only
|
| + bool InsertEntry(BaseWriteTransaction* trans, EntryKernel* entry);
|
| + bool InsertEntry(const ScopedKernelLock& lock,
|
| + BaseWriteTransaction* trans,
|
| + EntryKernel* entry);
|
| +
|
| + bool ReindexId(BaseWriteTransaction* trans, EntryKernel* const entry,
|
| + const Id& new_id);
|
| +
|
| + bool ReindexParentId(BaseWriteTransaction* trans, EntryKernel* const entry,
|
| + const Id& new_parent_id);
|
| +
|
| + // Update the attachment index for |metahandle| removing it from the index
|
| + // under |old_metadata| entries and add it under |new_metadata| entries.
|
| + void UpdateAttachmentIndex(const int64 metahandle,
|
| + const sync_pb::AttachmentMetadata& old_metadata,
|
| + const sync_pb::AttachmentMetadata& new_metadata);
|
| +
|
| + // Remove each of |metahandle|'s attachment ids from index_by_attachment_id.
|
| + void RemoveFromAttachmentIndex(
|
| + const ScopedKernelLock& lock,
|
| + const int64 metahandle,
|
| + const sync_pb::AttachmentMetadata& attachment_metadata);
|
| +
|
| + // Add each of |metahandle|'s attachment ids to the index_by_attachment_id.
|
| + void AddToAttachmentIndex(
|
| + const ScopedKernelLock& lock,
|
| + const int64 metahandle,
|
| + const sync_pb::AttachmentMetadata& attachment_metadata);
|
| +
|
| + void ClearDirtyMetahandles(const ScopedKernelLock& lock);
|
| +
|
| + DirOpenResult OpenImpl(
|
| + const std::string& name,
|
| + DirectoryChangeDelegate* delegate,
|
| + const WeakHandle<TransactionObserver>& transaction_observer);
|
|
|
| // A helper that implements the logic of checking tree invariants.
|
| bool CheckTreeInvariants(syncable::BaseTransaction* trans,
|
| @@ -571,11 +596,6 @@ class SYNC_EXPORT Directory {
|
| // processed |snapshot| failed, for example, due to no disk space.
|
| void HandleSaveChangesFailure(const SaveChangesSnapshot& snapshot);
|
|
|
| - // For new entry creation only
|
| - bool InsertEntry(BaseWriteTransaction* trans,
|
| - EntryKernel* entry, ScopedKernelLock* lock);
|
| - bool InsertEntry(BaseWriteTransaction* trans, EntryKernel* entry);
|
| -
|
| // Used by CheckTreeInvariants
|
| void GetAllMetaHandles(BaseTransaction* trans, MetahandleSet* result);
|
| bool SafeToPurgeFromMemory(WriteTransaction* trans,
|
| @@ -588,27 +608,16 @@ class SYNC_EXPORT Directory {
|
| std::deque<const OrderedChildSet*>* child_sets) const;
|
|
|
| // Append the handles of the children of |parent_id| to |result|.
|
| - void AppendChildHandles(
|
| - const ScopedKernelLock& lock,
|
| - const Id& parent_id, Directory::Metahandles* result);
|
| + void AppendChildHandles(const ScopedKernelLock& lock,
|
| + const Id& parent_id,
|
| + Directory::Metahandles* result);
|
|
|
| // Helper methods used by PurgeDisabledTypes.
|
| void UnapplyEntry(EntryKernel* entry);
|
| - void DeleteEntry(bool save_to_journal,
|
| + void DeleteEntry(const ScopedKernelLock& lock,
|
| + bool save_to_journal,
|
| EntryKernel* entry,
|
| - EntryKernelSet* entries_to_journal,
|
| - const ScopedKernelLock& lock);
|
| -
|
| - // Remove each of |metahandle|'s attachment ids from index_by_attachment_id.
|
| - void RemoveFromAttachmentIndex(
|
| - const int64 metahandle,
|
| - const sync_pb::AttachmentMetadata& attachment_metadata,
|
| - const ScopedKernelLock& lock);
|
| - // Add each of |metahandle|'s attachment ids to the index_by_attachment_id.
|
| - void AddToAttachmentIndex(
|
| - const int64 metahandle,
|
| - const sync_pb::AttachmentMetadata& attachment_metadata,
|
| - const ScopedKernelLock& lock);
|
| + EntryKernelSet* entries_to_journal);
|
|
|
| // A private version of the public GetMetaHandlesOfType for when you already
|
| // have a ScopedKernelLock.
|
|
|