libdballe  9.14
db/v7/sqlite/data.h
1 #ifndef DBALLE_DB_V7_SQLITE_DATA_H
2 #define DBALLE_DB_V7_SQLITE_DATA_H
3 
4 #include <dballe/db/v7/cache.h>
5 #include <dballe/db/v7/data.h>
6 #include <dballe/sql/fwd.h>
7 
8 namespace dballe {
9 namespace db {
10 namespace v7 {
11 namespace sqlite {
12 struct DB;
13 
14 // Partial implementation of the common parts of StationData and Data
15 template <typename Parent> class SQLiteDataCommon : public Parent
16 {
17 protected:
20 
33 
34 public:
36  SQLiteDataCommon(const SQLiteDataCommon&) = delete;
37  SQLiteDataCommon(const SQLiteDataCommon&&) = delete;
38  SQLiteDataCommon& operator=(const SQLiteDataCommon&) = delete;
40 
41  void update(Tracer<>& trc, std::vector<typename Parent::BatchValue>& vars,
42  bool with_attrs) override;
43  void read_attrs(
44  Tracer<>& trc, int id_data,
45  std::function<void(std::unique_ptr<wreport::Var>)> dest) override;
46  void write_attrs(Tracer<>& trc, int id_data, const Values& values) override;
47  void remove_all_attrs(Tracer<>& trc, int id_data) override;
48  void remove(Tracer<>& trc, const v7::IdQueryBuilder& qb) override;
49  void remove_by_id(Tracer<>& trc, int id) override;
50 };
51 
52 extern template class SQLiteDataCommon<StationData>;
53 extern template class SQLiteDataCommon<Data>;
54 
59 {
60 public:
61  using SQLiteDataCommon::SQLiteDataCommon;
62 
64 
65  void
66  query(Tracer<>& trc, int id_station,
67  std::function<void(int id, wreport::Varcode code)> dest) override;
68  void insert(Tracer<>& trc, int id_station,
69  std::vector<batch::StationDatum>& vars,
70  bool with_attrs) override;
71  void run_station_data_query(
72  Tracer<>& trc, const v7::DataQueryBuilder& qb,
73  std::function<void(const dballe::DBStation& station, int id_data,
74  std::unique_ptr<wreport::Var> var)>) override;
75  void dump(FILE* out) override;
76  void clear_cache() override {}
77 };
78 
83 {
84 public:
85  using SQLiteDataCommon::SQLiteDataCommon;
86 
88 
89  void query(Tracer<>& trc, int id_station, const Datetime& datetime,
90  std::function<void(int id, int id_levtr, wreport::Varcode code)>
91  dest) override;
92  void insert(Tracer<>& trc, int id_station, const Datetime& datetime,
93  std::vector<batch::MeasuredDatum>& vars,
94  bool with_attrs) override;
95  void run_data_query(
96  Tracer<>& trc, const v7::DataQueryBuilder& qb,
97  std::function<void(const dballe::DBStation& station, int id_levtr,
98  const Datetime& datetime, int id_data,
99  std::unique_ptr<wreport::Var> var)>) override;
100  void run_summary_query(
101  Tracer<>& trc, const v7::SummaryQueryBuilder& qb,
102  std::function<void(const dballe::DBStation& station, int id_levtr,
103  wreport::Varcode code, const DatetimeRange& datetime,
104  size_t size)>) override;
105  void dump(FILE* out) override;
106  void clear_cache() override {}
107 };
108 
109 } // namespace sqlite
110 } // namespace v7
111 } // namespace db
112 } // namespace dballe
113 #endif
Precompiled query to manipulate the data table.
Definition: db/v7/sqlite/data.h:82
Forward declarations for public dballe/sql names.
Definition: qbuilder.h:134
Definition: qbuilder.h:121
Definition: db/v7/sqlite/data.h:15
Definition: cmdline.h:18
Range of datetimes.
Definition: types.h:296
Definition: transaction.h:15
dballe::sql::SQLiteStatement * ustm
Precompiled update statement.
Definition: db/v7/sqlite/data.h:32
Smart pointer for trace::Step objects, which calls done() when going out of scope.
Definition: db/v7/fwd.h:44
dballe::sql::SQLiteStatement * remove_attrs_stm
Precompiled remove attributes statement.
Definition: db/v7/sqlite/data.h:26
Date and time.
Definition: types.h:163
dballe::sql::SQLiteConnection & conn
DB connection.
Definition: db/v7/sqlite/data.h:19
dballe::sql::SQLiteStatement * write_attrs_stm
Precompiled write attributes statement.
Definition: db/v7/sqlite/data.h:24
dballe::sql::SQLiteStatement * istm
Precompiled insert statement.
Definition: db/v7/sqlite/data.h:30
SQLite statement.
Definition: sqlite.h:119
Definition: types.h:939
Precompiled query to manipulate the station data table.
Definition: db/v7/sqlite/data.h:58
dballe::sql::SQLiteStatement * sstm
Precompiled select statement.
Definition: db/v7/sqlite/data.h:28
Collection of Value objects, indexed by wreport::Varcode.
Definition: values.h:215
Database connection.
Definition: sqlite.h:35
dballe::sql::SQLiteStatement * read_attrs_stm
Precompiled read attributes statement.
Definition: db/v7/sqlite/data.h:22
Definition: qbuilder.h:95