libdballe
7.6
|
Public Member Functions | |
virtual db::Format | format () const =0 |
Return the format of this DB. | |
virtual void | disappear ()=0 |
Remove all our traces from the database, if applicable. More... | |
virtual void | reset (const char *repinfo_file=0)=0 |
Reset the database, removing all existing Db-All.e tables and re-creating them empty. More... | |
virtual void | update_repinfo (const char *repinfo_file, int *added, int *deleted, int *updated)=0 |
Update the repinfo table in the database, with the data found in the given file. More... | |
virtual std::map< std::string, int > | get_repinfo_priorities ()=0 |
Get a mapping between rep_memo and their priorities. | |
virtual void | insert_station_data (StationValues &vals, bool can_replace, bool station_can_add)=0 |
Insert station values into the database. More... | |
virtual void | insert_data (DataValues &vals, bool can_replace, bool station_can_add)=0 |
Insert data values into the database. More... | |
virtual void | remove_station_data (const Query &query)=0 |
Remove data from the database. More... | |
virtual void | remove (const Query &rec)=0 |
Remove data from the database. More... | |
virtual void | remove_all ()=0 |
Remove all data from the database. More... | |
virtual void | vacuum ()=0 |
Perform database cleanup operations. More... | |
virtual std::unique_ptr< db::CursorStation > | query_stations (const Query &query)=0 |
Start a query on the station variables archive. More... | |
virtual std::unique_ptr< db::CursorStationData > | query_station_data (const Query &query)=0 |
Query the station variables in the database. More... | |
virtual std::unique_ptr< db::CursorData > | query_data (const Query &query)=0 |
Query the database. More... | |
virtual std::unique_ptr< db::CursorSummary > | query_summary (const Query &query)=0 |
Query a summary of what the result would be for a query. More... | |
virtual void | attr_query_station (int data_id, std::function< void(std::unique_ptr< wreport::Var >)> &&dest)=0 |
Query attributes on a station value. More... | |
virtual void | attr_query_data (int data_id, std::function< void(std::unique_ptr< wreport::Var >)> &&dest)=0 |
Query attributes on a data value. More... | |
virtual void | attr_insert_station (int data_id, const Values &attrs)=0 |
Insert new attributes on a station value. More... | |
virtual void | attr_insert_data (int data_id, const Values &attrs)=0 |
Insert new attributes on a data value. More... | |
virtual void | attr_remove_station (int data_id, const db::AttrList &qcs)=0 |
Delete attributes from a station value. More... | |
virtual void | attr_remove_data (int data_id, const db::AttrList &qcs)=0 |
Delete attributes from a data value. More... | |
virtual bool | is_station_variable (int data_id, wreport::Varcode varcode)=0 |
Check if this varcode and data_id correspond to a station variable. More... | |
virtual void | import_msg (const Message &msg, const char *repmemo, int flags)=0 |
Import a Message into the DB-All.e database. More... | |
virtual void | import_msgs (const Messages &msgs, const char *repmemo, int flags) |
Import Messages into the DB-All.e database. More... | |
virtual bool | export_msgs (const Query &query, std::function< bool(std::unique_ptr< Message > &&)> dest)=0 |
Perform the query in `query', and send the results to dest. More... | |
virtual void | dump (FILE *out)=0 |
Dump the entire contents of the database to an output stream. | |
Static Public Member Functions | |
static db::Format | get_default_format () |
static void | set_default_format (db::Format format) |
static std::unique_ptr< DB > | connect (const char *dsn, const char *user, const char *password) |
Start a session with DB-All.e. More... | |
static std::unique_ptr< DB > | connect_from_file (const char *pathname) |
Create from a SQLite file pathname. More... | |
static std::unique_ptr< DB > | connect_from_url (const char *url) |
Create from an url-like specification, that can be: More... | |
static std::unique_ptr< DB > | connect_memory (const std::string &arg=std::string()) |
Create an in-memory database. | |
static std::unique_ptr< DB > | connect_test () |
Start a test session with DB-All.e. More... | |
static std::unique_ptr< DB > | create (std::unique_ptr< db::Connection > conn) |
Create a database from an open Connection. | |
static bool | is_url (const char *str) |
Return TRUE if the string looks like a DB URL. More... | |
static const char * | default_repinfo_file () |
Return the default repinfo file pathname. | |
|
pure virtual |
Insert new attributes on a data value.
data_id | The id (returned by Cursor::attr_reference_id()) used to refer to the value |
attrs | The attributes to be added |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Insert new attributes on a station value.
data_id | The id (returned by Cursor::attr_reference_id()) used to refer to the value |
attrs | The attributes to be added |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Query attributes on a data value.
data_id | The id (returned by Cursor::attr_reference_id()) used to refer to the value |
dest | The function that will be called on each resulting attribute |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Query attributes on a station value.
data_id | The id (returned by Cursor::attr_reference_id()) used to refer to the value |
dest | The function that will be called on each resulting attribute |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Delete attributes from a data value.
data_id | The id (returned by Cursor::attr_reference_id()) used to refer to the value |
qcs | Array of WMO codes of the attributes to delete. If empty, all attributes associated to the value will be deleted. |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Delete attributes from a station value.
data_id | The id (returned by Cursor::attr_reference_id()) used to refer to the value |
qcs | Array of WMO codes of the attributes to delete. If empty, all attributes associated to the value will be deleted. |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
static |
Start a session with DB-All.e.
dsn | The ODBC DSN of the database to use |
user | The user name to use to connect to the DSN |
password | The password to use to connect to the DSN. To specify an empty password, pass "" or NULL |
|
static |
Create from a SQLite file pathname.
pathname | The pathname to a SQLite file |
|
static |
Create from an url-like specification, that can be:
sqlite:[//]foo.sqlite odbc://[user[:pass]@]dsn test:[//]
url | The url-like connection descriptor |
|
static |
Start a test session with DB-All.e.
Take information from the environment (
|
pure virtual |
Remove all our traces from the database, if applicable.
After this has been called, all other DB methods except for reset() will fail.
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Perform the query in `query', and send the results to dest.
Return false from dest to interrupt the query.
query | The query to perform |
dest | The function that will handle the resulting messages |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Import a Message into the DB-All.e database.
db | The DB-All.e database to write the data into |
msg | The Message containing the data to import |
repmemo | Report mnemonic to which imported data belong. If NULL is passed, then it will be chosen automatically based on the message type. |
flags | Customise different aspects of the import process. It is a bitmask of the various DBA_IMPORT_* macros. |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
virtual |
Import Messages into the DB-All.e database.
db | The DB-All.e database to write the data into |
msgs | The Messages containing the data to import |
repmemo | Report mnemonic to which imported data belong. If NULL is passed, then it will be chosen automatically based on the message type. |
flags | Customise different aspects of the import process. It is a bitmask of the various DBA_IMPORT_* macros. |
|
pure virtual |
Insert data values into the database.
The IDs of the station andl all variables that were inserted will be stored in vals.
vals | The values to insert. |
can_replace | If true, then existing data can be rewritten, else data can only be added. |
station_can_add | If false, it will not create a missing station record, and only data for existing stations can be added. If true, then if we are inserting data for a station that does not yet exists in the database, it will be created. |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Insert station values into the database.
The IDs of the station andl all variables that were inserted will be stored in vals.
vals | The values to insert. |
can_replace | If true, then existing data can be rewritten, else data can only be added. |
station_can_add | If false, it will not create a missing station record, and only data for existing stations can be added. If true, then if we are inserting data for a station that does not yet exists in the database, it will be created. |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Check if this varcode and data_id correspond to a station variable.
This is used only to implement attr_* functions to be used when this information is not known. A database for which this information is not relevant (for example, in v6 databases there is a single ID space for station and data variable) can return any arbitrary value, since later they will be ignored.
This should disappear once client APIs start making a distinction between attributes in station variables and attributes on data variables.
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
static |
Return TRUE if the string looks like a DB URL.
str | The string to test |
|
pure virtual |
Query the database.
When multiple values per variable are present, the results will be presented in increasing order of priority.
query | The record with the query data (see technical specifications, par. 1.6.4 "parameter output/input") |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Query the station variables in the database.
When multiple values per variable are present, the results will be presented in increasing order of priority.
query | The record with the query data (see technical specifications, par. 1.6.4 "parameter output/input") |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Start a query on the station variables archive.
The cursor will iterate over unique lat, lon, ident triples, and will contain all station vars. If a station var exists twice on two different networks, only one will be present: the one of the network with the highest priority.
query | The record with the query data (see Keywords used by dba_record) |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Query a summary of what the result would be for a query.
query | The record with the query data (see technical specifications, par. 1.6.4 "parameter output/input") |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Remove data from the database.
rec | The record with the query data (see technical specifications, par. 1.6.4 "parameter output/input") to select the items to be deleted |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Remove all data from the database.
This is faster than remove() with an empty record, and unlike reset() it preserves existing report information.
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Remove data from the database.
rec | The record with the query data (see technical specifications, par. 1.6.4 "parameter output/input") to select the items to be deleted |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Reset the database, removing all existing Db-All.e tables and re-creating them empty.
repinfo_file | The name of the CSV file with the report type information data to load. The file is in CSV format with 6 columns: report code, mnemonic id, description, priority, descriptor, table A category. If repinfo_file is NULL, then the default of /etc/dballe/repinfo.csv is used. |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Update the repinfo table in the database, with the data found in the given file.
repinfo_file | The name of the CSV file with the report type information data to load. The file is in CSV format with 6 columns: report code, mnemonic id, description, priority, descriptor, table A category. If repinfo_file is NULL, then the default of /etc/dballe/repinfo.csv is used. |
added | The number of repinfo entries that have been added |
deleted | The number of repinfo entries that have been deleted |
updated | The number of repinfo entries that have been updated |
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.
|
pure virtual |
Perform database cleanup operations.
Orphan values are currently:
Depending on database size, this routine can take a few minutes to execute.
Implemented in dballe::db::v6::DB, and dballe::db::mem::DB.