1 // Copyright (c) 2011 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.
5 #include "sql/transaction.h"
7 #include "base/logging.h"
8 #include "sql/connection.h"
12 Transaction::Transaction(Connection
* connection
)
13 : connection_(connection
),
17 Transaction::~Transaction() {
19 connection_
->RollbackTransaction();
22 bool Transaction::Begin() {
23 DCHECK(!is_open_
) << "Beginning a transaction twice!";
24 is_open_
= connection_
->BeginTransaction();
28 void Transaction::Rollback() {
29 DCHECK(is_open_
) << "Attempting to roll back a nonexistent transaction. "
30 << "Did you remember to call Begin() and check its return?";
32 connection_
->RollbackTransaction();
35 bool Transaction::Commit() {
36 DCHECK(is_open_
) << "Attempting to commit a nonexistent transaction. "
37 << "Did you remember to call Begin() and check its return?";
39 return connection_
->CommitTransaction();