DUECA/DUSIME
|
Data selector class. More...
#include <DataReader.hxx>
Public Member Functions | |
MatchIntervalStart (DataReaderBase &r) | |
Constructor. | |
const T & | access (DataReaderBase &r) |
extrapolate the data object data, which became valid for a time data_time, to a time in the future or past wish_time. | |
const void | release (ChannelReadToken &token) |
Release a previous access. | |
Data selector class.
The DataReader objects access data in a channel using ChannelReadToken objects. A DataReader is supplied with a time specification for the requested data interval at its construction. The data selector class template parameter defines how that interval is interpreted in accessing the data.
Behaviour of this MatchIntervalStart class, explained for the four different cases created by the combination of reading mode and channel entry data type:
Time access reading specified for the token (Channel::JumpToMatchTime):
The accessed channel entry contains stream data:
Given a Time Specification for the requested access time (req_s, req_e), and stream data in the channel with (data_s, data_e), the data is returned when (data_e > req_s && data_s <= req_s). If such data is not present, a NoDataAvailable exception is thrown.
The accessed channel entry contains event data:
Given a Time Specification for the requested access time (req_s, req_e), and event data in the channel with timestamp (data_t), the latest event is returned for which (data_t == req_s). If no such event is found, a NoDataAvailable exception is thrown.
serial reading specified for the token (Channel::ReadAllData or Channel::ReadReservation):
The accessed channel entry contains stream data:
Given a Time Specification for the requested access time (req_s, req_e), the next datapoint is tested and returned when (data_e > req_s && data_s <= req_s). If the next datapoint does not match this, a NoDataAvailable exception is thrown.
The accessed channel entry contains event data:
Given a Time Specification for the requested access time (req_s, req_e), and event data in the channel with timestamp (data_t), the next event is returned if for that event (data_t <= req_s). If that condition does not match, a NoDataAvailable exception is thrown.
Note that for this access, only the combination time access reading with stream data makes sense.
|
inline |
Constructor.
Essential to initialize data pointer to NULL
|
inline |
extrapolate the data object data, which became valid for a time data_time, to a time in the future or past wish_time.
This one actually does nothing but return the unchanged data object.
r | Base class for the calling datareader object. |