libdballe
9.11
|
Public Types | |
typedef v7::DB | DB |
Public Member Functions | |
Transaction (std::shared_ptr< v7::DB > db, std::unique_ptr< dballe::sql::Transaction > sql_transaction) | |
Transaction (const Transaction &)=delete | |
Transaction (Transaction &&)=delete | |
Transaction & | operator= (const Transaction &)=delete |
Transaction & | operator= (Transaction &&)=delete |
v7::Repinfo & | repinfo () |
Access the repinfo table. | |
v7::Station & | station () |
Access the station table. | |
v7::LevTr & | levtr () |
Access the levtr table. | |
v7::StationData & | station_data () |
Access the station_data table. | |
v7::Data & | data () |
Access the data table. | |
void | commit () override |
Commit this transaction. | |
void | rollback () override |
Roll back this transaction. | |
void | rollback_nothrow () noexcept override |
Roll back this transaction. | |
void | clear_cached_state () override |
Clear state information cached during the transaction. More... | |
std::shared_ptr< dballe::CursorStation > | query_stations (const Query &query) override |
Start a query on the station variables archive. More... | |
std::shared_ptr< dballe::CursorStationData > | query_station_data (const Query &query) override |
Query the station variables in the database. More... | |
std::shared_ptr< dballe::CursorData > | query_data (const Query &query) override |
Query the database. More... | |
std::shared_ptr< dballe::CursorSummary > | query_summary (const Query &query) override |
Query a summary of what the result would be for a query. More... | |
std::shared_ptr< dballe::CursorMessage > | query_messages (const Query &query) override |
Query the database returning the matching data as Message objects. More... | |
void | attr_query_station (int data_id, std::function< void(std::unique_ptr< wreport::Var >)> dest) override |
Query attributes on a station value. More... | |
void | attr_query_data (int data_id, std::function< void(std::unique_ptr< wreport::Var >)> dest) override |
Query attributes on a data value. More... | |
void | insert_station_data (dballe::Data &vals, const dballe::DBInsertOptions &opts=dballe::DBInsertOptions::defaults) override |
Insert station values into the database. More... | |
void | insert_data (dballe::Data &vals, const dballe::DBInsertOptions &opts=dballe::DBInsertOptions::defaults) override |
Insert data values into the database. More... | |
void | remove_station_data (const Query &query) override |
Remove data from the database. More... | |
void | remove_data (const Query &query) override |
Remove data from the database. More... | |
void | remove_station_data_by_id (int id) |
void | remove_data_by_id (int id) |
void | remove_all () override |
Remove all data from the database. More... | |
void | attr_insert_station (int data_id, const Values &attrs) override |
Insert new attributes on a station value. More... | |
void | attr_insert_data (int data_id, const Values &attrs) override |
Insert new attributes on a data value. More... | |
void | attr_remove_station (int data_id, const db::AttrList &attrs) override |
Delete attributes from a station value. More... | |
void | attr_remove_data (int data_id, const db::AttrList &attrs) override |
Delete attributes from a data value. More... | |
void | import_message (const Message &message, const dballe::DBImportOptions &opts) override |
Import a Message into the DB-All.e database. More... | |
void | import_messages (const std::vector< std::shared_ptr< Message >> &msgs, const dballe::DBImportOptions &opts) override |
Import Messages into the DB-All.e database. More... | |
void | update_repinfo (const char *repinfo_file, int *added, int *deleted, int *updated) override |
Update the repinfo table in the database, with the data found in the given file. More... | |
void | dump (FILE *out) override |
Dump the entire contents of the database to an output stream. | |
Static Public Member Functions | |
static Transaction & | downcast (dballe::db::Transaction &transaction) |
Public Attributes | |
std::shared_ptr< v7::DB > | db |
std::shared_ptr< dballe::sql::Transaction > | sql_transaction |
SQL-side transaction. | |
bool | fired = false |
True if commit or rollback have already been called on this transaction. | |
v7::Batch | batch |
Batch importer. | |
v7::Tracer< v7::trace::Transaction > | trc |
Tracing system. | |
Protected Member Functions | |
void | add_msg_to_batch (Tracer<> &trc, const Message &message, const dballe::DBImportOptions &opts) |
void | track_cursor (std::weak_ptr< dballe::Cursor > cursor) |
Protected Attributes | |
v7::Repinfo * | m_repinfo = nullptr |
Report information. | |
v7::Station * | m_station = nullptr |
Station information. | |
v7::LevTr * | m_levtr = nullptr |
Level/timerange information. | |
v7::StationData * | m_station_data = nullptr |
Station data. | |
v7::Data * | m_data = nullptr |
Variable data. | |
std::vector< std::weak_ptr< dballe::Cursor > > | tracked_cursors |
Track active cursors to invalidate them on commit/rollback. | |
|
overridevirtual |
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 |
Implements dballe::db::Transaction.
|
overridevirtual |
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 |
Implements dballe::db::Transaction.
|
overridevirtual |
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 |
Implements dballe::db::Transaction.
|
overridevirtual |
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 |
Implements dballe::db::Transaction.
|
overridevirtual |
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. |
Implements dballe::db::Transaction.
|
overridevirtual |
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. |
Implements dballe::db::Transaction.
|
overridevirtual |
Clear state information cached during the transaction.
This can be used when, for example, a command that deletes data is issued that would invalidate ID information cached inside the transaction.
Implements dballe::db::Transaction.
|
overridevirtual |
Import a Message into the DB-All.e database.
message | The Message to import |
opts | Options controlling the import process |
Implements dballe::Transaction.
|
overridevirtual |
Import Messages into the DB-All.e database.
messages | The messages to import |
opts | Options controlling the import process |
Reimplemented from dballe::Transaction.
|
overridevirtual |
Insert data values into the database.
The IDs of the station and all variables that were inserted will be stored in vals.
data | The values to insert. |
opts | Options controlling the insert operation |
Implements dballe::Transaction.
|
overridevirtual |
Insert station values into the database.
The IDs of the station and all variables that were inserted will be stored in vals.
data | The values to insert. |
opts | Options controlling the insert operation |
Implements dballe::Transaction.
|
overridevirtual |
Query the database.
When multiple values per variable are present, the results will be presented in increasing order of priority.
query | The Query selecting the data to return |
Implements dballe::Transaction.
|
overridevirtual |
Query the database returning the matching data as Message objects.
Implements dballe::Transaction.
|
overridevirtual |
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 Query selecting the station data to return |
Implements dballe::Transaction.
|
overridevirtual |
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 Query selecting the stations to return |
Implements dballe::Transaction.
|
overridevirtual |
Query a summary of what the result would be for a query.
query | The Query selecting the data to summarise |
Implements dballe::Transaction.
|
overridevirtual |
Remove all data from the database.
This is faster than remove() with an empty record, and unlike reset() it preserves existing report information.
Implements dballe::Transaction.
|
overridevirtual |
Remove data from the database.
query | The query selecting the data to remove |
Implements dballe::Transaction.
|
overridevirtual |
Remove data from the database.
query | The query selecting the data to remove |
Implements dballe::Transaction.
|
overridevirtual |
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 |
Implements dballe::db::Transaction.