1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef SYNC_SYNCABLE_PARENT_CHILD_INDEX_UPDATER_H_ 6 #define SYNC_SYNCABLE_PARENT_CHILD_INDEX_UPDATER_H_ 7 8 #include "base/basictypes.h" 9 #include "sync/base/sync_export.h" 10 11 namespace syncer { 12 namespace syncable { 13 14 class ParentChildIndex; 15 class ScopedKernelLock; 16 struct EntryKernel; 17 18 // Temporarily removes an item from the ParentChildIndex and re-adds it this 19 // object goes out of scope. 20 class ScopedParentChildIndexUpdater { 21 public: 22 ScopedParentChildIndexUpdater(ScopedKernelLock& proof_of_lock, 23 EntryKernel* entry, 24 ParentChildIndex* index); 25 ~ScopedParentChildIndexUpdater(); 26 27 private: 28 EntryKernel* entry_; 29 ParentChildIndex* index_; 30 31 DISALLOW_COPY_AND_ASSIGN(ScopedParentChildIndexUpdater); 32 }; 33 34 } // namespace syncer 35 } // namespace syncable 36 37 #endif // SYNC_SYNCABLE_PARENT_CHILD_INDEX_UPDATER_H_ 38