Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BeanLike Class Reference

Something which has a name, a description and possibly some parameters of varying type. More...

#include <BeanLike.h>

Inheritance diagram for BeanLike:
Inheritance graph
[legend]
Collaboration diagram for BeanLike:
Collaboration graph
[legend]

Public Types

typedef ReferenceMap map_t
 Reference map type used to store this bean's parameters (name -> linked variable).
 

Public Member Functions

 BeanLike (const BeanLike &b)
 Copy constructor. Re-links parameters to the member variables of this (new) instance.
 
 BeanLike (const std::string &name, const std::string &description="")
 Constructor.
 
virtual const std::string & getName () const
 Return the name of an instance.
 
virtual const std::string & getDescription () const
 Return a brief description.
 
bool hasParameters () const
 Tells if any parameters have been linked (registered) for this bean.
 
template<class F >
F getParameter (const std::string &p) const
 Gets a single parameter.
 
const map_t & getParameters () const
 Returns the parameter map (const access).
 
map_t & getParameters ()
 Returns the parameter map.
 
template<class F >
void setParametersFromEntries (const F &args)
 Sets several parameters at once from a sequence of key-value pairs.
 
void setParameters (std::initializer_list< Variable::init_pair_t > args)
 Grants access to (if above hidden)
 
virtual void setParameters (const std::string &p, char assignmentSymbol='=', char separatorSymbol=0)
 Sets comma-separated parameters in a predetermined order "a,b,c" or by specifing them "b=2".
 
template<class T >
void setParameters (const std::map< std::string, T > &args)
 Set parameters.
 
template<class T >
void setParameters (const SmartMap< T > &args)
 Set parameters.
 
void setParameter (const std::string &p, const Castable &value)
 Sets a single parameter.
 
template<class T >
void setParameter (const std::string &p, const VariableT< T > &value)
 
template<class F >
void setParameter (const std::string &p, const F &value)
 Sets a single parameter.
 
template<class F >
void setParameter (const std::string &p, std::initializer_list< F > value)
 Sets a single parameter.
 
BeanLike & operator= (const BeanLike &b)
 Assigns the parameter values of another bean (by key) to this one's own parameters.
 
virtual std::ostream & toStream (std::ostream &ostr, bool compact=true) const
 Prints the name, description and current parameter values.
 

Protected Member Functions

virtual void storeLastArguments (const std::string &p)
 Called after setParameters()
 
virtual void updateBean () const
 Called after setParameters()
 

Protected Attributes

const std::string name
 Name of this bean, typically also the name of the (derived) class.
 
const std::string description
 Brief, human-readable description of this bean.
 
map_t parameters
 Parameters (name -> linked variable), typically linked to member variables of the derived class.
 

Detailed Description

Something which has a name, a description and possibly some parameters of varying type.

The parameters are local variables (properties) linked by a ReferenceMap .

drain::Command's and drain::image::ImageOp's are typical BeanLikes.

Constructor & Destructor Documentation

◆ BeanLike() [1/2]

BeanLike ( const BeanLike &  b)
inline

Copy constructor. Re-links parameters to the member variables of this (new) instance.

Parameters
b- bean to copy the name, description and parameter values from.

◆ BeanLike() [2/2]

BeanLike ( const std::string &  name,
const std::string &  description = "" 
)
inline

Constructor.

Parameters
name- name of this bean, typically also the name of the class.
description- brief, human-readable description of this bean.

Member Function Documentation

◆ getDescription()

virtual const std::string & getDescription ( ) const
inlinevirtual

Return a brief description.

Reimplemented in ImpulseResponseOpBase< T >.

◆ getName()

virtual const std::string & getName ( ) const
inlinevirtual

◆ operator=()

BeanLike & operator= ( const BeanLike &  b)
inline

Assigns the parameter values of another bean (by key) to this one's own parameters.

Parameters
b- bean to copy the parameter values from.

◆ setParameter() [1/2]

template<class F >
void setParameter ( const std::string &  p,
const F &  value 
)
inline

Sets a single parameter.

Sets a single parameter

◆ setParameter() [2/2]

template<class T >
void setParameter ( const std::string &  p,
const VariableT< T > &  value 
)
inline

TODO: consider VariableLike Sets a single parameter

◆ setParameters()

virtual void setParameters ( const std::string &  p,
char  assignmentSymbol = '=',
char  separatorSymbol = 0 
)
inlinevirtual

Sets comma-separated parameters in a predetermined order "a,b,c" or by specifing them "b=2".

This function is virtual because derived classes may redefine it to update str members.

◆ setParametersFromEntries()

template<class F >
void setParametersFromEntries ( const F &  args)
inline

Sets several parameters at once from a sequence of key-value pairs.

Template Parameters
F- a container of key-value pairs, like std::map<std::string,std::string> or an initializer list of such pairs.
Parameters
args- the key-value pairs to assign, forwarded to the individual parameters.

◆ storeLastArguments()

virtual void storeLastArguments ( const std::string &  p)
inlineprotectedvirtual

Called after setParameters()

Reimplemented in ProductBase.

◆ toStream()

std::ostream & toStream ( std::ostream &  ostr,
bool  compact = true 
) const
virtual

Prints the name, description and current parameter values.

Parameters
ostr- output stream.
compact- if true, print parameters on a single line; if false, use a more verbose layout.

◆ updateBean()

virtual void updateBean ( ) const
inlineprotectedvirtual

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