libdballe 9.6
station.h
1#ifndef DBALLE_DB_V7_STATION_H
2#define DBALLE_DB_V7_STATION_H
3
4#include <dballe/fwd.h>
5#include <dballe/core/fwd.h>
6#include <dballe/sql/fwd.h>
7#include <dballe/db/v7/fwd.h>
8#include <dballe/db/v7/cache.h>
9#include <memory>
10#include <cstdio>
11#include <functional>
12#include <unordered_map>
13#include <unordered_set>
14#include <vector>
15
16namespace wreport {
17struct Var;
18}
19
20namespace dballe {
21namespace db {
22namespace v7 {
23
24struct Station
25{
26protected:
28 virtual void _dump(std::function<void(int, int, const Coords& coords, const char* ident)> out) = 0;
29
30public:
32 virtual ~Station();
33
35 virtual DBStation lookup(Tracer<>& trc, int id_station) = 0;
36
42 virtual int maybe_get_id(Tracer<>& trc, const dballe::DBStation& st) = 0;
43
49 virtual int insert_new(Tracer<>& trc, const dballe::DBStation& desc) = 0;
50
54 virtual void run_station_query(Tracer<>& trc, const v7::StationQueryBuilder& qb, std::function<void(const dballe::DBStation& station)>) = 0;
55
59 virtual void get_station_vars(Tracer<>& trc, int id_station, std::function<void(std::unique_ptr<wreport::Var>)> dest) = 0;
60
67 virtual void add_station_vars(Tracer<>& trc, int id_station, DBValues& values) = 0;
68
72 void dump(FILE* out);
73};
74
75}
76}
77}
78#endif
79
Smart pointer for trace::Step objects, which calls done() when going out of scope.
Definition: db/v7/fwd.h:46
Forward declarations for public dballe/sql names.
Coordinates.
Definition: types.h:369
Definition: types.h:851
Collection of DBValue objects, indexed by wreport::Varcode.
Definition: values.h:192
Definition: qbuilder.h:82
Definition: station.h:25
virtual int insert_new(Tracer<> &trc, const dballe::DBStation &desc)=0
Insert a new station in the database, without checking if it already exists.
virtual int maybe_get_id(Tracer<> &trc, const dballe::DBStation &st)=0
Get the station ID given latitude, longitude and mobile identifier.
virtual void get_station_vars(Tracer<> &trc, int id_station, std::function< void(std::unique_ptr< wreport::Var >)> dest)=0
Export station variables.
virtual void add_station_vars(Tracer<> &trc, int id_station, DBValues &values)=0
Add all station variables (without attributes) to values.
virtual void run_station_query(Tracer<> &trc, const v7::StationQueryBuilder &qb, std::function< void(const dballe::DBStation &station)>)=0
Run a station query, iterating on the resulting stations.
void dump(FILE *out)
Dump the entire contents of the table to an output stream.
virtual DBStation lookup(Tracer<> &trc, int id_station)=0
Lookup station data by ID.
Definition: transaction.h:16