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_SYNCABLE_READ_TRANSACTION_H_
      6 #define SYNC_SYNCABLE_SYNCABLE_READ_TRANSACTION_H_
      7 
      8 #include "sync/base/sync_export.h"
      9 #include "sync/syncable/syncable_base_transaction.h"
     10 
     11 namespace syncer {
     12 class ReadTransaction;
     13 namespace syncable {
     14 
     15 // Locks db in constructor, unlocks in destructor.
     16 class SYNC_EXPORT ReadTransaction : public BaseTransaction {
     17  public:
     18   ReadTransaction(const tracked_objects::Location& from_here,
     19                   Directory* directory);
     20 
     21   virtual ~ReadTransaction();
     22 
     23  protected:  // Don't allow creation on heap, except by sync API wrapper.
     24   friend class syncer::ReadTransaction;
     25   void* operator new(size_t size) { return (::operator new)(size); }
     26 
     27   DISALLOW_COPY_AND_ASSIGN(ReadTransaction);
     28 };
     29 
     30 }  // namespace syncable
     31 }  // namespace syncer
     32 
     33 #endif  // SYNC_SYNCABLE_SYNCABLE_READ_TRANSACTION_H_
     34