1 #ifndef DBALLE_MESSAGE_H 2 #define DBALLE_MESSAGE_H 4 #include <dballe/fwd.h> 34 virtual MessageType get_type()
const = 0;
37 virtual Datetime get_datetime()
const = 0;
40 virtual Coords get_coords()
const = 0;
43 virtual Ident get_ident()
const = 0;
46 virtual std::string get_report()
const = 0;
49 virtual std::unique_ptr<Message> clone()
const = 0;
73 const wreport::Var*
get(
const std::string& shortcut)
const;
114 void set(
const Level& lev,
const Trange& tr, std::unique_ptr<wreport::Var> var);
126 void set(
const char* shortcut, std::unique_ptr<wreport::Var> var);
137 void set(
const char* shortcut,
const wreport::Var& var);
155 virtual std::unique_ptr<CursorStation> query_stations(
const Query& query)
const = 0;
165 virtual std::unique_ptr<CursorStationData> query_station_data(
const Query& query)
const = 0;
175 virtual std::unique_ptr<CursorData> query_data(
const Query& query)
const = 0;
178 virtual void print(FILE* out)
const = 0;
189 virtual unsigned diff(
const Message& msg)
const = 0;
194 static std::unique_ptr<Message> create(MessageType type);
201 virtual void set_impl(
const Level& lev,
const Trange& tr, std::unique_ptr<wreport::Var> var) = 0;
213 const char* format_message_type(MessageType type);
217 std::ostream& operator<<(std::ostream&,
const dballe::MessageType&);
Common base types used by most of DB-All.e code.
Coordinates.
Definition: types.h:368
Information on how a value has been sampled or computed with regards to time.
Definition: types.h:686
Vertical level or layer.
Definition: types.h:624
A station identifier, that can be any string (including the empty string) or a missing value...
Definition: types.h:747
A bulletin that has been decoded and physically interpreted.
Definition: message.h:28
Date and time.
Definition: types.h:164
Query used to filter DB-All.e data.
Definition: query.h:14