1 #ifndef DBALLE_FORTRAN_API_H 2 #define DBALLE_FORTRAN_API_H 4 #include <dballe/fwd.h> 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;
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;
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;
74 const char*
test_enqc(
const char* param,
unsigned len);
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);
C++ implementation for the Fortran API.
Definition: api.h:15
const char * test_enqc(const char *param, unsigned len)
Wrap enqc in a way that makes it easier to use in unit tests.