libdballe
9.11
dballe
fortran
traced.h
1
#ifndef DBALLE_FORTRAN_TRACED_H
2
#define DBALLE_FORTRAN_TRACED_H
3
4
#include <dballe/fortran/api.h>
5
#include <memory>
6
7
namespace
dballe {
8
namespace
fortran {
9
10
struct
Tracer
11
{
12
virtual
~Tracer
() {}
13
14
virtual
std::unique_ptr<API> wrap_api(
int
handle, std::unique_ptr<API> api) = 0;
15
16
std::unique_ptr<API> begin(
int
dbahandle,
int
handle,
const
DBConnectOptions
& options,
const
char
* anaflag,
const
char
* dataflag,
const
char
* attrflag);
17
std::unique_ptr<API> begin_messages(
int
handle,
const
char
* filename,
const
char
* mode,
const
char
* type);
18
19
virtual
void
log_connect_url(
int
handle,
const
char
* chosen_dsn) = 0;
20
virtual
void
log_disconnect(
int
handle) = 0;
21
virtual
void
log_begin(
int
dbahandle,
int
handle,
const
char
* anaflag,
const
char
* dataflag,
const
char
* attrflag) = 0;
22
virtual
void
log_begin_messages(
int
handle,
const
char
* filename,
const
char
* mode,
const
char
* type) = 0;
23
24
static
std::unique_ptr<Tracer> create();
25
};
26
27
struct
FileTracer;
28
29
struct
TracedAPI :
public
API
30
{
31
FileTracer& tracer;
32
std::string name;
33
std::unique_ptr<API> api;
34
35
TracedAPI(FileTracer& tracer,
const
std::string& name, std::unique_ptr<API> api);
36
37
void
reinit_db(
const
char
* repinfofile=0)
override
;
38
void
remove_all()
override
;
39
int
enqi(
const
char
* param)
override
;
40
signed
char
enqb(
const
char
* param)
override
;
41
float
enqr(
const
char
* param)
override
;
42
double
enqd(
const
char
* param)
override
;
43
bool
enqc(
const
char
* param,
char
* res,
unsigned
res_len)
override
;
44
void
seti(
const
char
* param,
int
value)
override
;
45
void
setb(
const
char
* param,
signed
char
value)
override
;
46
void
setr(
const
char
* param,
float
value)
override
;
47
void
setd(
const
char
* param,
double
value)
override
;
48
void
setc(
const
char
* param,
const
char
* value)
override
;
49
void
set_station_context()
override
;
50
void
enqlevel(
int
& ltype1,
int
& l1,
int
& ltype2,
int
& l2)
override
;
51
void
setlevel(
int
ltype1,
int
l1,
int
ltype2,
int
l2)
override
;
52
void
enqtimerange(
int
& pind,
int
& p1,
int
& p2)
override
;
53
void
settimerange(
int
pind,
int
p1,
int
p2)
override
;
54
void
enqdate(
int
& year,
int
& month,
int
& day,
int
& hour,
int
& min,
int
& sec)
override
;
55
void
setdate(
int
year,
int
month,
int
day,
int
hour,
int
min,
int
sec)
override
;
56
void
setdatemin(
int
year,
int
month,
int
day,
int
hour,
int
min,
int
sec)
override
;
57
void
setdatemax(
int
year,
int
month,
int
day,
int
hour,
int
min,
int
sec)
override
;
58
void
unset(
const
char
* param)
override
;
59
void
unsetall()
override
;
60
void
unsetb()
override
;
61
int
query_stations()
override
;
62
void
next_station()
override
;
63
int
query_data()
override
;
64
wreport::Varcode
next_data()
override
;
65
void
insert_data()
override
;
66
void
remove_data()
override
;
67
int
query_attributes()
override
;
68
const
char
* next_attribute()
override
;
69
void
insert_attributes()
override
;
70
void
remove_attributes()
override
;
71
void
messages_open_input(
const
char
* filename,
const
char
* mode, Encoding format,
bool
simplified=
true
)
override
;
72
void
messages_open_output(
const
char
* filename,
const
char
* mode, Encoding format)
override
;
73
bool
messages_read_next()
override
;
74
void
messages_write_next(
const
char
* template_name=0)
override
;
75
const
char
* describe_level(
int
ltype1,
int
l1,
int
ltype2,
int
l2)
override
;
76
const
char
* describe_timerange(
int
ptype,
int
p1,
int
p2)
override
;
77
const
char
* describe_var(
const
char
* varcode,
const
char
* value)
override
;
78
void
commit()
override
;
79
};
80
81
}
82
}
83
84
#endif
dballe::DBConnectOptions
Options controlling how to connect to a database.
Definition
db.h:18
wreport::Varcode
uint16_t Varcode
dballe::fortran::API
C++ implementation for the Fortran API.
Definition
api.h:16
dballe::fortran::Tracer
Definition
traced.h:11
Generated by
1.13.2