libdballe  7.19
v6/sqlite/station.h
1 #ifndef DBALLE_DB_V6_SQLITE_STATION_H
2 #define DBALLE_DB_V6_SQLITE_STATION_H
3 
4 #include <dballe/db/v6/station.h>
5 #include <functional>
6 #include <memory>
7 
8 namespace wreport {
9 struct Var;
10 }
11 
12 namespace dballe {
13 namespace db {
14 namespace v6 {
15 namespace sqlite {
16 
21 {
22 protected:
27 
29  dballe::sql::SQLiteStatement* sfstm = nullptr;
31  dballe::sql::SQLiteStatement* smstm = nullptr;
34 
36  bool maybe_get_id(int lat, int lon, const char* ident, int* id);
37 
39  void read_station_vars(dballe::sql::SQLiteStatement& stm, std::function<void(std::unique_ptr<wreport::Var>)> dest);
40 
41 public:
44  SQLiteStationBase(const SQLiteStationBase&) = delete;
45  SQLiteStationBase(const SQLiteStationBase&&) = delete;
46  SQLiteStationBase& operator=(const SQLiteStationBase&) = delete;
47 
56  int get_id(int lat, int lon, const char* ident=nullptr) override;
57 
66  int obtain_id(int lat, int lon, const char* ident=nullptr, bool* inserted=NULL) override;
67 
68  void get_station_vars(int id_station, int id_report, std::function<void(std::unique_ptr<wreport::Var>)> dest) override;
69  void add_station_vars(int id_station, Record& rec) override;
70 
74  void dump(FILE* out) override;
75 };
76 
78 {
79 public:
81 };
82 
83 }
84 }
85 }
86 }
87 #endif
dballe::sql::SQLiteConnection & conn
DB connection.
Definition: v6/sqlite/station.h:26
Key/value store where keys are strings and values are wreport variables.
Definition: record.h:16
Copyright (C) 2008–2010 ARPA-SIM urpsim@smr.arpa.emr.it
Definition: cmdline.h:17
Precompiled queries to manipulate the station table.
Definition: v6/sqlite/station.h:20
Definition: v6/sqlite/station.h:77
SQLite statement.
Definition: sqlite.h:88
Definition: v6/station.h:18
Database connection.
Definition: sqlite.h:33