4 #include <dballe/fwd.h> 5 #include <wreport/var.h> 41 static std::unique_ptr<DBConnectOptions>
create(
const std::string& url);
47 static std::unique_ptr<DBConnectOptions>
test_create(
const char* backend=
nullptr);
76 bool import_attributes =
false;
85 bool update_station =
false;
94 bool overwrite =
false;
101 static std::unique_ptr<DBImportOptions>
create();
126 bool can_replace =
false;
134 bool can_add_stations =
true;
136 static std::unique_ptr<DBInsertOptions>
create();
149 class Transaction :
public std::enable_shared_from_this<Transaction>
155 virtual void commit() = 0;
158 virtual void rollback() = 0;
161 virtual void rollback_nothrow() noexcept = 0;
176 virtual std::unique_ptr<CursorStation> query_stations(
const Query& query) = 0;
189 virtual std::unique_ptr<CursorStationData> query_station_data(
const Query& query) = 0;
202 virtual std::unique_ptr<CursorData> query_data(
const Query& query) = 0;
212 virtual std::unique_ptr<CursorSummary> query_summary(
const Query& query) = 0;
222 virtual std::unique_ptr<CursorMessage> query_messages(
const Query& query) = 0;
230 virtual void remove_all() = 0;
238 virtual void remove_station_data(
const Query& query) = 0;
246 virtual void remove_data(
const Query& query) = 0;
256 virtual void import_message(
const Message& message,
const DBImportOptions& opts=DBImportOptions::defaults) = 0;
266 virtual void import_messages(
const std::vector<std::shared_ptr<Message>>& messages,
const DBImportOptions& opts=DBImportOptions::defaults);
279 virtual void insert_station_data(
Data& data,
const DBInsertOptions& opts=DBInsertOptions::defaults) = 0;
292 virtual void insert_data(
Data& data,
const DBInsertOptions& opts=DBInsertOptions::defaults) = 0;
296 class DB:
public std::enable_shared_from_this<DB>
310 virtual std::shared_ptr<dballe::Transaction> transaction(
bool readonly=
false) = 0;
325 virtual std::unique_ptr<CursorStation> query_stations(
const Query& query);
338 virtual std::unique_ptr<CursorStationData> query_station_data(
const Query& query);
351 virtual std::unique_ptr<CursorData> query_data(
const Query& query);
361 virtual std::unique_ptr<CursorSummary> query_summary(
const Query& query);
371 virtual std::unique_ptr<CursorMessage> query_messages(
const Query& query);
387 void remove_station_data(
const Query& query);
395 void remove_data(
const Query& query);
415 void import_messages(
const std::vector<std::shared_ptr<Message>>& messages,
const DBImportOptions& opts=DBImportOptions::defaults);
428 void insert_station_data(
Data& vals,
const DBInsertOptions& opts=DBInsertOptions::defaults);
std::vector< wreport::Varcode > varlist
If not empty, import only the given data values.
Definition: db.h:99
Options controlling how messages are imported in the database.
Definition: db.h:64
std::string report
Report name to use to import data.
Definition: db.h:73
bool wipe
Wipe database on connection.
Definition: db.h:28
Options controlling how values are inserted in the database.
Definition: db.h:122
void reset_actions()
Disable all the one-off actions set to perform on connection.
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: data.h:17
std::string url
URL to use to connect to the database.
Definition: db.h:25
Query used to filter DB-All.e data.
Definition: query.h:14
static std::unique_ptr< DBConnectOptions > create(const std::string &url)
Create a DBConnectOptions parsing the given URL.
Options controlling how to connect to a database.
Definition: db.h:17
static std::unique_ptr< DBConnectOptions > test_create(const char *backend=nullptr)
Create a DBConnectOptions for running unit tests.