libdballe 9.6
levtr.h
1#ifndef DBALLE_DB_V7_LEVTR_H
2#define DBALLE_DB_V7_LEVTR_H
3
4#include <dballe/core/defs.h>
5#include <dballe/db/v7/cache.h>
6#include <dballe/db/v7/fwd.h>
7#include <dballe/msg/fwd.h>
8#include <memory>
9#include <set>
10#include <cstdio>
11#include <functional>
12
13namespace dballe {
14namespace db {
15namespace v7 {
16
20struct LevTr
21{
22protected:
24 LevTrCache cache;
25 virtual void _dump(std::function<void(int, const Level&, const Trange&)> out) = 0;
26
27public:
29 virtual ~LevTr();
30
38
42 virtual void prefetch_ids(Tracer<>& trc, const std::set<int>& ids) = 0;
43
50
54 const LevTrEntry& lookup_cache(int id);
55
57 virtual const LevTrEntry* lookup_id(Tracer<>& trc, int id) = 0;
58
63 virtual int obtain_id(Tracer<>& trc, const LevTrEntry& desc) = 0;
64
66 void dump(FILE* out);
67};
68
69}
70}
71}
72#endif
Smart pointer for trace::Step objects, which calls done() when going out of scope.
Definition: db/v7/fwd.h:46
Storage for related physical data.
Definition: msg.h:131
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:687
Definition: cache.h:47
Definition: cache.h:15
Precompiled queries to manipulate the lev_tr table.
Definition: levtr.h:21
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