1#ifndef DBALLE_FORTRAN_TRACED_H
2#define DBALLE_FORTRAN_TRACED_H
4#include <dballe/fortran/api.h>
14 virtual std::unique_ptr<API> wrap_api(
int handle, std::unique_ptr<API> api) = 0;
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);
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;
24 static std::unique_ptr<Tracer> create();
33 std::unique_ptr<API> api;
35 TracedAPI(FileTracer& tracer,
const std::string& name, std::unique_ptr<API> api);
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;
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;
Options controlling how to connect to a database.
Definition: db.h:18
C++ implementation for the Fortran API.
Definition: api.h:16