libwreport 3.40
vartable.h
1#ifndef WREPORT_VARTABLE_H
2#define WREPORT_VARTABLE_H
3
4#include <filesystem>
5#include <functional>
6#include <string>
7#include <wreport/fwd.h>
8#include <wreport/varinfo.h>
9
10namespace wreport {
11
31{
32public:
33 virtual ~Vartable();
34
36 [[deprecated("Use path instead")]] virtual std::string pathname() const = 0;
37
46 virtual Varinfo query(Varcode code) const = 0;
47
49 virtual bool contains(Varcode code) const = 0;
50
67 virtual Varinfo query_altered(Varcode code, int new_scale,
68 unsigned new_bit_len,
69 int new_bit_ref) const = 0;
70
78 virtual bool iterate(std::function<bool(Varinfo)> dest) const = 0;
79
86 [[deprecated(
87 "Use load_bufr(filesystem::path& instead")]] static const Vartable*
88 load_bufr(const std::string& pathname);
89 static const Vartable* load_bufr(const std::filesystem::path& pathname);
90 static const Vartable* load_bufr(const char* pathname);
91
98 [[deprecated(
99 "Use load_crex(filesystem::path& instead")]] static const Vartable*
100 load_crex(const std::string& pathname);
101 static const Vartable* load_crex(const std::filesystem::path& pathname);
102 static const Vartable* load_crex(const char* pathname);
103
105 static const Vartable* get_bufr(const BufrTableID& id);
106
108 static const Vartable* get_crex(const CrexTableID& id);
109
111 static const Vartable* get_bufr(const std::string& basename);
112
114 static const Vartable* get_crex(const std::string& basename);
115
117 virtual std::filesystem::path path() const = 0;
118};
119
120} // namespace wreport
121
122#endif
Identifying information for one distinct instance of BUFR tables.
Definition tableinfo.h:15
Identifying information for one distinct instance of CREX tables.
Definition tableinfo.h:63
Holds a variable information table.
Definition vartable.h:31
virtual Varinfo query_altered(Varcode code, int new_scale, unsigned new_bit_len, int new_bit_ref) const =0
Query an altered version of the vartable.
static const Vartable * load_crex(const std::string &pathname)
Return a CREX vartable, by file name.
static const Vartable * get_crex(const CrexTableID &id)
Find a CREX table.
virtual Varinfo query(Varcode code) const =0
Query the Vartable.
virtual std::filesystem::path path() const =0
Return the pathname of the file from which this table has been loaded.
static const Vartable * load_bufr(const std::string &pathname)
Return a BUFR vartable, by file name.
static const Vartable * get_crex(const std::string &basename)
Find a CREX table, by file name (without extension)
virtual bool iterate(std::function< bool(Varinfo)> dest) const =0
Iterate the whole contents of the table.
virtual std::string pathname() const =0
Return the pathname of the file from which this table has been loaded.
static const Vartable * get_bufr(const BufrTableID &id)
Find a BUFR table.
static const Vartable * get_bufr(const std::string &basename)
Find a BUFR table, by file name (without extension)
virtual bool contains(Varcode code) const =0
Check if the code can be resolved to a varinfo.
String functions.
Definition benchmark.h:13
const _Varinfo * Varinfo
Varinfo reference.
Definition fwd.h:11
uint16_t Varcode
Holds the WMO variable code of a variable.
Definition fwd.h:12
Implement fast access to information about WMO variables.