|
Base::DataReader< DataType > & | read (DataType &obj, bool overwrite=true) |
| Reads the data record at the current record index and stores the read data in obj. More...
|
|
Base::DataReader< DataType > & | read (std::size_t idx, DataType &obj, bool overwrite=true) |
| Reads the data record at index idx and stores the read data in obj. More...
|
|
Base::DataReader< DataType > & | skip () |
| Skips the data record at the current record index. More...
|
|
bool | hasMoreData () |
| Tells if there are any data records left to read. More...
|
|
std::size_t | getRecordIndex () const |
| Returns the index of the current data record. More...
|
|
void | setRecordIndex (std::size_t idx) |
| Sets the index of the current data record to idx. More...
|
|
std::size_t | getNumRecords () |
| Returns the total number of available data records. More...
|
|
| operator const void * () const |
| Returns a pointer whose value indicates the error state of the reader. More...
|
|
bool | operator! () const |
| Tells whether the reader is in a bad state. More...
|
|
virtual void | close () |
| Performs a reader specific shutdown operation (if required). More...
|
|
std::size_t | registerIOCallback (const IOCallbackFunction &func) |
| Registers an I/O callback target function. More...
|
|
void | unregisterIOCallback (std::size_t id) |
| Unregisters the I/O callback function specified by id. More...
|
|
void | invokeIOCallbacks (double progress) const |
| Invokes all registered I/O callback functions with the argument *this . More...
|
|
void | clearIOCallbacks () |
| Clears all registered I/O callback functions. More...
|
|
std::size_t | getNumParameters () const |
| Returns the number of container entries. More...
|
|
template<typename T > |
void | setParameter (const LookupKey &key, T &&val) |
| Sets the value of the control-parameter specified by key to val. More...
|
|
const Any & | getParameter (const LookupKey &key, bool throw_=false, bool local=false) const |
| Returns the value of the control-parameter specified by key. More...
|
|
template<typename T > |
const T & | getParameter (const LookupKey &key, bool local=false) const |
| Returns the value of the control-parameter specified by key as a const reference to an object of type T. More...
|
|
template<typename T > |
const T & | getParameterOrDefault (const LookupKey &key, const T &def_val, bool local=false) const |
| Returns the value of the control-parameter specified by key as a const reference to an object of type T, or the default value def_val if a stored value does not exist. More...
|
|
bool | removeParameter (const LookupKey &key) |
| Removes the entry for the control-parameter specified by key. More...
|
|
void | clearParameters () |
| Erases all container entries. More...
|
|
bool | isParameterSet (const LookupKey &key, bool local=false) const |
| Tells whether or not a value has been assigned to the control-parameter specified by key. More...
|
|
void | addParameters (const ControlParameterContainer &cntnr) |
| Adds the control-parameter value entries in the ControlParameterContainer instance cntnr. More...
|
|
void | copyParameters (const ControlParameterContainer &cntnr) |
| Replaces the current set of properties by a copy of the entries in cntnr. More...
|
|
ConstParameterIterator | getParametersBegin () const |
| Returns a constant iterator pointing to the beginning of the entries. More...
|
|
ConstParameterIterator | getParametersEnd () const |
| Returns a constant iterator pointing to the end of the entries. More...
|
|
ConstParameterIterator | begin () const |
| Returns a constant iterator pointing to the beginning of the entries. More...
|
|
ConstParameterIterator | end () const |
| Returns a constant iterator pointing to the end of the entries. More...
|
|
void | setParent (const ControlParameterContainer *cntnr) |
| Sets or removes the parent control-parameter container used to resolve requests for missing entries. More...
|
|
const ControlParameterContainer * | getParent () const |
| Returns a pointer to the parent control-parameter container. More...
|
|
std::size_t | registerParameterChangedCallback (const ParameterChangedCallbackFunction &func) |
| Registers a callback target function that gets invoked when the value of a control-parameter has changed. More...
|
|
void | unregisterParameterChangedCallback (std::size_t id) |
| Unregisters the callback specified by id. More...
|
|
std::size_t | registerParameterRemovedCallback (const ParameterRemovedCallbackFunction &func) |
| Registers a callback target function that gets invoked when a control-parameter entry has been removed. More...
|
|
void | unregisterParameterRemovedCallback (std::size_t id) |
| Unregisters the callback specified by id. More...
|
|
std::size_t | registerParentChangedCallback (const ParentChangedCallbackFunction &func) |
| Registers a callback target function that gets invoked when the parent container has been changed or was detached. More...
|
|
void | unregisterParentChangedCallback (std::size_t id) |
| Unregisters the callback specified by id. More...
|
|
const ControlParameterContainer & | getParameters () const |
| Returns a const reference to itself. More...
|
|
template<typename DataType, typename ReaderImpl>
class CDPL::Util::StreamDataReader< DataType, ReaderImpl >
A helper class that implements Base::DataReader for std::istream
based data readers.
StreamDataReader
implements common operations for readers which retrieve the input data from a std::istream
instance. However, since StreamDataReader
does not know anything about the underlying storage format, the actual decoding of a data object record has to be implemented by a class which has enough knowledge to deal with the given data format. StreamDataReader
is designed to be used as a base class and requires the derived class (whose type has to be specified as the second template parameter ReaderImpl) to provide three methods which perform the actual data decoding.
These methods must have the following signatures and semantics:
bool
readData(std::istream& is, DataType& obj, bool overwrite)
Reads the next data record from the input stream is into the data object obj of type DataType
. Returns true
if the read operation was successful, and false
if the end of input has already been reached.
bool
skipData(std::istream& is)
Skips the next data record. Returns true
if the operation was successful, and false
if the end of input has already been reached.
bool
moreData(std::istream& is)
Tells if more data records are available to read. Returns true
if data records are available, and false
otherwise.
- Template Parameters
-
DataType | The type of the objects holding the read data. |
ReaderImpl | The type of the subclass implementing the basic input operations. |