// Copyright 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SYNC_SYNCABLE_SYNCABLE_READ_TRANSACTION_H_ #define SYNC_SYNCABLE_SYNCABLE_READ_TRANSACTION_H_ #include #include "base/macros.h" #include "sync/base/sync_export.h" #include "sync/syncable/syncable_base_transaction.h" namespace syncer { class ReadTransaction; namespace syncable { // Locks db in constructor, unlocks in destructor. class SYNC_EXPORT ReadTransaction : public BaseTransaction { public: ReadTransaction(const tracked_objects::Location& from_here, Directory* directory); ~ReadTransaction() override; protected: // Don't allow creation on heap, except by sync API wrapper. void* operator new(size_t size) { return (::operator new)(size); } private: friend class syncer::ReadTransaction; DISALLOW_COPY_AND_ASSIGN(ReadTransaction); }; } // namespace syncable } // namespace syncer #endif // SYNC_SYNCABLE_SYNCABLE_READ_TRANSACTION_H_