4 #include <dballe/message.h> 6 #include <dballe/core/fwd.h> 7 #include <dballe/msg/fwd.h> 9 #include <dballe/core/matcher.h> 11 #include <dballe/importer.h> 12 #include <dballe/exporter.h> 33 using dballe::ImporterOptions::operator==;
34 using dballe::ImporterOptions::operator!=;
45 using dballe::ExporterOptions::operator==;
46 using dballe::ExporterOptions::operator!=;
50 typedef std::vector<std::shared_ptr<dballe::Message>> Messages;
59 Messages messages_from_csv(
CSVReader& in);
64 void messages_to_csv(
const Messages& msgs,
CSVWriter& out);
75 unsigned messages_diff(
const Messages& msgs1,
const Messages& msgs2);
78 void messages_print(
const Messages& msgs, FILE* out);
84 typedef std::vector<msg::Context>::const_iterator const_iterator;
85 typedef std::vector<msg::Context>::iterator iterator;
86 typedef std::vector<msg::Context>::const_reverse_iterator const_reverse_iterator;
87 typedef std::vector<msg::Context>::reverse_iterator reverse_iterator;
90 std::vector<msg::Context> m_contexts;
92 iterator insert_new(
const Level& level,
const Trange& trange);
101 const_iterator begin()
const {
return m_contexts.begin(); }
102 const_iterator end()
const {
return m_contexts.end(); }
103 iterator begin() {
return m_contexts.begin(); }
104 iterator end() {
return m_contexts.end(); }
105 const_reverse_iterator rbegin()
const {
return m_contexts.rbegin(); }
106 const_reverse_iterator rend()
const {
return m_contexts.rend(); }
107 const_iterator cbegin()
const {
return m_contexts.cbegin(); }
108 const_iterator cend()
const {
return m_contexts.cend(); }
110 const_iterator find(
const Level& level,
const Trange& trange)
const;
111 iterator find(
const Level& level,
const Trange& trange);
113 iterator obtain(
const Level& level,
const Trange& trange);
114 bool drop(
const Level& level,
const Trange& trange);
116 size_t size()
const {
return m_contexts.size(); }
117 bool empty()
const {
return m_contexts.empty(); }
118 void clear() {
return m_contexts.clear(); }
119 void reserve(
typename std::vector<Value>::size_type size) { m_contexts.reserve(size); }
120 iterator erase(iterator pos) {
return m_contexts.erase(pos); }
136 int find_index(
const Level& lev,
const Trange& tr)
const;
139 void set_impl(
const Level& lev,
const Trange& tr, std::unique_ptr<wreport::Var> var)
override;
147 MessageType type = MessageType::GENERIC;
176 static std::shared_ptr<Message> downcast(std::shared_ptr<dballe::Message> o);
178 std::unique_ptr<dballe::Message> clone()
const override;
179 Datetime get_datetime()
const override;
180 Coords get_coords()
const override;
181 Ident get_ident()
const override;
182 std::string get_report()
const override;
183 MessageType
get_type()
const override {
return type; }
185 void print(FILE* out)
const override;
217 void set_datetime(
const Datetime& dt);
224 bool remove_context(
const Level& lev,
const Trange& tr);
244 const Values& find_station_context()
const;
309 void sounding_pack_levels();
323 std::unique_ptr<dballe::CursorStation> query_stations(
const Query& query)
const override;
324 std::unique_ptr<dballe::CursorStationData> query_station_data(
const Query& query)
const override;
325 std::unique_ptr<dballe::CursorData> query_data(
const Query& query)
const override;
326 std::unique_ptr<dballe::CursorData> query_station_and_data(
const Query& query)
const;
334 static MessageType type_from_repmemo(
const char* repmemo);
339 static const char* repmemo_from_type(MessageType type);
341 #include <dballe/msg/msg-extravars.h> 355 matcher::Result match_var_id(
int val)
const override;
356 matcher::Result match_station_id(
int val)
const override;
357 matcher::Result match_station_wmo(
int block,
int station=-1)
const override;
358 matcher::Result match_datetime(
const DatetimeRange& range)
const override;
359 matcher::Result match_coords(
const LatRange& latrange,
const LonRange& lonrange)
const override;
360 matcher::Result match_rep_memo(
const char* memo)
const override;
369 const std::vector<std::shared_ptr<dballe::Message>>& m;
371 MatchedMessages(
const std::vector<std::shared_ptr<dballe::Message>>& m);
374 matcher::Result match_var_id(
int val)
const override;
375 matcher::Result match_station_id(
int val)
const override;
376 matcher::Result match_station_wmo(
int block,
int station=-1)
const override;
377 matcher::Result match_datetime(
const DatetimeRange& range)
const override;
378 matcher::Result match_coords(
const LatRange& latrange,
const LonRange& lonrange)
const override;
379 matcher::Result match_rep_memo(
const char* memo)
const override;
Sorted storage for all the dba_msg_datum present on one level.
Common interface for things that are matched.
Definition: matcher.h:29
Create wreport variables from the DB-All.e B table.
void print(FILE *out)
Print a summary of the options to out.
Coordinates.
Definition: types.h:365
Information on how a value has been sampled or computed with regards to time.
Definition: types.h:683
A bulletin that has been decoded and physically interpreted.
Definition: message.h:28
Vertical level or layer.
Definition: types.h:621
A station identifier, that can be any string (including the empty string) or a missing value...
Definition: types.h:744
Match adapter for Messages.
Definition: msg.h:367
Store an array of physical data all on the same level.
Definition: context.h:23
Range of datetimes.
Definition: types.h:291
MessageType get_type() const override
Return the type of the data in the message.
Definition: msg.h:183
const wreport::Var * get(const Level &lev, const Trange &tr, wreport::Varcode code) const
Get a variable given its code, level and time range information.
Range of latitudes.
Definition: types.h:464
Options to control message import.
Definition: importer.h:24
ImporterOptions with default constructor usable.
Definition: msg.h:25
void set(const Level &lev, const Trange &tr, wreport::Varcode code, const wreport::Var &var)
Add or replace a value.
Query used to filter DB-All.e data.
Definition: query.h:14
Date and time.
Definition: types.h:164
Definition: shortcuts.h:11
ExporterOptions with default constructor usable.
Definition: msg.h:38
Options to control message export.
Definition: exporter.h:24
Range of longitudes.
Definition: types.h:548
Match adapter for impl::Message.
Definition: msg.h:348
Storage for related physical data.
Definition: msg.h:130
Collection of Value objects, indexed by wreport::Varcode.
Definition: values.h:176