5 #include <dballe/db/defs.h> 6 #include <wreport/varinfo.h> 7 #include <wreport/var.h> 36 typedef std::vector<wreport::Varcode>
AttrList;
61 virtual bool next() = 0;
78 virtual double get_lat()
const = 0;
81 virtual double get_lon()
const = 0;
84 virtual const char*
get_ident(
const char* def=0)
const = 0;
106 virtual wreport::Varcode get_varcode()
const = 0;
109 virtual wreport::Var get_var()
const = 0;
115 virtual int attr_reference_id()
const = 0;
127 virtual Level get_level()
const = 0;
130 virtual Trange get_trange()
const = 0;
133 virtual Datetime get_datetime()
const = 0;
140 virtual Level get_level()
const = 0;
143 virtual Trange get_trange()
const = 0;
146 virtual wreport::Varcode get_varcode()
const = 0;
152 virtual size_t get_count()
const = 0;
160 virtual void query_attrs(std::function<
void(std::unique_ptr<wreport::Var>&&)> dest) = 0;
168 virtual void attr_insert(
const Values& attrs) = 0;
177 virtual void attr_remove(
const AttrList& qcs) = 0;
187 static db::Format get_default_format();
188 static void set_default_format(db::Format format);
203 static std::unique_ptr<DB> connect(
const char* dsn,
const char* user,
const char* password);
211 static std::unique_ptr<DB> connect_from_file(
const char* pathname);
223 static std::unique_ptr<DB> connect_from_url(
const char* url);
228 static std::unique_ptr<DB> connect_memory(
const std::string& arg = std::string());
236 static std::unique_ptr<DB> connect_test();
241 static std::unique_ptr<DB> create(std::unique_ptr<db::Connection> conn);
251 static bool is_url(
const char* str);
254 virtual db::Format format()
const = 0;
262 virtual void disappear() = 0;
275 virtual void reset(
const char* repinfo_file=0) = 0;
294 virtual void update_repinfo(
const char* repinfo_file,
int* added,
int* deleted,
int* updated) = 0;
299 virtual std::map<std::string, int> get_repinfo_priorities() = 0;
318 virtual void insert_station_data(
StationValues& vals,
bool can_replace,
bool station_can_add) = 0;
336 virtual void insert_data(
DataValues& vals,
bool can_replace,
bool station_can_add) = 0;
345 virtual void remove_station_data(
const Query& query) = 0;
354 virtual void remove(
const Query& rec) = 0;
362 virtual void remove_all() = 0;
373 virtual void vacuum() = 0;
388 virtual std::unique_ptr<db::CursorStation> query_stations(
const Query& query) = 0;
402 virtual std::unique_ptr<db::CursorStationData> query_station_data(
const Query& query) = 0;
416 virtual std::unique_ptr<db::CursorData> query_data(
const Query& query) = 0;
430 virtual std::unique_ptr<db::CursorSummary> query_summary(
const Query& query) = 0;
440 virtual void attr_query_station(
int data_id, std::function<
void(std::unique_ptr<wreport::Var>)>&& dest) = 0;
450 virtual void attr_query_data(
int data_id, std::function<
void(std::unique_ptr<wreport::Var>)>&& dest) = 0;
460 virtual void attr_insert_station(
int data_id,
const Values& attrs) = 0;
470 virtual void attr_insert_data(
int data_id,
const Values& attrs) = 0;
481 virtual void attr_remove_station(
int data_id,
const db::AttrList& qcs) = 0;
492 virtual void attr_remove_data(
int data_id,
const db::AttrList& qcs) = 0;
506 virtual bool is_station_variable(
int data_id, wreport::Varcode varcode) = 0;
522 virtual void import_msg(
const Message& msg,
const char* repmemo,
int flags) = 0;
538 virtual void import_msgs(
const Messages& msgs,
const char* repmemo,
int flags);
552 virtual bool export_msgs(
const Query& query, std::function<
bool(std::unique_ptr<Message>&&)> dest) = 0;
557 virtual void dump(FILE* out) = 0;
560 static const char* default_repinfo_file();
virtual bool next()=0
Get a new item from the results of a query.
Common interface for cursors iterating over station or data values.
Definition: db.h:103
Cursor iterating over summary entries.
Definition: db.h:137
Cursor iterating over station data values.
Definition: db.h:119
virtual const char * get_rep_memo() const =0
Get the report name.
virtual DB & get_db() const =0
Get the database that created this cursor.
virtual void to_record(Record &rec)=0
Fill in a record with the contents of a dba_db_cursor.
Information on how a value has been sampled or computed with regards to time.
Definition: types.h:565
virtual unsigned test_iterate(FILE *dump=0)
Iterate the cursor until the end, returning the number of items.
A bulletin that has been decoded and physically interpreted.
Definition: message.h:25
Key/value store where keys are strings and values are wreport variables.
Definition: record.h:16
Copyright (C) 2008–2010 ARPA-SIM urpsim@smr.arpa.emr.it
Definition: cmdline.h:17
Common interface for all kinds of cursors.
Definition: db.h:39
Vertical level or layer.
Definition: types.h:515
virtual double get_lat() const =0
Get the station latitude.
Cursor iterating over stations.
Definition: db.h:98
Cursor iterating over data values.
Definition: db.h:124
virtual int remaining() const =0
Get the number of rows still to be fetched.
Range of datetimes.
Definition: types.h:255
virtual int get_station_id() const =0
Get the station identifier.
Ordered collection of messages.
Definition: message.h:64
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
Date and time.
Definition: types.h:147
virtual const char * get_ident(const char *def=0) const =0
Get the station identifier, or NULL if missing.
Database connection.
Definition: odbc/internals.h:87
virtual double get_lon() const =0
Get the station longitude.
virtual void discard_rest()=0
Discard the results that have not been read yet.