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 11namespace syncer { 12namespace syncable { 13 14class ParentChildIndex; 15class ScopedKernelLock; 16struct EntryKernel; 17 18// Temporarily removes an item from the ParentChildIndex and re-adds it this 19// object goes out of scope. 20class 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