Chromium Code Reviews| Index: chrome/browser/sync/engine/write_transaction.h |
| diff --git a/chrome/browser/sync/engine/write_transaction.h b/chrome/browser/sync/engine/write_transaction.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0d648ad3b0699400cb59caba10791d67601f36d2 |
| --- /dev/null |
| +++ b/chrome/browser/sync/engine/write_transaction.h |
| @@ -0,0 +1,59 @@ |
| +// Copyright (c) 2011 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 CHROME_BROWSER_SYNC_ENGINE_WRITE_TRANSACTION_H_ |
| +#define CHROME_BROWSER_SYNC_ENGINE_WRITE_TRANSACTION_H_ |
| + |
| +#include "base/basictypes.h" |
| +#include "chrome/browser/sync/engine/base_transaction.h" |
| + |
| +namespace syncable { |
| +class BaseTransaction; |
| +class WriteTransaction; |
| +} |
|
tim (not reviewing)
2011/08/15 22:53:55
end namespace decls with // namespace foo
rlarocque
2011/08/16 18:12:46
Done.
|
| + |
| +namespace tracked_objects { |
| +class Location; |
|
tim (not reviewing)
2011/08/15 22:53:55
same ns comment as before
rlarocque
2011/08/16 18:12:46
Still don't understand it.
On 2011/08/15 22:53:55
|
| +} // namespace tracked_objects |
| + |
| +namespace sync_api { |
| + |
| +// TODO(akalin): Make ReadTransaction/WriteTransaction take a Location |
|
tim (not reviewing)
2011/08/15 22:53:55
remove todo
rlarocque
2011/08/16 18:12:46
Done.
|
| +// parameter. |
| + |
| +// Sync API's WriteTransaction is a read/write BaseTransaction. It wraps |
| +// a syncable::WriteTransaction. |
| +// |
| +// NOTE: Only a single model type can be mutated for a given |
| +// WriteTransaction. |
| +class WriteTransaction : public BaseTransaction { |
| + public: |
| + // Start a new read/write transaction. |
| + WriteTransaction(const tracked_objects::Location& from_here, |
| + UserShare* share); |
| + virtual ~WriteTransaction(); |
| + |
| + // Provide access to the syncable.h transaction from the API WriteNode. |
| + virtual syncable::BaseTransaction* GetWrappedTrans() const; |
| + syncable::WriteTransaction* GetWrappedWriteTrans() { return transaction_; } |
| + |
| + protected: |
| + WriteTransaction() {} |
| + |
| + void SetTransaction(syncable::WriteTransaction* trans) { |
| + transaction_ = trans; |
| + } |
| + |
| + private: |
| + void* operator new(size_t size); // Transaction is meant for stack use only. |
| + |
| + // The underlying syncable object which this class wraps. |
| + syncable::WriteTransaction* transaction_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(WriteTransaction); |
| +}; |
| + |
| +} // namespace sync_api |
| + |
| +#endif // CHROME_BROWSER_SYNC_ENGINE_WRITE_TRANSACTION_H_ |