libdballe  7.19
v6/driver.h
1 #ifndef DBALLE_DB_V6_DRIVER_H
2 #define DBALLE_DB_V6_DRIVER_H
3 
4 #include <dballe/core/defs.h>
5 #include <dballe/db/defs.h>
6 #include <dballe/sql/fwd.h>
7 #include <wreport/var.h>
8 #include <memory>
9 #include <functional>
10 #include <vector>
11 #include <cstdio>
12 
13 namespace dballe {
14 namespace db {
15 namespace v6 {
16 struct QueryBuilder;
17 struct Repinfo;
18 struct Station;
19 struct LevTr;
20 struct DataV6;
21 struct AttrV6;
22 
25 {
26  int out_lat;
27  int out_lon;
28  char out_ident[64];
29  int out_ident_size; // -1 for NULL
30  wreport::Varcode out_varcode;
31  Datetime out_datetime;
32  Datetime out_datetimemax;
33  char out_value[255];
34  int out_rep_cod;
35  int out_ana_id;
36  int out_id_ltr;
37  int out_id_data;
38  int priority;
39 
47 
49  void dump(FILE* out);
50 };
51 
52 struct Driver
53 {
54  sql::Connection& connection;
55 
56  Driver(sql::Connection& connection);
57  virtual ~Driver();
58 
60  virtual std::unique_ptr<v6::Repinfo> create_repinfov6() = 0;
61 
63  virtual std::unique_ptr<v6::Station> create_stationv6() = 0;
64 
66  virtual std::unique_ptr<v6::LevTr> create_levtrv6() = 0;
67 
69  virtual std::unique_ptr<v6::DataV6> create_datav6() = 0;
70 
72  virtual std::unique_ptr<v6::AttrV6> create_attrv6() = 0;
73 
82  virtual void run_built_query_v6(const v6::QueryBuilder& qb, std::function<void(SQLRecordV6& rec)> dest) = 0;
83 
85  void create_tables(db::Format format);
86 
88  virtual void create_tables_v6() = 0;
89 
91  void delete_tables(db::Format format);
92 
94  virtual void delete_tables_v6() = 0;
95 
97  void remove_all(db::Format format);
98 
100  virtual void remove_all_v6();
101 
103  virtual void vacuum_v6() = 0;
104 
106  static std::unique_ptr<Driver> create(sql::Connection& conn);
107 };
108 
109 }
110 }
111 }
112 #endif
bool querybest_fields_are_the_same(const SQLRecordV6 &r)
Checks true if ana_id, id_ltr, datetime and varcode are the same in both records. ...
Forward declarations for public dballe/sql names.
Copyright (C) 2008–2010 ARPA-SIM urpsim@smr.arpa.emr.it
Definition: cmdline.h:17
Query results from SQL output.
Definition: v6/driver.h:24
Definition: v6/driver.h:52
Definition: sql.h:59
uint16_t Varcode
void dump(FILE *out)
Dump the record as a single line to the given output stream.
Date and time.
Definition: types.h:158
Build SQL queries for V6 databases.
Definition: v6/qbuilder.h:14
Common definitions.