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 #include "sync/internal_api/public/read_transaction.h" 6 7 #include "sync/syncable/directory.h" 8 #include "sync/syncable/syncable_read_transaction.h" 9 10 namespace syncer { 11 12 ////////////////////////////////////////////////////////////////////////// 13 // ReadTransaction member definitions 14 ReadTransaction::ReadTransaction(const tracked_objects::Location& from_here, 15 UserShare* share) 16 : BaseTransaction(share), 17 transaction_(NULL), 18 close_transaction_(true) { 19 transaction_ = new syncable::ReadTransaction(from_here, 20 share->directory.get()); 21 } 22 23 ReadTransaction::ReadTransaction(UserShare* share, 24 syncable::BaseTransaction* trans) 25 : BaseTransaction(share), 26 transaction_(trans), 27 close_transaction_(false) {} 28 29 ReadTransaction::~ReadTransaction() { 30 if (close_transaction_) { 31 delete transaction_; 32 } 33 } 34 35 syncable::BaseTransaction* ReadTransaction::GetWrappedTrans() const { 36 return transaction_; 37 } 38 39 int64 ReadTransaction::GetModelVersion(ModelType type) { 40 return transaction_->directory()->GetTransactionVersion(type); 41 } 42 43 } // namespace syncer 44