26 #include <dballe/db/trace.h> 27 #include <wreport/varinfo.h> 42 #define DBA_DB_WANT_COORDS (1 << 0) 44 #define DBA_DB_WANT_IDENT (1 << 1) 46 #define DBA_DB_WANT_LEVEL (1 << 2) 48 #define DBA_DB_WANT_TIMERANGE (1 << 3) 50 #define DBA_DB_WANT_DATETIME (1 << 4) 52 #define DBA_DB_WANT_VAR_NAME (1 << 5) 54 #define DBA_DB_WANT_VAR_VALUE (1 << 6) 56 #define DBA_DB_WANT_REPCOD (1 << 7) 58 #define DBA_DB_WANT_ANA_ID (1 << 8) 60 #define DBA_DB_WANT_CONTEXT_ID (1 << 9) 95 bool explain_queries =
false;
122 void init_after_connect();
124 DB(std::unique_ptr<Connection> conn);
140 int obtain_station(
const Station& st,
bool can_add=
true);
181 void reset(
const char* repinfo_file = 0);
186 void delete_tables();
205 void update_repinfo(
const char* repinfo_file,
int* added,
int* deleted,
int* updated);
207 std::map<std::string, int> get_repinfo_priorities();
212 int rep_cod_from_memo(
const char* memo);
214 void insert_station_data(
StationValues& vals,
bool can_replace,
bool station_can_add)
override;
215 void insert_data(
DataValues& vals,
bool can_replace,
bool station_can_add)
override;
217 void remove_station_data(
const Query& query)
override;
218 void remove(
const Query& query);
232 std::unique_ptr<db::CursorStation> query_stations(
const Query& query);
233 std::unique_ptr<db::CursorStationData> query_station_data(
const Query& query)
override;
234 std::unique_ptr<db::CursorData> query_data(
const Query& query);
235 std::unique_ptr<db::CursorSummary> query_summary(
const Query& query);
237 void attr_query_station(
int data_id, std::function<
void(std::unique_ptr<wreport::Var>)>&& dest)
override;
238 void attr_query_data(
int data_id, std::function<
void(std::unique_ptr<wreport::Var>)>&& dest)
override;
239 void attr_insert_station(
int data_id,
const Values& attrs)
override;
240 void attr_insert_data(
int data_id,
const Values& attrs)
override;
241 void attr_remove_station(
int data_id,
const db::AttrList& qcs)
override;
242 void attr_remove_data(
int data_id,
const db::AttrList& qcs)
override;
243 bool is_station_variable(
int data_id, wreport::Varcode varcode)
override;
245 void import_msg(
const Message& msg,
const char* repmemo,
int flags)
override;
246 bool export_msgs(
const Query& query, std::function<
bool(std::unique_ptr<Message>&&)> dest)
override;
251 void dump(FILE* out);
Definition: db/trace.h:39
Trace trace
Database query tracing.
Definition: v6/db.h:93
struct sql::DataV6 * m_data
Variable data.
Definition: v6/db.h:117
Precompiled queries to manipulate the attr table.
Definition: sql/attrv6.h:46
A bulletin that has been decoded and physically interpreted.
Definition: message.h:25
db::Format format() const
Return the format of this DB.
Definition: v6/db.h:145
Copyright (C) 2008–2010 ARPA-SIM urpsim@smr.arpa.emr.it
Definition: cmdline.h:17
Functions used to connect to DB-All.e and insert, query and delete data.
struct sql::LevTr * m_lev_tr
Level/timerange information.
Definition: v6/db.h:113
db::Connection * conn
Database connection.
Definition: v6/db.h:91
struct sql::Repinfo * m_repinfo
Accessors for the various parts of the database.
Definition: v6/db.h:109
Fast cached access to the repinfo table.
Definition: sql/repinfo.h:77
Definition: db/sql/levtr.h:86
Definition: sql/driver.h:84
Definition: db/sql/station.h:46
struct sql::Station * m_station
Station information.
Definition: v6/db.h:111
std::vector< wreport::Varcode > AttrList
Simple typedef to make typing easier.
Definition: db.h:31
Query used to filter DB-All.e data.
Definition: query.h:14
sql::Driver * m_driver
SQL driver backend.
Definition: v6/db.h:99
DB-ALLe database connection.
Definition: v6/db.h:87
struct sql::LevTrCache * m_lev_tr_cache
Level/timerange cache.
Definition: v6/db.h:115
Precompiled queries to manipulate the lev_tr table.
Definition: db/sql/levtr.h:46
struct sql::AttrV6 * m_attr
Variable attributes.
Definition: v6/db.h:119
Precompiled query to manipulate the data table.
Definition: sql/datav6.h:57