OZO 「お象」
Boost.Asio and libpq based asynchronous PostgreSQL unofficial header-only C++17 client library.
transaction_options.h
1 #pragma once
2 
3 #include <boost/hana/optional.hpp>
4 #include <boost/hana/type.hpp>
5 #include <ozo/core/none.h>
6 #include <ozo/core/options.h>
7 #include <type_traits>
8 
9 namespace ozo {
10 
11 namespace hana = boost::hana;
12 
22  constexpr static hana::type<class serializable_tag> serializable{};
23  constexpr static hana::type<class repeatable_tag> repeatable_read{};
24  constexpr static hana::type<class read_committed_tag> read_committed{};
25  constexpr static hana::type<class read_uncommitted> read_uncommitted{};
26 };
27 
36  constexpr static hana::type<class read_write_tag> read_write{};
37  constexpr static hana::type<class read_only_tag> read_only{};
38 };
39 
48 template <typename V>
49 struct deferrable_mode : V {
50  using base = V;
51 
52  constexpr auto operator!() const noexcept {
54  }
55 };
56 
57 constexpr deferrable_mode<std::true_type> deferrable;
58 
67  constexpr static option<class mode_tag> mode{};
69 };
70 
71 } // ozo
ozo::transaction_mode
'type enum' for transaction modes supported by PostgreSQL
Definition: transaction_options.h:35
ozo::transaction_mode::read_only
constexpr static hana::type< class read_only_tag > read_only
READ ONLY transaction mode.
Definition: transaction_options.h:37
ozo::isolation_level::repeatable_read
constexpr static hana::type< class repeatable_tag > repeatable_read
REPEATABLE READ isolation level.
Definition: transaction_options.h:23
ozo::transaction_mode::read_write
constexpr static hana::type< class read_write_tag > read_write
READ WRITE transaction mode.
Definition: transaction_options.h:36
ozo::isolation_level::read_committed
constexpr static hana::type< class read_committed_tag > read_committed
READ COMMITTED isolation level.
Definition: transaction_options.h:24
ozo::deferrable_mode
transaction deferrability indicator
Definition: transaction_options.h:49
ozo::transaction_options::mode
constexpr static option< class mode_tag > mode
Transaction mode, see ozo::transaction_mode.
Definition: transaction_options.h:67
ozo::transaction_options
options for transactions
Definition: transaction_options.h:65
ozo::isolation_level
'type enum' for transaction isolation levels supported by PostgreSQL
Definition: transaction_options.h:21
ozo::option< class isolation_level_tag >
ozo::isolation_level::read_uncommitted
constexpr static hana::type< class read_uncommitted > read_uncommitted
READ UNCOMMITTED isolation level (treated like READ COMMITTED by PostgreSQL)
Definition: transaction_options.h:25
ozo::isolation_level::serializable
constexpr static hana::type< class serializable_tag > serializable
SERIALIZABLE isolation level.
Definition: transaction_options.h:22
ozo::transaction_options::deferrability
constexpr static option< class deferrability_tag > deferrability
Transaction deferrability, see ozo::deferrable_mode.
Definition: transaction_options.h:68