4 #include <dballe/transaction.h> 6 #include <dballe/db/defs.h> 9 #include <wreport/var.h> 60 virtual bool next() = 0;
77 virtual double get_lat()
const = 0;
80 virtual double get_lon()
const = 0;
83 virtual const char*
get_ident(
const char* def=0)
const = 0;
114 virtual int attr_reference_id()
const = 0;
126 virtual Level get_level()
const = 0;
129 virtual Trange get_trange()
const = 0;
132 virtual Datetime get_datetime()
const = 0;
139 virtual Level get_level()
const = 0;
142 virtual Trange get_trange()
const = 0;
151 virtual size_t get_count()
const = 0;
161 static db::Format get_default_format();
162 static void set_default_format(db::Format format);
170 static std::unique_ptr<DB> connect_from_file(
const char* pathname);
179 static std::unique_ptr<DB> connect_from_url(
const char* url);
184 static std::unique_ptr<DB> connect_memory(
const std::string& arg = std::string());
192 static std::unique_ptr<DB> connect_test();
197 static std::unique_ptr<DB> create(std::unique_ptr<sql::Connection> conn);
207 static bool is_url(
const char* str);
210 virtual db::Format format()
const = 0;
218 virtual void disappear() = 0;
231 virtual void reset(
const char* repinfo_file=0) = 0;
250 virtual void update_repinfo(
const char* repinfo_file,
int* added,
int* deleted,
int* updated) = 0;
255 virtual std::map<std::string, int> get_repinfo_priorities() = 0;
262 virtual std::unique_ptr<dballe::Transaction> transaction() = 0;
280 void insert_station_data(
StationValues& vals,
bool can_replace,
bool station_can_add);
318 void insert_data(
DataValues& vals,
bool can_replace,
bool station_can_add);
347 void remove_station_data(
const Query& query);
367 void remove(
const Query& query);
408 virtual void vacuum() = 0;
423 virtual std::unique_ptr<db::CursorStation> query_stations(
const Query& query) = 0;
437 virtual std::unique_ptr<db::CursorStationData> query_station_data(
const Query& query) = 0;
451 virtual std::unique_ptr<db::CursorData> query_data(
const Query& query) = 0;
465 virtual std::unique_ptr<db::CursorSummary> query_summary(
const Query& query) = 0;
475 virtual void attr_query_station(
int data_id, std::function<
void(std::unique_ptr<wreport::Var>)>&& dest) = 0;
485 virtual void attr_query_data(
int data_id, std::function<
void(std::unique_ptr<wreport::Var>)>&& dest) = 0;
495 void attr_insert_station(
int data_id,
const Values& attrs);
517 void attr_insert_data(
int data_id,
const Values& attrs);
540 void attr_remove_station(
int data_id,
const db::AttrList& attrs);
553 virtual void attr_remove_station(
dballe::Transaction& transaction,
int data_id,
const db::AttrList& attrs) = 0;
564 void attr_remove_data(
int data_id,
const db::AttrList& attrs);
577 virtual void attr_remove_data(
dballe::Transaction& transaction,
int data_id,
const db::AttrList& attrs) = 0;
591 virtual bool is_station_variable(
int data_id,
wreport::Varcode varcode) = 0;
605 void import_msg(
const Message& msg,
const char* repmemo,
int flags);
635 void import_msgs(
const Messages& msgs,
const char* repmemo,
int flags);
665 bool export_msgs(
const Query& query, std::function<
bool(std::unique_ptr<Message>&&)> dest);
681 virtual bool export_msgs(
dballe::Transaction& transaction,
const Query& query, std::function<
bool(std::unique_ptr<Message>&&)> dest) = 0;
686 virtual void dump(FILE* out) = 0;
689 virtual void print_info(FILE* out);
692 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:102
Cursor iterating over summary entries.
Definition: db.h:136
A RAII transaction interface.
Definition: transaction.h:15
Cursor iterating over station data values.
Definition: db.h:118
virtual const char * get_rep_memo() const =0
Get the report name.
A set of measured values.
Definition: values.h:303
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:587
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:28
Key/value store where keys are strings and values are wreport variables.
Definition: record.h:16
Forward declarations for public dballe/sql names.
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:38
Vertical level or layer.
Definition: types.h:532
virtual double get_lat() const =0
Get the station latitude.
Cursor iterating over stations.
Definition: db.h:97
Cursor iterating over data values.
Definition: db.h:123
virtual int remaining() const =0
Get the number of rows still to be fetched.
Range of datetimes.
Definition: types.h:272
virtual int get_station_id() const =0
Get the station identifier.
Ordered collection of messages.
Definition: message.h:67
std::string format_format(Format format)
Format a db::Format value to a string.
Query used to filter DB-All.e data.
Definition: query.h:14
Date and time.
Definition: types.h:158
A set of station values.
Definition: values.h:273
virtual const char * get_ident(const char *def=0) const =0
Get the station identifier, or NULL if missing.
Collection of Value objects, indexed by wreport::Varcode.
Definition: values.h:202
virtual double get_lon() const =0
Get the station longitude.
virtual void discard_rest()=0
Discard the results that have not been read yet.