annotate Orthanc/Core/SQLite/Transaction.h @ 51:7b4b8b82112e

fix
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 30 Jul 2015 15:56:27 +0200
parents 15acbf5e7545
children 3809121c3290
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 /**
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 * Orthanc - A Lightweight, RESTful DICOM Store
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 *
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 * Copyright (C) 2012-2015 Sebastien Jodogne <s.jodogne@gmail.com>,
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 * Medical Physics Department, CHU of Liege, Belgium
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 *
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 * Copyright (c) 2012 The Chromium Authors. All rights reserved.
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 *
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 * Redistribution and use in source and binary forms, with or without
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 * modification, are permitted provided that the following conditions are
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 * met:
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 *
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 * * Redistributions of source code must retain the above copyright
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 * notice, this list of conditions and the following disclaimer.
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 * * Redistributions in binary form must reproduce the above
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 * copyright notice, this list of conditions and the following disclaimer
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 * in the documentation and/or other materials provided with the
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 * distribution.
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 * * Neither the name of Google Inc., the name of the CHU of Liege,
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 * nor the names of its contributors may be used to endorse or promote
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 * products derived from this software without specific prior written
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 * permission.
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 *
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 **/
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 #pragma once
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 #include "Connection.h"
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 #include "ITransaction.h"
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 namespace Orthanc
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 {
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 namespace SQLite
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 {
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 class Transaction : public ITransaction
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 {
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 private:
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 Connection& connection_;
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52 // True when the transaction is open, false when it's already been committed
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53 // or rolled back.
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 bool isOpen_;
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 public:
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 explicit Transaction(Connection& connection);
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 virtual ~Transaction();
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 // Returns true when there is a transaction that has been successfully begun.
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 bool IsOpen() const { return isOpen_; }
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 virtual void Begin();
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 virtual void Rollback();
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 virtual void Commit();
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 };
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 }
15acbf5e7545 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 }