libdballe
7.29
|
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 std::unique_ptr < dballe::Transaction > | transaction ()=0 |
Begin a transaction on this database, and return a Transaction object that can be used to commit it. | |
void | insert_station_data (StationValues &vals, bool can_replace, bool station_can_add) |
Insert station values into the database. More... | |
virtual void | insert_station_data (dballe::Transaction &transaction, StationValues &vals, bool can_replace, bool station_can_add)=0 |
Insert station values into the database. More... | |
void | insert_data (DataValues &vals, bool can_replace, bool station_can_add) |
Insert data values into the database. More... | |
virtual void | insert_data (dballe::Transaction &transaction, DataValues &vals, bool can_replace, bool station_can_add)=0 |
Insert data values into the database. More... | |
void | remove_station_data (const Query &query) |
Remove data from the database. More... | |
virtual void | remove_station_data (dballe::Transaction &transaction, const Query &query)=0 |
Remove data from the database. More... | |
void | remove (const Query &query) |
Remove data from the database. More... | |
virtual void | remove (dballe::Transaction &transaction, const Query &rec)=0 |
Remove data from the database. More... | |
void | remove_all () |
Remove all data from the database. More... | |
virtual void | remove_all (dballe::Transaction &transaction)=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... | |
void | attr_insert_station (int data_id, const Values &attrs) |
Insert new attributes on a station value. More... | |
virtual void | attr_insert_station (dballe::Transaction &transaction, int data_id, const Values &attrs)=0 |
Insert new attributes on a station value. More... | |
void | attr_insert_data (int data_id, const Values &attrs) |
Insert new attributes on a data value. More... | |
virtual void | attr_insert_data (dballe::Transaction &transaction, int data_id, const Values &attrs)=0 |
Insert new attributes on a data value. More... | |
void | attr_remove_station (int data_id, const db::AttrList &attrs) |
Delete attributes from a station value. More... | |
virtual void | attr_remove_station (dballe::Transaction &transaction, int data_id, const db::AttrList &attrs)=0 |
Delete attributes from a station value. More... | |
void | attr_remove_data (int data_id, const db::AttrList &attrs) |
Delete attributes from a data value. More... | |
virtual void | attr_remove_data (dballe::Transaction &transaction, int data_id, const db::AttrList &attrs)=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... | |
void | import_msg (const Message &msg, const char *repmemo, int flags) |
Import a Message into the DB-All.e database. More... | |
virtual void | import_msg (dballe::Transaction &transaction, const Message &msg, const char *repmemo, int flags)=0 |
Import a Message into the DB-All.e database. More... | |
void | import_msgs (const Messages &msgs, const char *repmemo, int flags) |
Import Messages into the DB-All.e database. More... | |
virtual void | import_msgs (dballe::Transaction &transaction, const Messages &msgs, const char *repmemo, int flags) |
Import Messages into the DB-All.e database. More... | |
bool | export_msgs (const Query &query, std::function< bool(std::unique_ptr< Message > &&)> dest) |
Perform the query in `query', and send the results to dest. More... | |
virtual bool | export_msgs (dballe::Transaction &transaction, 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. | |
virtual void | print_info (FILE *out) |
Print informations about the database to the given 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_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, as described in doc/fapi_connect.md. 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< sql::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. | |
void dballe::DB::attr_insert_data | ( | int | data_id, |
const Values & | attrs | ||
) |
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 |
|
pure virtual |
Insert new attributes on a data value.
transaction | The current active transaction. |
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::v7::DB.
void dballe::DB::attr_insert_station | ( | int | data_id, |
const Values & | attrs | ||
) |
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 |
|
pure virtual |
Insert new attributes on a station value.
transaction | The current active transaction. |
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::v7::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::v7::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::v7::DB.
void dballe::DB::attr_remove_data | ( | int | data_id, |
const db::AttrList & | attrs | ||
) |
Delete attributes from a data value.
data_id | The id (returned by Cursor::attr_reference_id()) used to refer to the value |
attrs | Array of WMO codes of the attributes to delete. If empty, all attributes associated to the value will be deleted. |
|
pure virtual |
Delete attributes from a data value.
transaction | The current active transaction. |
data_id | The id (returned by Cursor::attr_reference_id()) used to refer to the value |
attrs | 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::v7::DB.
void dballe::DB::attr_remove_station | ( | int | data_id, |
const db::AttrList & | attrs | ||
) |
Delete attributes from a station value.
data_id | The id (returned by Cursor::attr_reference_id()) used to refer to the value |
attrs | Array of WMO codes of the attributes to delete. If empty, all attributes associated to the value will be deleted. |
|
pure virtual |
Delete attributes from a station value.
transaction | The current active transaction. |
data_id | The id (returned by Cursor::attr_reference_id()) used to refer to the value |
attrs | 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::v7::DB.
|
static |
Create from a SQLite file pathname.
pathname | The pathname to a SQLite file |
|
static |
Create from an url-like specification, as described in doc/fapi_connect.md.
url | The url-like connection descriptor |
|
static |
Start a test session with DB-All.e.
Take information from the environment (
Referenced by dballe::benchmark::DBTask::setup().
|
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::v7::DB.
bool dballe::DB::export_msgs | ( | const Query & | query, |
std::function< bool(std::unique_ptr< Message > &&)> | dest | ||
) |
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 |
|
pure virtual |
Perform the query in `query', and send the results to dest.
Return false from dest to interrupt the query.
transaction | The current active transaction. |
query | The query to perform |
dest | The function that will handle the resulting messages |
Implemented in dballe::db::v6::DB, and dballe::db::v7::DB.
void dballe::DB::import_msg | ( | const Message & | msg, |
const char * | repmemo, | ||
int | flags | ||
) |
Import a Message into the DB-All.e database.
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. |
|
pure virtual |
Import a Message into the DB-All.e database.
transaction | The current active transaction. |
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::v7::DB.
void dballe::DB::import_msgs | ( | const Messages & | msgs, |
const char * | repmemo, | ||
int | flags | ||
) |
Import Messages into the DB-All.e database.
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. |
|
virtual |
Import Messages into the DB-All.e database.
transaction | The current active transaction. |
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. |
void dballe::DB::insert_data | ( | DataValues & | vals, |
bool | can_replace, | ||
bool | station_can_add | ||
) |
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. |
|
pure virtual |
Insert data values into the database.
The IDs of the station andl all variables that were inserted will be stored in vals.
transaction | The current active transaction. |
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::v7::DB.
void dballe::DB::insert_station_data | ( | StationValues & | vals, |
bool | can_replace, | ||
bool | station_can_add | ||
) |
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. |
|
pure virtual |
Insert station values into the database.
The IDs of the station andl all variables that were inserted will be stored in vals.
transaction | The current active transaction. |
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::v7::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::v7::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::v7::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::v7::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 dballe::Record) |
Implemented in dballe::db::v6::DB, and dballe::db::v7::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::v7::DB.
void dballe::DB::remove | ( | const Query & | query | ) |
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 |
|
pure virtual |
Remove data from the database.
transaction | The current active transaction. |
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::v7::DB.
void dballe::DB::remove_all | ( | ) |
|
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.
transaction | The current active transaction. |
Implemented in dballe::db::v6::DB, and dballe::db::v7::DB.
void dballe::DB::remove_station_data | ( | const Query & | query | ) |
Remove data from the database.
query | The record with the query data (see technical specifications, par. 1.6.4 "parameter output/input") to select the items to be deleted |
|
pure virtual |
Remove data from the database.
transaction | The current active transaction. |
query | 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::v7::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::v7::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::v7::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::v7::DB.