1#ifndef DBALLE_DB_V7_DATAV7_H
2#define DBALLE_DB_V7_DATAV7_H
6#include <dballe/core/fwd.h>
9#include <dballe/db/defs.h>
10#include <dballe/db/v7/fwd.h>
11#include <wreport/var.h>
22template<
typename Traits>
26 typedef typename Traits::BatchValue BatchValue;
27 static const char* table_name;
67 virtual void read_attrs(
Tracer<>& trc,
int id_data, std::function<
void(std::unique_ptr<wreport::Var>)> dest) = 0;
85 virtual void update(
Tracer<>& trc, std::vector<typename Traits::BatchValue>& vars,
bool with_attrs) = 0;
94 virtual void dump(FILE* out) = 0;
96 virtual void clear_cache() = 0;
108 void print_row(
int id,
int id_station,
wreport::Varcode code,
const char* val,
const std::vector<uint8_t>& attrs);
120 void print_row(
int id,
int id_station,
int id_levtr,
const Datetime& dt,
wreport::Varcode code,
const char* val,
const std::vector<uint8_t>& attrs);
127 static const char* table_name;
133 static const char* table_name;
144 virtual void insert(
Tracer<>& trc,
int id_station, std::vector<batch::StationDatum>& vars,
bool with_attrs) = 0;
160 virtual void insert(
Tracer<>& trc,
int id_station,
const Datetime& datetime, std::vector<batch::MeasuredDatum>& vars,
bool with_attrs) = 0;
Definition: db/v7/data.h:24
void read_attrs_into_values(Tracer<> &trc, int id_data, Values &values, const db::AttrList &exclude)
Load attributes from the database into a Values, except those whose Varcode is in exclude
virtual void update(Tracer<> &trc, std::vector< typename Traits::BatchValue > &vars, bool with_attrs)=0
Bulk variable update.
void merge_attrs(Tracer<> &trc, int id_data, const Values &attrs)
Merge the given attributes with the existing attributes of the given variable:
virtual void remove(Tracer<> &trc, const v7::IdQueryBuilder &qb)=0
Run the query to delete all records selected by the given QueryBuilder.
virtual void read_attrs(Tracer<> &trc, int id_data, std::function< void(std::unique_ptr< wreport::Var >)> dest)=0
Load from the database all the attributes for var.
virtual void remove_all_attrs(Tracer<> &trc, int id_data)=0
Remove all attributes from a variable.
virtual void dump(FILE *out)=0
Dump the entire contents of the table to an output stream.
virtual void write_attrs(Tracer<> &trc, int id_data, const Values &values)=0
Replace the attributes of a variable with those in Values.
void read_attrs_into_values(Tracer<> &trc, int id_data, Values &values)
Load attributes from the database into a Values.
void remove_attrs(Tracer<> &trc, int data_id, const db::AttrList &attrs)
Remove the given attributes from the given variable, if they exist.
virtual void remove_by_id(Tracer<> &trc, int id)=0
Run the query to delete the record with the given ID.
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.
Range of datetimes.
Definition: types.h:295
Date and time.
Definition: types.h:165
Collection of Value objects, indexed by wreport::Varcode.
Definition: values.h:177
Definition: db/v7/data.h:113
Definition: qbuilder.h:92
Definition: db/v7/data.h:131
Definition: db/v7/data.h:156
virtual void query(Tracer<> &trc, int id_station, const Datetime &datetime, std::function< void(int id, int id_levtr, wreport::Varcode code)> dest)=0
Query contents of the data table.
virtual void insert(Tracer<> &trc, int id_station, const Datetime &datetime, std::vector< batch::MeasuredDatum > &vars, bool with_attrs)=0
Bulk variable insert.
virtual void run_data_query(Tracer<> &trc, const v7::DataQueryBuilder &qb, std::function< void(const dballe::DBStation &station, int id_levtr, const Datetime &datetime, int id_data, std::unique_ptr< wreport::Var > var)>)=0
Run a data query, iterating on the resulting variables.
virtual void run_summary_query(Tracer<> &trc, const v7::SummaryQueryBuilder &qb, std::function< void(const dballe::DBStation &station, int id_levtr, wreport::Varcode code, const DatetimeRange &datetime, size_t size)>)=0
Run a summary query, iterating on the resulting variables.
Definition: qbuilder.h:116
Definition: db/v7/data.h:101
Definition: db/v7/data.h:125
Definition: db/v7/data.h:140
virtual void insert(Tracer<> &trc, int id_station, std::vector< batch::StationDatum > &vars, bool with_attrs)=0
Bulk variable insert.
virtual void run_station_data_query(Tracer<> &trc, const v7::DataQueryBuilder &qb, std::function< void(const dballe::DBStation &station, int id_data, std::unique_ptr< wreport::Var > var)>)=0
Run a station data query, iterating on the resulting variables.
virtual void query(Tracer<> &trc, int id_station, std::function< void(int id, wreport::Varcode code)> dest)=0
Query contents of the data table.
Definition: qbuilder.h:125
Definition: transaction.h:16
Structures used as input to database insert functions.