libdballe  7.21
postgresql/data.h
1 #ifndef DBALLE_DB_V7_POSTGRESQL_DATA_H
2 #define DBALLE_DB_V7_POSTGRESQL_DATA_H
3 
4 #include <dballe/db/v7/data.h>
5 #include <dballe/sql/fwd.h>
6 
7 namespace dballe {
8 struct Record;
9 
10 namespace db {
11 namespace v7 {
12 namespace postgresql {
13 struct DB;
14 
15 template<typename Traits>
16 class PostgreSQLDataCommon : public DataCommon<Traits>
17 {
18 protected:
21  std::string select_attrs_query_name;
22  std::string write_attrs_query_name;
23  std::string remove_attrs_query_name;
24  std::string remove_data_query_name;
25 
26 public:
30  PostgreSQLDataCommon& operator=(const PostgreSQLDataCommon&) = delete;
31 
32  void read_attrs(int id_data, std::function<void(std::unique_ptr<wreport::Var>)> dest) override;
33  void write_attrs(int id_data, const Values& values) override;
34  void remove_all_attrs(int id_data) override;
35  void remove(const v7::IdQueryBuilder& qb) override;
36 };
37 
38 extern template class PostgreSQLDataCommon<StationDataTraits>;
39 extern template class PostgreSQLDataCommon<DataTraits>;
40 
41 
43 {
44 public:
45  using PostgreSQLDataCommon::PostgreSQLDataCommon;
46 
48 
49  void insert(dballe::db::v7::Transaction& t, v7::bulk::InsertStationVars& vars, bulk::UpdateMode update_mode=bulk::UPDATE, bool with_attrs=false) override;
50  void dump(FILE* out) override;
51 };
52 
54 {
55 public:
56  using PostgreSQLDataCommon::PostgreSQLDataCommon;
57 
59 
60  void insert(dballe::db::v7::Transaction& t, v7::bulk::InsertVars& vars, bulk::UpdateMode update_mode=bulk::UPDATE, bool with_attrs=false) override;
61  void dump(FILE* out) override;
62 };
63 
64 }
65 }
66 }
67 }
68 #endif
Database connection.
Definition: postgresql.h:239
virtual void dump(FILE *out)=0
Dump the entire contents of the table to an output stream.
Definition: v7/qbuilder.h:115
Definition: postgresql/data.h:16
Definition: postgresql/data.h:53
Definition: data.h:36
Forward declarations for public dballe/sql names.
Copyright (C) 2008–2010 ARPA-SIM urpsim@smr.arpa.emr.it
Definition: cmdline.h:17
Input for a bulk insert of a lot of variables sharing the same context information.
Definition: data.h:275
dballe::sql::PostgreSQLConnection & conn
DB connection.
Definition: postgresql/data.h:20
Definition: db/v7/transaction.h:12
void read_attrs(int id_data, std::function< void(std::unique_ptr< wreport::Var >)> dest) override
Load from the database all the attributes for var.
void remove_all_attrs(int id_data) override
Remove all attributes from a variable.
virtual void insert(dballe::db::v7::Transaction &t, typename Traits::BulkVars &vars, bulk::UpdateMode update_mode=bulk::UPDATE, bool with_attrs=false)=0
Bulk variable insert.
Input for a bulk insert of a lot of variables sharing the same context information.
Definition: data.h:297
void write_attrs(int id_data, const Values &values) override
Replace the attributes of a variable with those in Values.
Collection of Value objects, indexed by wreport::Varcode.
Definition: values.h:202