DynExp
Highly flexible laboratory automation for dynamically changing experiments.
|
Implements a circular data stream based on Util::circularbuf using samples of type BasicSample
.
More...
Public Member Functions | |
BasicSampleStream (size_t BufferSizeInSamples) | |
Constructs a BasicSampleStream instance. More... | |
virtual | ~BasicSampleStream ()=default |
bool | IsBasicSampleConvertible () const noexcept override final |
Determines whether the data stream holds samples which are compatible to BasicSample . More... | |
bool | IsBasicSampleTimeUsed () const noexcept override final |
Determines whether the data stream holds basic samples (IsBasicSampleConvertible() returns true) which contain information in their BasicSample::Time fields. More... | |
Public Member Functions inherited from DynExpInstr::CircularDataStream< BasicSample > | |
CircularDataStream (size_t BufferSizeInSamples) | |
Constructs a CircularDataStream instance. More... | |
virtual | ~CircularDataStream ()=default |
constexpr auto | GetBytesPerSample () noexcept |
Determines the size of a single sample in bytes. More... | |
size_t | GetNumAvailableSamplesToReadTillEnd () const noexcept override |
Determines the amount of samples which can be read from the stream's current get pointer position till the stream's end. More... | |
size_t | GetNumFreeSamplesToWrite () const noexcept override |
Determines the amount of samples which can be written to the stream untill the stream's end is reached. More... | |
std::streampos | GetReadPosition () const noexcept override |
Determines the current position of the stream's read (get) pointer in samples. More... | |
std::streampos | GetWritePosition () const noexcept override |
Determines the current position of the stream's write (put) pointer in samples. More... | |
virtual bool | SeekRel (signed long long OffsetInSamples, std::ios_base::seekdir SeekDir, std::ios_base::openmode Which=std::ios_base::in|std::ios_base::out) override |
Moves the stream's read/write pointer(s) to a position relative to SeekDir . More... | |
virtual bool | SeekAbs (unsigned long long PositionInSamples, std::ios_base::openmode Which=std::ios_base::in|std::ios_base::out) override |
Moves the stream's read/write pointer(s) to an absolute position. More... | |
virtual void | SeekBeg (std::ios_base::openmode Which=std::ios_base::in|std::ios_base::out) override |
Moves the read/write pointer to the first sample in the stream. More... | |
virtual void | SeekEnd (std::ios_base::openmode Which=std::ios_base::in|std::ios_base::out) override |
Moves the read pointer to the last sample in the stream and/or moves the write pointer after the last written sample in the stream. More... | |
virtual bool | SeekEqual (std::ios_base::openmode Which=std::ios_base::in|std::ios_base::out) override |
Moves the read/write pointer to the respective other one. More... | |
virtual size_t | GetStreamSizeRead () const noexcept override |
Determines the stream's read buffer size in samples. More... | |
virtual size_t | GetStreamSizeWrite () const noexcept override |
Determines the stream's write buffer size in samples. More... | |
virtual size_t | GetNumSamplesWritten () const noexcept override |
Determines the number of samples which have been written to the stream in total. Before overflowing, this function should keep continuing to return the largest possible value. More... | |
virtual void | SetStreamSize (size_t BufferSizeInSamples) override |
Sets the stream size in samples. More... | |
void | WriteSample (const BasicSample &Sample) |
Writes a single sample to the stream's buffer StreamBuffer. More... | |
void | WriteSample (const std::chrono::duration< Rep, Period > &Sample) |
Writes a single sample to the stream's buffer StreamBuffer by implicitly constructing the sample from a std::chrono::duration instance. More... | |
BasicSample | ReadSample () |
Reads a single sample from the stream's buffer StreamBuffer. More... | |
void | WriteSamples (const std::vector< T > &Samples) |
Writes multiple samples to the stream's buffer StreamBuffer. More... | |
std::vector< BasicSample > | ReadSamples (size_t Count) |
Reads multiple samples from the stream's buffer StreamBuffer. More... | |
Public Member Functions inherited from DynExpInstr::CircularDataStreamBase | |
size_t | GetNumRecentBasicSamples (size_t Count) const |
Determines the amount of samples which have been written to the stream after the last Count samples. This is useful if the caller just wants to obtain recent samples but not the entire stream. Then, the caller should remember the amount of samples it knows already and call ReadRecentBasicSamples() next. More... | |
BasicSampleListType | ReadRecentBasicSamples (size_t Count) |
Reads the most recent samples from the stream skipping Count samples. Also refer to GetNumRecentBasicSamples() . More... | |
Public Member Functions inherited from DynExpInstr::DataStreamBase | |
virtual | ~DataStreamBase ()=default |
bool | CanRead () const |
Determines whether the stream contains at least one sample which can be read (i.e. GetStreamSizeRead() returns a value greater than 0). More... | |
void | Clear () |
Removes all samples from the stream's buffer. More... | |
void | WriteBasicSample (const BasicSample &Sample) |
Writes a single basic sample to the stream. More... | |
BasicSample | ReadBasicSample () |
Reads a single basic sample from the stream. More... | |
void | WriteBasicSamples (const BasicSampleListType &Samples) |
Writes a list of basic sample to the stream. More... | |
BasicSampleListType | ReadBasicSamples (size_t Count) |
Reads a list of basic sample from the stream. More... | |
Private Member Functions | |
virtual void | WriteBasicSampleChild (const BasicSample &Sample) override |
Writes a single basic sample to the stream. More... | |
virtual BasicSample | ReadBasicSampleChild () override |
Reads a single basic sample from the stream. More... | |
Additional Inherited Members | |
Public Types inherited from DynExpInstr::CircularDataStream< BasicSample > | |
using | SampleType = BasicSample |
Alias for SampleT . More... | |
Public Types inherited from DynExpInstr::DataStreamBase | |
using | BasicSampleListType = std::vector< BasicSample > |
Type of a list containing data stream samples of type BasicSample . More... | |
Protected Member Functions inherited from DynExpInstr::CircularDataStream< BasicSample > | |
virtual void | ClearChild () override |
Removes all samples from the stream's buffer. More... | |
Protected Member Functions inherited from DynExpInstr::CircularDataStreamBase | |
CircularDataStreamBase ()=default | |
virtual | ~CircularDataStreamBase ()=default |
Implements a circular data stream based on Util::circularbuf using samples of type BasicSample
.
Definition at line 541 of file DataStreamInstrument.h.
|
inline |
Constructs a BasicSampleStream
instance.
BufferSizeInSamples | Initial stream buffer size in samples |
Definition at line 548 of file DataStreamInstrument.h.
|
virtualdefault |
|
inlinefinaloverridevirtualnoexcept |
Determines whether the data stream holds samples which are compatible to BasicSample
.
BasicSample
instances, false otherwise. Reimplemented from DynExpInstr::DataStreamBase.
Definition at line 552 of file DataStreamInstrument.h.
|
inlinefinaloverridevirtualnoexcept |
Determines whether the data stream holds basic samples (IsBasicSampleConvertible()
returns true) which contain information in their BasicSample::Time fields.
Reimplemented from DynExpInstr::DataStreamBase.
Definition at line 553 of file DataStreamInstrument.h.
|
inlineoverrideprivatevirtual |
Reads a single basic sample from the stream.
Util::NotImplementedException | is thrown by the default implementation, which does not do anything more. |
Reimplemented from DynExpInstr::DataStreamBase.
Definition at line 557 of file DataStreamInstrument.h.
|
inlineoverrideprivatevirtual |
Writes a single basic sample to the stream.
Sample | Sample to write |
Util::NotImplementedException | is thrown by the default implementation, which does not do anything more. |
Reimplemented from DynExpInstr::DataStreamBase.
Definition at line 556 of file DataStreamInstrument.h.