libdballe 9.13
sqlite/station.h
1#ifndef DBALLE_DB_V7_SQLITE_STATION_H
2#define DBALLE_DB_V7_SQLITE_STATION_H
3
4#include <dballe/db/v7/station.h>
5#include <functional>
6#include <memory>
7
8namespace wreport {
9struct Var;
10}
11
12namespace dballe {
13namespace db {
14namespace v7 {
15namespace sqlite {
16
20class SQLiteStation : public v7::Station
21{
22protected:
27
36
37 void
38 _dump(std::function<void(int, int, const Coords& coords, const char* ident)>
39 out) override;
40
41public:
43 ~SQLiteStation();
44 SQLiteStation(const SQLiteStation&) = delete;
45 SQLiteStation(const SQLiteStation&&) = delete;
46 SQLiteStation& operator=(const SQLiteStation&) = delete;
47
48 DBStation lookup(Tracer<>& trc, int id_station) override;
49 int maybe_get_id(Tracer<>& trc, const dballe::DBStation& st) override;
50 int insert_new(Tracer<>& trc, const dballe::DBStation& desc) override;
52 Tracer<>& trc, int id_station,
53 std::function<void(std::unique_ptr<wreport::Var>)> dest) override;
54 void add_station_vars(Tracer<>& trc, int id_station,
55 DBValues& values) override;
56 void
57 run_station_query(Tracer<>& trc, const v7::StationQueryBuilder& qb,
58 std::function<void(const dballe::DBStation&)>) override;
59};
60
61} // namespace sqlite
62} // namespace v7
63} // namespace db
64} // namespace dballe
65#endif
Smart pointer for trace::Step objects, which calls done() when going out of scope.
Definition db/v7/fwd.h:45
dballe::sql::SQLiteStatement * istm
Precompiled insert query.
Definition sqlite/station.h:33
int maybe_get_id(Tracer<> &trc, const dballe::DBStation &st) override
Get the station ID given latitude, longitude and mobile identifier.
dballe::sql::SQLiteStatement * smstm
Precompiled select mobile station query.
Definition sqlite/station.h:31
dballe::sql::SQLiteStatement * sfstm
Precompiled select fixed station query.
Definition sqlite/station.h:29
DBStation lookup(Tracer<> &trc, int id_station) override
Lookup station data by ID.
int insert_new(Tracer<> &trc, const dballe::DBStation &desc) override
Insert a new station in the database, without checking if it already exists.
dballe::sql::SQLiteConnection & conn
DB connection.
Definition sqlite/station.h:26
dballe::sql::SQLiteStatement * ssdstm
Precompiled select station data query.
Definition sqlite/station.h:35
void add_station_vars(Tracer<> &trc, int id_station, DBValues &values) override
Add all station variables (without attributes) to values.
void get_station_vars(Tracer<> &trc, int id_station, std::function< void(std::unique_ptr< wreport::Var >)> dest) override
Export station variables.
Database connection.
Definition sqlite.h:36
Coordinates.
Definition types.h:372
Definition types.h:940
Collection of DBValue objects, indexed by wreport::Varcode.
Definition values.h:230
Definition qbuilder.h:83
Definition station.h:25
Definition transaction.h:16
SQLite statement.
Definition sqlite.h:120