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
3// found in the LICENSE file.
4
5#include "sync/syncable/syncable_model_neutral_write_transaction.h"
6
7#include "sync/syncable/directory.h"
8
9namespace syncer {
10namespace syncable {
11
12ModelNeutralWriteTransaction::ModelNeutralWriteTransaction(
13    const tracked_objects::Location& location,
14    WriterTag writer, Directory* directory)
15    : BaseWriteTransaction(location,
16                           "ModelNeutralWriteTransaction",
17                           writer,
18                           directory) {
19  Lock();
20}
21
22ModelNeutralWriteTransaction::~ModelNeutralWriteTransaction() {
23  directory()->CheckInvariantsOnTransactionClose(this, modified_handles_);
24  HandleUnrecoverableErrorIfSet();
25  Unlock();
26}
27
28void ModelNeutralWriteTransaction::TrackChangesTo(const EntryKernel* entry) {
29  modified_handles_.insert(entry->ref(META_HANDLE));
30}
31
32}  // namespace syncer
33}  // namespace syncable
34