libwreport
3.40
wreport
options.h
Go to the documentation of this file.
1
#ifndef WREPORT_OPTIONS_H
2
#define WREPORT_OPTIONS_H
3
4
#include <cstdint>
5
#include <wreport/fwd.h>
6
24
#define WREPORT_OPTIONS_HAS_VAR_CLAMP_DOMAIN_ERRORS
25
#define WREPORT_OPTIONS_HAS_VAR_HOOK_DOMAIN_ERRORS
26
27
namespace
wreport
{
28
namespace
options {
29
36
extern
thread_local
bool
var_silent_domain_errors;
37
45
extern
thread_local
bool
var_clamp_domain_errors;
46
51
struct
DomainErrorHook
52
{
53
virtual
~
DomainErrorHook
();
54
virtual
void
handle_domain_error_int(
Var
& var, int32_t val) = 0;
55
virtual
void
handle_domain_error_double(
Var
& var,
double
val) = 0;
56
};
57
65
extern
thread_local
DomainErrorHook
*
var_hook_domain_errors
;
66
67
class
MasterTableVersionOverride
68
{
69
int
value;
70
71
public
:
73
static
const
int
NONE
= 0;
75
static
const
int
NEWEST
= -1;
76
78
MasterTableVersionOverride
();
79
81
// cppcheck-suppress noExplicitConstructor; This is intending to pose as an
82
// integer value
83
MasterTableVersionOverride
(
int
value);
84
85
~
MasterTableVersionOverride
() =
default
;
86
MasterTableVersionOverride
(
const
MasterTableVersionOverride
&) =
default
;
87
MasterTableVersionOverride
(
MasterTableVersionOverride
&&) =
default
;
88
MasterTableVersionOverride
&
89
operator=(
const
MasterTableVersionOverride
&) =
default
;
90
MasterTableVersionOverride
&
91
operator=(
MasterTableVersionOverride
&&) =
default
;
92
94
operator
int()
const
{
return
value; }
95
};
96
101
extern
thread_local MasterTableVersionOverride
102
var_master_table_version_override;
103
119
template
<
typename
T,
typename
T1 = T>
struct
LocalOverride
120
{
121
T old_value;
122
T& param;
123
124
LocalOverride
(T& param, T1 new_value) : old_value(param), param(param)
125
{
126
param = new_value;
127
}
128
~
LocalOverride
() { param = old_value; }
129
};
130
131
template
<
typename
T,
typename
T1 = T>
132
static
inline
LocalOverride<T>
local_override(T& param, T1 new_value)
133
{
134
return
LocalOverride<T>
(param, new_value);
135
}
136
137
}
// namespace options
138
}
// namespace wreport
139
140
#endif
wreport::Var
A physical variable.
Definition:
var.h:25
wreport::options::MasterTableVersionOverride
Definition:
options.h:68
wreport::options::MasterTableVersionOverride::MasterTableVersionOverride
MasterTableVersionOverride(int value)
Initialize from a value.
wreport::options::MasterTableVersionOverride::NEWEST
static const int NEWEST
Use the latest available master table number.
Definition:
options.h:75
wreport::options::MasterTableVersionOverride::MasterTableVersionOverride
MasterTableVersionOverride()
Initialize from environment.
wreport::options::MasterTableVersionOverride::NONE
static const int NONE
No override.
Definition:
options.h:73
wreport
String functions.
Definition:
benchmark.h:13
wreport::options::var_hook_domain_errors
thread_local DomainErrorHook * var_hook_domain_errors
If set, delegate handling domain errors to this object.
wreport::options::DomainErrorHook
Interface for a callback hook system to delegate handling domain errors to the code using wreport.
Definition:
options.h:52
wreport::options::LocalOverride
Temporarily override a variable while this object is in scope.
Definition:
options.h:120
Generated on Mon May 26 2025 00:00:00 for libwreport by
1.9.1