libdballe  7.29
v6/station.h
1 #ifndef DBALLE_DB_V6_STATION_H
2 #define DBALLE_DB_V6_STATION_H
3 
4 #include <dballe/sql/fwd.h>
5 #include <memory>
6 #include <cstdio>
7 #include <functional>
8 
9 namespace wreport {
10 struct Var;
11 }
12 
13 namespace dballe {
14 struct Record;
15 
16 namespace db {
17 namespace v6 {
18 
19 struct Station
20 {
21 public:
23  //static std::unique_ptr<Station> create(Connection& conn);
24 
25  virtual ~Station();
26 
35  virtual int get_id(int lat, int lon, const char* ident=NULL) = 0;
36 
45  virtual int obtain_id(int lat, int lon, const char* ident=NULL, bool* inserted=NULL) = 0;
46 
50  virtual void dump(FILE* out) = 0;
51 
55  virtual void get_station_vars(int id_station, int id_report, std::function<void(std::unique_ptr<wreport::Var>)> dest) = 0;
56 
63  virtual void add_station_vars(int id_station, Record& rec) = 0;
64 };
65 
66 }
67 }
68 }
69 #endif
70 
virtual void get_station_vars(int id_station, int id_report, std::function< void(std::unique_ptr< wreport::Var >)> dest)=0
Export station variables.
Key/value store where keys are strings and values are wreport variables.
Definition: record.h:17
Forward declarations for public dballe/sql names.
virtual ~Station()
Instantiate a Station object for this connection.
virtual void dump(FILE *out)=0
Dump the entire contents of the table to an output stream.
virtual int obtain_id(int lat, int lon, const char *ident=NULL, bool *inserted=NULL)=0
Get the station ID given latitude, longitude and mobile identifier.
virtual int get_id(int lat, int lon, const char *ident=NULL)=0
Get the station ID given latitude, longitude and mobile identifier.
virtual void add_station_vars(int id_station, Record &rec)=0
Add all station variables (without attributes) to rec.
Definition: v6/station.h:19