libdballe
9.11
dballe
db
v7
db/v7/fwd.h
1
#ifndef DBALLE_DB_V7_FWD_H
2
#define DBALLE_DB_V7_FWD_H
3
4
namespace
dballe
{
5
namespace
db {
6
namespace
v7 {
7
8
struct
Transaction;
9
struct
QueryBuilder;
10
struct
StationQueryBuilder;
11
struct
DataQueryBuilder;
12
struct
SummaryQueryBuilder;
13
struct
IdQueryBuilder;
14
struct
DB;
15
struct
Repinfo;
16
struct
Station;
17
struct
LevTr;
18
struct
LevTrEntry;
19
struct
SQLTrace;
20
struct
Driver;
21
22
namespace
cursor {
23
struct
Stations;
24
struct
StationData;
25
struct
Data;
26
struct
Summary;
27
}
28
29
namespace
batch {
30
struct
Station;
31
struct
StationDatum;
32
struct
MeasuredDatum;
33
}
34
35
namespace
trace {
36
struct
Step;
37
struct
Transaction;
38
}
39
44
template
<
typename
Step=trace::Step>
45
class
Tracer
46
{
47
protected
:
48
Step* step;
49
50
public
:
51
Tracer
() : step(
nullptr
) {}
52
Tracer
(Step* step) : step(step) {}
53
Tracer
(
const
Tracer
&) =
delete
;
54
Tracer
(
Tracer
&& o)
55
: step(o.step)
56
{
57
o.step =
nullptr
;
58
}
59
Tracer
& operator=(
const
Tracer
&) =
delete
;
60
Tracer
& operator=(
Tracer
&&) =
delete
;
61
~
Tracer
()
62
{
63
if
(step) step->done();
64
}
65
void
reset(Step* step)
66
{
67
this->step = step;
68
}
69
void
done()
70
{
71
if
(step) step->done();
72
step =
nullptr
;
73
}
74
Step* operator->() {
return
step; }
75
operator
bool()
const
{
return
step; }
76
};
77
78
}
79
}
80
}
81
82
#endif
dballe
Definition:
cmdline.h:18
dballe::db::v7::Tracer
Smart pointer for trace::Step objects, which calls done() when going out of scope.
Definition:
db/v7/fwd.h:45
Generated by
1.8.14