libdballe
6.8
|
DB-ALLe database connection. More...
#include <db.h>
Data Structures | |
struct | VarID |
Store information about the database ID of a variable. More... | |
Public Member Functions | |
db::Format | format () const |
Return the format of this DB. | |
v6::Repinfo & | repinfo () |
Access the repinfo table. | |
v5::Station & | station () |
Access the station table. | |
LevTr & | lev_tr () |
Access the lev_tr table. | |
LevTrCache & | lev_tr_cache () |
Access the lev_tr cache. | |
Data & | data () |
Access the data table. | |
Attr & | attr () |
Access the data table. | |
void | disappear () |
Remove all our traces from the database, if applicable. More... | |
void | reset (const char *repinfo_file=0) |
Reset the database, removing all existing DBALLE tables and re-creating them empty. More... | |
void | delete_tables () |
Delete all the DB-ALLe tables from the database. | |
void | update_repinfo (const char *repinfo_file, int *added, int *deleted, int *updated) |
Update the repinfo table in the database, with the data found in the given file. More... | |
std::map< std::string, int > | get_repinfo_priorities () |
Get a mapping between rep_memo and their priorities. | |
int | rep_cod_from_memo (const char *memo) |
Get the report code from a report mnemonic. | |
bool | check_rep_cod (int rep_cod) |
Verify that a rep_cod is supported by the database. More... | |
int | last_lev_tr_insert_id () |
Return the ID of the last inserted lev_tr. | |
int | last_data_insert_id () |
Return the ID of the last inserted data. | |
int | get_rep_cod (const Record &rec) |
Get the report id from this record. More... | |
int | obtain_station (const Record &rec, bool can_add=true) |
int | obtain_lev_tr (const Record &rec) |
void | insert (const Record &rec, bool can_replace, bool station_can_add) |
Insert a record into the database. More... | |
int | last_station_id () const |
Return the station id for the last data that was inserted. | |
void | remove (const Record &rec) |
Remove data from the database. More... | |
void | remove_all () |
Remove all data from the database. More... | |
void | vacuum () |
Remove orphan values from the database. More... | |
std::auto_ptr< db::Cursor > | query_stations (const Record &query) |
Start a query on the station archive. More... | |
std::auto_ptr< db::Cursor > | query_data (const Record &rec) |
Query the database. More... | |
std::auto_ptr< db::Cursor > | query_summary (const Record &rec) |
Query a summary of what the result would be for a query. More... | |
unsigned | query_attrs (int id_data, wreport::Varcode id_var, const db::AttrList &qcs, Record &attrs) |
Query attributes. More... | |
void | attr_insert (wreport::Varcode id_var, const Record &attrs) |
Insert new attributes into the database, reusing the reference IDs stored by the last insert. More... | |
void | attr_insert (int id_data, wreport::Varcode id_var, const Record &attrs) |
Insert new attributes into the database. More... | |
void | attr_remove (int id_data, wreport::Varcode id_var, const db::AttrList &qcs) |
Delete QC data for the variable `var' in record `rec' (coming from a previous dba_query) More... | |
void | import_msg (const Msg &msg, const char *repmemo, int flags) |
Import a Msg message into the DB-All.e database. More... | |
void | export_msgs (const Record &query, MsgConsumer &cons) |
Perform the query in `query', and return the results as a NULL-terminated array of dba_msg. More... | |
void | dump (FILE *out) |
Dump the entire contents of the database to an output stream. | |
![]() | |
virtual void | import_msgs (const Msgs &msgs, const char *repmemo, int flags) |
Import Msgs messages into the DB-All.e database. More... | |
Data Fields | |
db::Connection * | conn |
ODBC database connection. | |
Protected Member Functions | |
void | init_after_connect () |
void | run_sql (const char *query) |
Run a one-off SQL query. | |
DB (std::auto_ptr< Connection > &conn) | |
Protected Attributes | |
std::vector< VarID > | last_insert_varids |
Store database variable IDs for all last inserted variables. | |
int | _last_station_id |
struct v6::Repinfo * | m_repinfo |
Accessors for the various parts of the database. More... | |
struct v5::Station * | m_station |
Station information. | |
struct LevTr * | m_lev_tr |
Level/timerange information. | |
struct LevTrCache * | m_lev_tr_cache |
Level/timerange cache. | |
struct Data * | m_data |
Variable data. | |
struct Attr * | m_attr |
Variable attributes. | |
db::Sequence * | seq_lev_tr |
Sequence accessors. More... | |
db::Sequence * | seq_data |
data ID sequence | |
Friends | |
class | dballe::DB |
Additional Inherited Members | |
![]() | |
static db::Format | get_default_format () |
static void | set_default_format (db::Format format) |
static std::auto_ptr< DB > | connect (const char *dsn, const char *user, const char *password) |
Start a session with DB-All.e. More... | |
static std::auto_ptr< DB > | connect_from_file (const char *pathname) |
Create from a SQLite file pathname. More... | |
static std::auto_ptr< DB > | connect_from_url (const char *url) |
Create from an url-like specification, that can be: More... | |
static std::auto_ptr< DB > | connect_memory (const std::string &arg=std::string()) |
Create an in-memory database. | |
static std::auto_ptr< DB > | connect_test () |
Start a test session with DB-All.e. More... | |
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. | |
![]() | |
static std::auto_ptr< DB > | instantiate_db (std::auto_ptr< db::Connection > &conn) |
DB-ALLe database connection.
|
virtual |
Insert new attributes into the database, reusing the reference IDs stored by the last insert.
id_var | The varcode of the variable related to the attributes to add. See vartable.h |
attrs | The record with the attributes to be added |
can_replace | If true, then existing data can be rewritten, else data can only be added. |
Implements dballe::DB.
|
virtual |
Insert new attributes into the database.
reference_id | The id (returned by Cursor::attr_reference_id()) used to refer to the variable we query |
id_var | The varcode of the variable related to the attributes to add. See vartable.h |
attrs | The record with the attributes to be added |
can_replace | If true, then existing data can be rewritten, else data can only be added. |
Implements dballe::DB.
|
virtual |
Delete QC data for the variable `var' in record `rec' (coming from a previous dba_query)
id_data | The database id of the lev_tr related to the attributes to remove |
id_var | The varcode of the variable related to the attributes to remove. See vartable.h (ignored) |
qcs | Array of WMO codes of the attributes to delete. If empty, all attributes associated to id_data will be deleted. |
Implements dballe::DB.
bool dballe::db::v6::DB::check_rep_cod | ( | int | rep_cod | ) |
Verify that a rep_cod is supported by the database.
rep_cod | The report code to verify |
|
virtual |
Remove all our traces from the database, if applicable.
After this has been called, all other DB methods except for reset() will fail.
Implements dballe::DB.
|
virtual |
Perform the query in `query', and return the results as a NULL-terminated array of dba_msg.
query | The query to perform |
cons | The MsgsConsumer that will handle the resulting messages |
Implements dballe::DB.
int dballe::db::v6::DB::get_rep_cod | ( | const Record & | rec | ) |
Get the report id from this record.
If rep_memo is specified instead, the corresponding report id is queried in the database and set as "rep_cod" in the record.
|
virtual |
Import a Msg message into the DB-All.e database.
db | The DB-All.e database to write the data into |
msg | The Msg 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. |
Implements dballe::DB.
|
virtual |
Insert a record into the database.
In a record with the same phisical situation already exists, the function fails.
rec | The record to insert. |
can_replace | If true, then existing data can be rewritten, else data can only be added. |
station_can_add | If true, then it is allowed to add new station records to the database. Otherwise, data can be added only by reusing existing ones. |
Implements dballe::DB.
|
virtual |
Query attributes.
id_data | The database id of the data related to the attributes to retrieve |
id_var | The varcode of the variable related to the attributes to retrieve. See vartable.h (ignored) |
qcs | The WMO codes of the QC values requested. If it is empty, then all values are returned. |
attrs | The Record that will hold the resulting attributes |
Implements dballe::DB.
|
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") |
Implements dballe::DB.
|
virtual |
Start a query on the station archive.
query | The record with the query data (see Keywords used by dba_record) |
Implements dballe::DB.
|
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") |
Implements dballe::DB.
|
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 |
Implements dballe::DB.
|
virtual |
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::DB.
|
virtual |
Reset the database, removing all existing DBALLE 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. |
Implements dballe::DB.
|
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 entryes that have been added |
deleted | The number of repinfo entryes that have been deleted |
updated | The number of repinfo entryes that have been updated |
Implements dballe::DB.
|
virtual |
Remove orphan values from the database.
Orphan values are currently:
Depending on database size, this routine can take a few minutes to execute.
Implements dballe::DB.
|
protected |
Accessors for the various parts of the database.
|
protected |
Sequence accessors.
They are NULL for databases such as MySQL that do not use sequences.lev_tr ID sequence