Chemical Data Processing Library C++ API - Version 1.2.0
Public Types | Public Member Functions | Protected Member Functions | List of all members
CDPL::Base::DataIOBase Class Reference

Provides infrastructure for the registration of I/O callback functions. More...

#include <DataIOBase.hpp>

+ Inheritance diagram for CDPL::Base::DataIOBase:

Public Types

typedef std::function< void(const DataIOBase &, double)> IOCallbackFunction
 A functor class used to wrap I/O callback target functions. More...
 
- Public Types inherited from CDPL::Base::ControlParameterContainer
typedef ParameterMap::value_type ParameterEntry
 A Base::LookupKey / Base::Any pair used to store the control-parameter values and associated keys. More...
 
typedef ParameterMap::const_iterator ConstParameterIterator
 A constant iterator used to iterate over the control-parameter entries. More...
 
typedef std::function< void(const LookupKey &, const Any &)> ParameterChangedCallbackFunction
 A functor class that wraps callback target functions which get invoked when the value of a control-parameter has changed. More...
 
typedef std::function< void(const LookupKey &)> ParameterRemovedCallbackFunction
 A functor class that wraps callback target functions which get invoked when a control-parameter entry has been removed. More...
 
typedef std::function< void()> ParentChangedCallbackFunction
 A functor class that wraps callback target functions which get invoked when the parent container has been changed or was detached. More...
 

Public Member Functions

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...
 
- Public Member Functions inherited from CDPL::Base::ControlParameterContainer
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 AnygetParameter (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 ControlParameterContainergetParent () 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 ControlParameterContainergetParameters () const
 Returns a const reference to itself. More...
 

Protected Member Functions

 DataIOBase ()
 Default constructor. More...
 
 DataIOBase (const DataIOBase &io_base)
 Copy constructor. More...
 
 ~DataIOBase ()
 Destructor. More...
 
DataIOBaseoperator= (const DataIOBase &io_base)
 Assignment operator. More...
 
- Protected Member Functions inherited from CDPL::Base::ControlParameterContainer
 ControlParameterContainer ()
 Constructs an empty ControlParameterContainer instance. More...
 
 ControlParameterContainer (const ControlParameterContainer &cntnr)
 Constructs a copy of the ControlParameterContainer instance cntnr. More...
 
virtual ~ControlParameterContainer ()
 Destructor. More...
 
ControlParameterContaineroperator= (const ControlParameterContainer &cntnr)
 Assignment operator. More...
 

Detailed Description

Provides infrastructure for the registration of I/O callback functions.

The purpose of DataIOBase is to provide methods for the registration of I/O callback functions to subclasses implementing the input and output of data objects (see Base::DataReader and Base::DataWriter). I/O callbacks allow client code to be notified whenever a data object was read, written or skipped. I/O callbacks are registered by calling the method registerIOCallback() with an argument of type DataIOBase::IOCallbackFunction. DataIOBase::IOCallbackFunction is a generic functor implementation that is able to wrap any compatible (in terms of return and argument type) function pointer or function object. Therefore, no special requirements beside return and argument types are imposed on the type of the used I/O callback target function.

Member Typedef Documentation

◆ IOCallbackFunction

typedef std::function<void(const DataIOBase&, double)> CDPL::Base::DataIOBase::IOCallbackFunction

A functor class used to wrap I/O callback target functions.

IOCallbackFunction allows to wrap any function pointer or function object compatible with a return type of void and two arguments of type const DataIOBase& and double (see [FUNWRP]).

Constructor & Destructor Documentation

◆ DataIOBase() [1/2]

CDPL::Base::DataIOBase::DataIOBase ( )
inlineprotected

Default constructor.

◆ DataIOBase() [2/2]

CDPL::Base::DataIOBase::DataIOBase ( const DataIOBase io_base)
inlineprotected

Copy constructor.

Parameters
io_baseThe DataIOBase instance to copy.
Note
I/O callbacks registered on io_base are not copied.

◆ ~DataIOBase()

CDPL::Base::DataIOBase::~DataIOBase ( )
inlineprotected

Destructor.

Member Function Documentation

◆ registerIOCallback()

std::size_t CDPL::Base::DataIOBase::registerIOCallback ( const IOCallbackFunction func)

Registers an I/O callback target function.

Parameters
funcA DataIOBase::IOCallbackFunction instance wrapping the target function.
Returns
An identifier for the registered callback.

◆ unregisterIOCallback()

void CDPL::Base::DataIOBase::unregisterIOCallback ( std::size_t  id)

Unregisters the I/O callback function specified by id.

If a registered callback with the identifier id does not exist, the method has no effect.

Parameters
idThe identifier of the callback function to unregister.

◆ invokeIOCallbacks()

void CDPL::Base::DataIOBase::invokeIOCallbacks ( double  progress) const

Invokes all registered I/O callback functions with the argument *this.

Parameters
progressAn indicator for the progress of the current I/O operation in the range [0, 1].

◆ clearIOCallbacks()

void CDPL::Base::DataIOBase::clearIOCallbacks ( )

Clears all registered I/O callback functions.

◆ operator=()

DataIOBase& CDPL::Base::DataIOBase::operator= ( const DataIOBase io_base)
protected

Assignment operator.

Parameters
io_baseThe DataIOBase instance to copy.
Returns
A reference to itself.
Note
I/O callbacks registered on io_base are not copied.

The documentation for this class was generated from the following file: