libpqxx
isolation.hxx
1
13#ifndef PQXX_H_ISOLATION
14#define PQXX_H_ISOLATION
15
16#include "pqxx/compiler-public.hxx"
17#include "pqxx/compiler-internal-pre.hxx"
18
19#include "pqxx/util.hxx"
20
21namespace pqxx
22{
23
25
57{
58 // read_uncommitted,
62};
63
65template<isolation_level LEVEL> struct isolation_traits
66{
67 static constexpr isolation_level level() noexcept { return LEVEL; }
68 static constexpr const char *name() noexcept;
69};
70
71
72template<>
73inline constexpr const char *isolation_traits<read_committed>::name() noexcept
74 { return "READ COMMITTED"; }
75
76template<>
77inline constexpr const char *isolation_traits<repeatable_read>::name() noexcept
78 { return "REPEATABLE READ"; }
79
80template<>
81inline constexpr const char *isolation_traits<serializable>::name() noexcept
82 { return "SERIALIZABLE"; }
83
84}
85
86#include "pqxx/compiler-internal-post.hxx"
87#endif
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:26
isolation_level
Transaction isolation levels.
Definition: isolation.hxx:57
@ serializable
Definition: isolation.hxx:61
@ read_committed
Definition: isolation.hxx:59
@ repeatable_read
Definition: isolation.hxx:60
Traits class to describe an isolation level; primarly for libpqxx's own use.
Definition: isolation.hxx:66
static constexpr const char * name() noexcept
static constexpr isolation_level level() noexcept
Definition: isolation.hxx:67