Home | History | Annotate | Download | only in syncable
      1 // Copyright 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_WRITE_TRANSACTION_INFO_H_
      6 #define SYNC_SYNCABLE_WRITE_TRANSACTION_INFO_H_
      7 
      8 #include "sync/syncable/entry_kernel.h"
      9 #include "sync/syncable/syncable_base_transaction.h"
     10 
     11 namespace syncer {
     12 namespace syncable {
     13 
     14 // A struct describing the changes made during a transaction.
     15 struct WriteTransactionInfo {
     16   WriteTransactionInfo(int64 id,
     17                        tracked_objects::Location location,
     18                        WriterTag writer,
     19                        ImmutableEntryKernelMutationMap mutations);
     20   WriteTransactionInfo();
     21   ~WriteTransactionInfo();
     22 
     23   // Caller owns the return value.
     24   base::DictionaryValue* ToValue(size_t max_mutations_size) const;
     25 
     26   int64 id;
     27   // If tracked_objects::Location becomes assignable, we can use that
     28   // instead.
     29   std::string location_string;
     30   WriterTag writer;
     31   ImmutableEntryKernelMutationMap mutations;
     32 };
     33 
     34 typedef
     35     Immutable<WriteTransactionInfo>
     36     ImmutableWriteTransactionInfo;
     37 
     38 }  // namespace syncable
     39 }  // namespace syncer
     40 
     41 #endif  // SYNC_SYNCABLE_WRITE_TRANSACTION_INFO_H_
     42