Index: sync/syncable/scoped_parent_child_index_updater.cc |
diff --git a/sync/syncable/scoped_parent_child_index_updater.cc b/sync/syncable/scoped_parent_child_index_updater.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0dc3e95332399d1a0242d24d2d7cf62eee6621e1 |
--- /dev/null |
+++ b/sync/syncable/scoped_parent_child_index_updater.cc |
@@ -0,0 +1,28 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "sync/syncable/scoped_parent_child_index_updater.h" |
+ |
+#include "sync/syncable/parent_child_index.h" |
+ |
+namespace syncer { |
+namespace syncable { |
+ |
+ScopedParentChildIndexUpdater::ScopedParentChildIndexUpdater( |
+ ScopedKernelLock& proof_of_lock, |
+ EntryKernel* entry, |
+ ParentChildIndex* index) : entry_(entry), index_(index) { |
+ if (ParentChildIndex::ShouldInclude(entry_)) { |
+ index_->Remove(entry_); |
+ } |
+} |
+ |
+ScopedParentChildIndexUpdater::~ScopedParentChildIndexUpdater() { |
+ if (ParentChildIndex::ShouldInclude(entry_)) { |
+ index_->Insert(entry_); |
+ } |
+} |
+ |
+} // namespace syncer |
+} // namespace syncable |