libimgdoc2
Loading...
Searching...
No Matches
IDatabaseTransaction.h
1// SPDX-FileCopyrightText: 2023 Carl Zeiss Microscopy GmbH
2//
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
7namespace imgdoc2
8{
16 {
17 public:
20 virtual void BeginTransaction() = 0;
21
23 virtual void CommitTransaction() = 0;
24
25
27 virtual void RollbackTransaction() = 0;
28 virtual ~IDatabaseTransaction() = default;
29 public:
30 // no copy and no move (-> https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c21-if-you-define-or-delete-any-copy-move-or-destructor-function-define-or-delete-them-all )
31 IDatabaseTransaction() = default;
32 IDatabaseTransaction(const IDatabaseTransaction&) = delete; // copy constructor
33 IDatabaseTransaction& operator=(const IDatabaseTransaction&) = delete; // copy assignment
34 IDatabaseTransaction(IDatabaseTransaction&&) = delete; // move constructor
35 IDatabaseTransaction& operator=(IDatabaseTransaction&&) = delete; // move assignment
36 };
37}
Interface for controlling database transactions.
Definition: IDatabaseTransaction.h:16
virtual void CommitTransaction()=0
Commits a pending transaction.
virtual void RollbackTransaction()=0
Rolls back a pending transaction.
virtual void BeginTransaction()=0