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