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,
43 virtual void setdate(
int year,
int month,
int day,
int hour,
int min,
45 virtual void setdatemin(
int year,
int month,
int day,
int hour,
int min,
47 virtual void setdatemax(
int year,
int month,
int day,
int hour,
int min,
49 virtual void unset(
const char* param) = 0;
50 virtual void unsetall() = 0;
51 virtual void unsetb() = 0;
52 virtual int query_stations() = 0;
53 virtual void next_station() = 0;
54 virtual int query_data() = 0;
55 virtual wreport::Varcode next_data() = 0;
56 virtual void insert_data() = 0;
57 virtual void remove_data() = 0;
58 virtual int query_attributes() = 0;
59 virtual const char* next_attribute() = 0;
60 virtual void insert_attributes() = 0;
61 virtual void remove_attributes() = 0;
62 virtual void messages_open_input(
const char* filename,
const char* mode,
64 bool simplified =
true) = 0;
65 virtual void messages_open_output(
const char* filename,
const char* mode,
67 virtual bool messages_read_next() = 0;
68 virtual void messages_write_next(
const char* template_name = 0) = 0;
69 virtual const char* describe_level(
int ltype1,
int l1,
int ltype2,
71 virtual const char* describe_timerange(
int ptype,
int p1,
int p2) = 0;
72 virtual const char* describe_var(
const char* varcode,
73 const char* value) = 0;
74 virtual void commit() = 0;
83 const char*
test_enqc(
const char* param,
unsigned len);
85 static void to_fortran(int32_t val,
char* buf,
unsigned buf_len);
86 static void to_fortran(
const char* str,
char* buf,
unsigned buf_len);
87 static void to_fortran(
const std::string& str,
char* buf,
unsigned buf_len);