1#ifndef DBALLE_CORE_CURSOR_H
2#define DBALLE_CORE_CURSOR_H
4#include <dballe/core/enq.h>
5#include <dballe/cursor.h>
14 virtual void enq(
Enq& enq)
const = 0;
17 inline static std::shared_ptr<CursorStation>
18 downcast(std::shared_ptr<dballe::CursorStation> c)
20 auto res = std::dynamic_pointer_cast<CursorStation>(c);
22 throw std::runtime_error(
23 "Attempted to downcast the wrong kind of cursor");
34 virtual void enq(
Enq& enq)
const = 0;
37 inline static std::shared_ptr<CursorStationData>
38 downcast(std::shared_ptr<dballe::CursorStationData> c)
40 auto res = std::dynamic_pointer_cast<CursorStationData>(c);
42 throw std::runtime_error(
43 "Attempted to downcast the wrong kind of cursor");
54 virtual void enq(
Enq& enq)
const = 0;
57 inline static std::shared_ptr<CursorData>
58 downcast(std::shared_ptr<dballe::CursorData> c)
60 auto res = std::dynamic_pointer_cast<CursorData>(c);
62 throw std::runtime_error(
63 "Attempted to downcast the wrong kind of cursor");
74 virtual void enq(
Enq& enq)
const = 0;
77 inline static std::shared_ptr<CursorSummary>
78 downcast(std::shared_ptr<dballe::CursorSummary> c)
80 auto res = std::dynamic_pointer_cast<CursorSummary>(c);
82 throw std::runtime_error(
83 "Attempted to downcast the wrong kind of cursor");
94 virtual void enq(
Enq& enq)
const {}
97 inline static std::shared_ptr<CursorMessage>
98 downcast(std::shared_ptr<dballe::CursorMessage> c)
100 auto res = std::dynamic_pointer_cast<CursorMessage>(c);
102 throw std::runtime_error(
103 "Attempted to downcast the wrong kind of cursor");
Cursor iterating over data values.
Definition cursor.h:79
Cursor iterating over messages.
Definition cursor.h:119
Cursor iterating over station data values.
Definition cursor.h:68
Cursor iterating over stations.
Definition cursor.h:58
Cursor iterating over summary entries.
Definition cursor.h:99
Cursor iterating over data values.
Definition core/cursor.h:53
static std::shared_ptr< CursorData > make_empty()
Create a CursorData iterating on no results.
static std::shared_ptr< CursorData > downcast(std::shared_ptr< dballe::CursorData > c)
Downcast a shared_ptr pointer.
Definition core/cursor.h:58
Cursor iterating over messages.
Definition core/cursor.h:93
static std::shared_ptr< CursorMessage > downcast(std::shared_ptr< dballe::CursorMessage > c)
Downcast a shared_ptr pointer.
Definition core/cursor.h:98
static std::shared_ptr< CursorMessage > make_empty()
Create a CursorStation iterating on no results.
Cursor iterating over station data values.
Definition core/cursor.h:33
static std::shared_ptr< CursorStationData > downcast(std::shared_ptr< dballe::CursorStationData > c)
Downcast a shared_ptr pointer.
Definition core/cursor.h:38
static std::shared_ptr< CursorStationData > make_empty()
Create a CursorStationData iterating on no results.
Cursor iterating over stations.
Definition core/cursor.h:13
static std::shared_ptr< CursorStation > downcast(std::shared_ptr< dballe::CursorStation > c)
Downcast a shared_ptr pointer.
Definition core/cursor.h:18
static std::shared_ptr< CursorStation > make_empty()
Create a CursorStation iterating on no results.
Cursor iterating over summary entries.
Definition core/cursor.h:73
static std::shared_ptr< CursorSummary > downcast(std::shared_ptr< dballe::CursorSummary > c)
Downcast a shared_ptr pointer.
Definition core/cursor.h:78
static std::shared_ptr< CursorSummary > make_empty()
Create a CursorSummary iterating on no results.
Class passed to key-value accessors to set values in an invoker-defined way.
Definition core/enq.h:18