9#ifndef HEADER_SQLITEPP_GLOBAL_IFACE_INCLUDED
10#define HEADER_SQLITEPP_GLOBAL_IFACE_INCLUDED
12#include "exception_iface.hpp"
56 template<
int Code,
class ...Args>
59 static void apply(Args && ...args)
67 template<
int Code>
struct config_mapping;
88 template<
int Code,
class ...Args>
94 internal::config_mapping<Code>::type::apply(
std::forward<
decltype(args)>(args)...)
107 SQLITEPP_SUPPRESS_SILLY_VARARG_WARNING_BEGIN
109 #if SQLITEPP_USE_VARARG_POUND_POUND_TRICK
113 #define SQLITEPP_DEFINE_OPTION_0(code) \
114 template<> struct config_mapping<code> { using type = config_option<code>; };
115 #define SQLITEPP_DEFINE_OPTION_N(code, ...) \
116 template<> struct config_mapping<code> { using type = config_option<code, ##__VA_ARGS__>; };
120 #define SQLITEPP_DEFINE_OPTION(code, ...) \
121 template<> struct config_mapping<code> { using type = config_option<code __VA_OPT__(,) __VA_ARGS__>; };
123 #define SQLITEPP_DEFINE_OPTION_N(code, ...) SQLITEPP_DEFINE_OPTION(code __VA_OPT__(,) __VA_ARGS__)
124 #define SQLITEPP_DEFINE_OPTION_0(code) SQLITEPP_DEFINE_OPTION_N(code)
130 SQLITEPP_DEFINE_OPTION_0( SQLITE_CONFIG_SINGLETHREAD );
131 SQLITEPP_DEFINE_OPTION_0( SQLITE_CONFIG_MULTITHREAD );
132 SQLITEPP_DEFINE_OPTION_0( SQLITE_CONFIG_SERIALIZED );
135 #ifdef SQLITE_CONFIG_SMALL_MALLOC
136 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_SMALL_MALLOC,
int);
138 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_MEMSTATUS,
int);
139 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_PAGECACHE,
void *,
int,
int);
140 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_HEAP,
void *,
int,
int);
143 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_LOOKASIDE,
int,
int);
146 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_LOG,
void (*)(
void*,
int,
const char *),
void *);
147 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_URI,
int);
148 #ifdef SQLITE_CONFIG_COVERING_INDEX_SCAN
149 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_COVERING_INDEX_SCAN,
int);
151 #ifdef SQLITE_CONFIG_SQLLOG
152 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_SQLLOG,
void (*)(
void *,
sqlite3 *,
const char *,
int),
void *);
154 #ifdef SQLITE_CONFIG_MMAP_SIZE
155 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_MMAP_SIZE, int64_t, int64_t);
157 #ifdef SQLITE_CONFIG_WIN32_HEAPSIZE
158 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_WIN32_HEAPSIZE,
int);
160 #ifdef SQLITE_CONFIG_PCACHE_HDRSZ
161 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_PCACHE_HDRSZ,
int *);
163 #ifdef SQLITE_CONFIG_PMASZ
164 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_PMASZ,
unsigned int);
166 #ifdef SQLITE_CONFIG_STMTJRNL_SPILL
167 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_STMTJRNL_SPILL,
int);
169 #ifdef SQLITE_CONFIG_SORTERREF_SIZE
170 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_SORTERREF_SIZE,
int);
172 #ifdef SQLITE_CONFIG_MEMDB_MAXSIZE
173 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_MEMDB_MAXSIZE, int64_t);
175 #ifdef SQLITE_CONFIG_ROWID_IN_VIEW
176 SQLITEPP_DEFINE_OPTION_N( SQLITE_CONFIG_ROWID_IN_VIEW,
int);
181 #undef SQLITEPP_DEFINE_OPTION_0
182 #undef SQLITEPP_DEFINE_OPTION_N
184 SQLITEPP_SUPPRESS_SILLY_VARARG_WARNING_END
Exception used to report any SQLite errors.
Definition exception_iface.hpp:166
void initialize()
Initialize the SQLite library.
Definition global_iface.hpp:33
auto config(Args &&...args) -> void
Configures SQLite library.
Definition global_iface.hpp:90
void shutdown() noexcept
Deinitialize the SQLite library.
Definition global_iface.hpp:47
ThinSQLite++ namespace.
Definition backup_iface.hpp:17