libdballe
8.6
dballe
fortran
api.h
1
#ifndef DBALLE_FORTRAN_API_H
2
#define DBALLE_FORTRAN_API_H
3
4
#include <dballe/fwd.h>
5
#include <
wreport/varinfo.h
>
6
7
namespace
dballe {
8
namespace
fortran {
9
15
struct
API
16
{
17
static
const
signed
char
missing_byte;
18
static
const
int
missing_int;
19
static
const
float
missing_float;
20
static
const
double
missing_double;
21
22
virtual
~
API
() {}
23
24
virtual
void
reinit_db(
const
char
* repinfofile=
nullptr
) = 0;
25
virtual
void
remove_all() = 0;
26
virtual
int
enqi(
const
char
* param) = 0;
27
virtual
signed
char
enqb(
const
char
* param) = 0;
28
virtual
float
enqr(
const
char
* param) = 0;
29
virtual
double
enqd(
const
char
* param) = 0;
30
virtual
bool
enqc(
const
char
* param,
char
* res,
unsigned
res_len) = 0;
31
virtual
void
seti(
const
char
* param,
int
value) = 0;
32
virtual
void
setb(
const
char
* param,
signed
char
value) = 0;
33
virtual
void
setr(
const
char
* param,
float
value) = 0;
34
virtual
void
setd(
const
char
* param,
double
value) = 0;
35
virtual
void
setc(
const
char
* param,
const
char
* value) = 0;
36
virtual
void
set_station_context() = 0;
37
virtual
void
enqlevel(
int
& ltype1,
int
& l1,
int
& ltype2,
int
& l2) = 0;
38
virtual
void
setlevel(
int
ltype1,
int
l1,
int
ltype2,
int
l2) = 0;
39
virtual
void
enqtimerange(
int
& ptype,
int
& p1,
int
& p2) = 0;
40
virtual
void
settimerange(
int
ptype,
int
p1,
int
p2) = 0;
41
virtual
void
enqdate(
int
& year,
int
& month,
int
& day,
int
& hour,
int
& min,
int
& sec) = 0;
42
virtual
void
setdate(
int
year,
int
month,
int
day,
int
hour,
int
min,
int
sec) = 0;
43
virtual
void
setdatemin(
int
year,
int
month,
int
day,
int
hour,
int
min,
int
sec) = 0;
44
virtual
void
setdatemax(
int
year,
int
month,
int
day,
int
hour,
int
min,
int
sec) = 0;
45
virtual
void
unset(
const
char
* param) = 0;
46
virtual
void
unsetall() = 0;
47
virtual
void
unsetb() = 0;
48
virtual
int
query_stations() = 0;
49
virtual
void
next_station() = 0;
50
virtual
int
query_data() = 0;
51
virtual
wreport::Varcode
next_data() = 0;
52
virtual
void
insert_data() = 0;
53
virtual
void
remove_data() = 0;
54
virtual
int
query_attributes() = 0;
55
virtual
const
char
* next_attribute() = 0;
56
virtual
void
insert_attributes() = 0;
57
virtual
void
remove_attributes() = 0;
58
virtual
void
messages_open_input(
const
char
* filename,
const
char
* mode, Encoding format,
bool
simplified=
true
) = 0;
59
virtual
void
messages_open_output(
const
char
* filename,
const
char
* mode, Encoding format) = 0;
60
virtual
bool
messages_read_next() = 0;
61
virtual
void
messages_write_next(
const
char
* template_name=0) = 0;
62
virtual
const
char
* describe_level(
int
ltype1,
int
l1,
int
ltype2,
int
l2) = 0;
63
virtual
const
char
* describe_timerange(
int
ptype,
int
p1,
int
p2) = 0;
64
virtual
const
char
* describe_var(
const
char
* varcode,
const
char
* value) = 0;
65
virtual
void
commit() = 0;
66
74
const
char
*
test_enqc
(
const
char
* param,
unsigned
len);
75
76
static
void
to_fortran(int32_t val,
char
* buf,
unsigned
buf_len);
77
static
void
to_fortran(
const
char
* str,
char
* buf,
unsigned
buf_len);
78
static
void
to_fortran(
const
std::string& str,
char
* buf,
unsigned
buf_len);
79
};
80
81
}
82
}
83
#endif
dballe::fortran::API
C++ implementation for the Fortran API.
Definition:
api.h:15
dballe::fortran::API::test_enqc
const char * test_enqc(const char *param, unsigned len)
Wrap enqc in a way that makes it easier to use in unit tests.
wreport::Varcode
uint16_t Varcode
varinfo.h
Generated by
1.8.16