libdballe 9.13
levtr.h
1#ifndef DBALLE_DB_V7_LEVTR_H
2#define DBALLE_DB_V7_LEVTR_H
3
4#include <cstdio>
5#include <dballe/core/defs.h>
6#include <dballe/db/v7/cache.h>
7#include <dballe/db/v7/fwd.h>
8#include <dballe/msg/fwd.h>
9#include <functional>
10#include <memory>
11#include <set>
12
13namespace dballe {
14namespace db {
15namespace v7 {
16
20struct LevTr
21{
22protected:
24 LevTrCache cache;
25 virtual void
26 _dump(std::function<void(int, const Level&, const Trange&)> out) = 0;
27
28public:
29 LevTr(v7::Transaction& tr);
30 virtual ~LevTr();
31
39
44 virtual void prefetch_ids(Tracer<>& trc, const std::set<int>& ids) = 0;
45
52
57 const LevTrEntry& lookup_cache(int id);
58
60 virtual const LevTrEntry* lookup_id(Tracer<>& trc, int id) = 0;
61
66 virtual int obtain_id(Tracer<>& trc, const LevTrEntry& desc) = 0;
67
69 void dump(FILE* out);
70};
71
72} // namespace v7
73} // namespace db
74} // namespace dballe
75#endif
Smart pointer for trace::Step objects, which calls done() when going out of scope.
Definition db/v7/fwd.h:45
Storage for related physical data.
Definition msg.h:134
Store an array of physical data all on the same level.
Definition context.h:24
Common definitions.
Vertical level or layer.
Definition types.h:625
Information on how a value has been sampled or computed with regards to time.
Definition types.h:689
Definition cache.h:53
Definition cache.h:15
const LevTrEntry & lookup_cache(int id)
Lookup a LevTr entry from the cache, throwing an exception if it is not found.
virtual const LevTrEntry * lookup_id(Tracer<> &trc, int id)=0
Look up a LevTr from the database given its ID.
impl::msg::Context * to_msg(Tracer<> &trc, int id, impl::Message &msg)
Get/create a Context in the Msg for this level/timerange.
virtual int obtain_id(Tracer<> &trc, const LevTrEntry &desc)=0
Look up a LevTr from the database given its description.
void dump(FILE *out)
Dump the entire contents of the table to an output stream.
void clear_cache()
Invalidate the LevTrEntry cache.
virtual void prefetch_ids(Tracer<> &trc, const std::set< int > &ids)=0
Given a set of IDs, load LevTr information for them and add it to the cache.
Definition transaction.h:16