4 #include <dballe/fwd.h> 5 #include <dballe/core/cursor.h> 7 #include <dballe/db/fwd.h> 8 #include <dballe/db/defs.h> 9 #include <dballe/msg/fwd.h> 12 #include <wreport/var.h> 52 std::string format_format(Format format);
55 Format format_parse(
const std::string& str);
61 virtual void remove() = 0;
68 virtual unsigned test_iterate(FILE* dump=0) = 0;
74 virtual void remove() = 0;
77 virtual std::shared_ptr<db::Transaction> get_transaction()
const = 0;
83 virtual int attr_reference_id()
const = 0;
88 virtual void query_attrs(std::function<
void(std::unique_ptr<wreport::Var>)> dest,
bool force_read=
false) = 0;
91 virtual void insert_attrs(
const Values& attrs);
94 virtual void remove_attrs(
const db::AttrList& attrs);
101 virtual unsigned test_iterate(FILE* dump=0) = 0;
107 virtual void remove() = 0;
110 virtual std::shared_ptr<db::Transaction> get_transaction()
const = 0;
116 virtual int attr_reference_id()
const = 0;
121 virtual void query_attrs(std::function<
void(std::unique_ptr<wreport::Var>)> dest,
bool force_read=
false) = 0;
124 virtual void insert_attrs(
const Values& attrs);
127 virtual void remove_attrs(
const db::AttrList& attrs);
134 virtual unsigned test_iterate(FILE* dump=0) = 0;
140 virtual void remove() = 0;
147 virtual unsigned test_iterate(FILE* dump=0) = 0;
163 virtual void clear_cached_state() = 0;
173 virtual void attr_query_station(
int data_id, std::function<
void(std::unique_ptr<wreport::Var>)> dest) = 0;
183 virtual void attr_query_data(
int data_id, std::function<
void(std::unique_ptr<wreport::Var>)> dest) = 0;
193 virtual void attr_insert_station(
int data_id,
const Values& attrs) = 0;
203 virtual void attr_insert_data(
int data_id,
const Values& attrs) = 0;
214 virtual void attr_remove_station(
int data_id,
const db::AttrList& attrs) = 0;
225 virtual void attr_remove_data(
int data_id,
const db::AttrList& attrs) = 0;
244 virtual void update_repinfo(
const char* repinfo_file,
int* added,
int* deleted,
int* updated) = 0;
249 virtual void dump(FILE* out) = 0;
255 static db::Format get_default_format();
256 static void set_default_format(db::Format format);
264 static std::shared_ptr<DB> connect_from_file(
const char* pathname);
269 static std::shared_ptr<DB> connect_memory();
274 static std::shared_ptr<DB> create(std::unique_ptr<sql::Connection> conn);
284 static bool is_url(
const char* str);
287 virtual db::Format format()
const = 0;
295 virtual void disappear() = 0;
308 virtual void reset(
const char* repinfo_file=0) = 0;
314 virtual std::shared_ptr<dballe::db::Transaction> test_transaction(
bool readonly=
false) = 0;
325 virtual void vacuum() = 0;
335 virtual void attr_query_station(
int data_id, std::function<
void(std::unique_ptr<wreport::Var>)>&& dest);
345 virtual void attr_query_data(
int data_id, std::function<
void(std::unique_ptr<wreport::Var>)>&& dest);
355 void attr_insert_station(
int data_id,
const Values& attrs);
365 void attr_insert_data(
int data_id,
const Values& attrs);
376 void attr_remove_station(
int data_id,
const db::AttrList& attrs);
387 void attr_remove_data(
int data_id,
const db::AttrList& attrs);
392 void dump(FILE* out);
395 virtual void print_info(FILE* out);
398 static const char* default_repinfo_file();
401 inline static std::unique_ptr<db::DB>
downcast(std::unique_ptr<dballe::DB> db)
404 if (!res)
throw std::runtime_error(
"Attempted to downcast the wrong kind of DB");
406 return std::unique_ptr<db::DB>(res);
410 inline static std::shared_ptr<db::DB>
downcast(std::shared_ptr<dballe::DB> db)
412 auto res = std::dynamic_pointer_cast<
db::DB>(db);
413 if (!res)
throw std::runtime_error(
"Attempted to downcast the wrong kind of DB");
Forward declarations for public dballe/sql names.
Options controlling how messages are imported in the database.
Definition: db.h:64
DBInsertOptions with public constructor and copy, safe to use in dballe code but not accessible from ...
Definition: db/db.h:38
Cursor iterating over station data values.
Definition: core/cursor.h:27
static std::shared_ptr< db::DB > downcast(std::shared_ptr< dballe::DB > db)
Downcast a shared_ptr pointer.
Definition: db/db.h:410
Options controlling how values are inserted in the database.
Definition: db.h:122
static std::unique_ptr< db::DB > downcast(std::unique_ptr< dballe::DB > db)
Downcast a unique_ptr pointer.
Definition: db/db.h:401
Cursor iterating over stations.
Definition: core/cursor.h:12
DBImportOptions with public constructor and copy, safe to use in dballe code but not accessible from ...
Definition: db/db.h:28
Cursor iterating over data values.
Definition: core/cursor.h:42
Cursor iterating over summary entries.
Definition: core/cursor.h:57
Collection of Value objects, indexed by wreport::Varcode.
Definition: values.h:176