libdballe  9.11
data.h
1 #ifndef DBALLE_DATA_H
2 #define DBALLE_DATA_H
3 
4 #include <dballe/fwd.h>
5 #include <dballe/types.h>
6 #include <wreport/var.h>
7 #include <memory>
8 
9 namespace dballe {
10 
17 class Data
18 {
19 public:
20  Data() = default;
21  Data(const Data&) = default;
22  Data(Data&&) = default;
23  virtual ~Data() {}
24  Data& operator=(const Data& o) = default;
25  Data& operator=(Data&& o) = default;
26 
28  static std::unique_ptr<Data> create();
29 
31  virtual void clear() = 0;
32 
34  virtual void clear_ids() = 0;
35 
37  virtual void clear_vars() = 0;
38 
40  virtual bool operator==(const Data& rec) const = 0;
41 
43  virtual bool operator!=(const Data& rec) const = 0;
44 
46  virtual void print(FILE* out) const = 0;
47 };
48 
49 }
50 #endif
51 
static std::unique_ptr< Data > create()
Create a new Record.
Common base types used by most of DB-All.e code.
Definition: cmdline.h:18
virtual bool operator!=(const Data &rec) const =0
Check if two records differ.
virtual void clear_vars()=0
Remove all Bxxyyy keys from the record, leaving the rest intact.
Key/value store where keys are strings and values are wreport variables.
Definition: data.h:17
virtual bool operator==(const Data &rec) const =0
Check if two records are the same.
virtual void clear_ids()=0
Unset all database IDs in station and values.
virtual void clear()=0
Remove all contents from the record.
virtual void print(FILE *out) const =0
Print the contents of this record to the given stream.