PropertyWithVerifier< TYPE, VERIFIER > Class Template Reference

Helper intermediate class which represent partly implemented property with value of concrete type and concrete verifier. More...

#include <GaudiKernel/Property.h>

Inheritance diagram for PropertyWithVerifier< TYPE, VERIFIER >:
Collaboration diagram for PropertyWithVerifier< TYPE, VERIFIER >:

Public Member Functions

VERIFIER & verifier ()
 
const VERIFIER & verifier () const
 
bool set (const TYPE &value)
 update the value of the property/check the verifier More...
 
bool setValue (const TYPE &value) override
 implementation of PropertyWithValue::setValue More...
 
template<class OTHER , class OTHERVERIFIER >
PropertyWithVerifieroperator= (const PropertyWithVerifier< OTHER, OTHERVERIFIER > &right)
 templated assignment More...
 
template<class OTHER >
PropertyWithVerifieroperator= (const PropertyWithValue< OTHER > &right)
 templated assignment More...
 
PropertyWithVerifieroperator= (const TYPE &right)
 assignment More...
 
template<class OTHER >
PropertyWithVerifier< TYPE, VERIFIER > & operator= (const PropertyWithValue< OTHER > &right)
 template assignment More...
 
template<class OTHER , class OTHERVERIFIER >
PropertyWithVerifier< TYPE, VERIFIER > & operator= (const PropertyWithVerifier< OTHER, OTHERVERIFIER > &right)
 template assignment More...
 
- Public Member Functions inherited from PropertyWithValue< TYPE >
 operator const TYPE & () const
 implicit conversion to the type More...
 
const TYPE & value () const
 explicit conversion More...
 
bool assign (const Property &source) override
 get the value from another property More...
 
bool load (Property &dest) const override
 set value for another property More...
 
StatusCode fromString (const std::string &s) override
 string -> value More...
 
std::string toString () const override
 value -> string More...
 
void toStream (std::ostream &out) const override
 value -> stream More...
 
template<class OTHER >
PropertyWithValue< TYPE > & operator= (const PropertyWithValue< OTHER > &right)
 
- Public Member Functions inherited from Property
const std::stringname () const
 property name More...
 
const std::stringdocumentation () const
 property documentation More...
 
const std::type_infotype_info () const
 property type-info More...
 
std::string type () const
 property type More...
 
const std::function< void(Property &)> & readCallBack () const
 get a reference to the readCallBack More...
 
const std::function< void(Property &)> & updateCallBack () const
 get a reference to the updateCallBack More...
 
virtual PropertydeclareReadHandler (std::function< void(Property &)> fun)
 set new callback for reading More...
 
virtual PropertydeclareUpdateHandler (std::function< void(Property &)> fun)
 set new callback for update More...
 
template<class HT >
PropertydeclareReadHandler (void(HT::*MF)(Property &), HT *instance)
 
template<class HT >
PropertydeclareUpdateHandler (void(HT::*MF)(Property &), HT *instance)
 
virtual void useReadHandler () const
 use the call-back function at reading More...
 
virtual bool useUpdateHandler ()
 use the call-back function at update More...
 
virtual ~Property ()=default
 virtual destructor More...
 
virtual Propertyclone () const =0
 clone: "virtual constructor" More...
 
void setName (std::string value)
 set the new value for the property name More...
 
void setDocumentation (std::string documentation)
 set the documentation string More...
 
virtual std::ostreamfillStream (std::ostream &) const
 the printout of the property value More...
 

Protected Member Functions

 PropertyWithVerifier (std::string name, typename Gaudi::Utils::PropertyTypeTraits< TYPE >::PVal value, const bool owner, const VERIFIER &verifier)
 the constructor with property name and value More...
 
 ~PropertyWithVerifier () override=default
 virtual destructor More...
 
- Protected Member Functions inherited from PropertyWithValue< TYPE >
 PropertyWithValue (std::string name, PVal value, const bool owner)
 the constructor with property name and value More...
 
 PropertyWithValue (const PropertyWithValue &rhs)
 copy constructor (don't let the compiler generate a buggy one) More...
 
template<class OTHER >
 PropertyWithValue (const PropertyWithValue< OTHER > &right)
 copy constructor from any other type More...
 
 ~PropertyWithValue () override
 virtual destructor More...
 
PropertyWithValueoperator= (const TYPE &value)
 assignment operator More...
 
PropertyWithValueoperator= (const PropertyWithValue &rhs)
 
template<class OTHER >
PropertyWithValueoperator= (const PropertyWithValue< OTHER > &right)
 
void i_set (const TYPE &value)
 set the value More...
 
PVal i_get () const
 get the value More...
 
- Protected Member Functions inherited from Property
 Property (const std::type_info &type, std::string name="")
 constructor from the property name and the type More...
 
 Property (std::string name, const std::type_info &type)
 constructor from the property name and the type More...
 
 Property (const Property &)=default
 copy constructor More...
 
Propertyoperator= (const Property &)=default
 assignment operator More...
 

Private Member Functions

 PropertyWithVerifier ()
 the default & copy constructors are deleted More...
 
 PropertyWithVerifier (const PropertyWithVerifier &right)
 

Private Attributes

VERIFIER m_verifier
 the verifier itself More...
 

Additional Inherited Members

- Public Types inherited from PropertyWithValue< TYPE >
typedef Gaudi::Utils::PropertyTypeTraits< TYPE > Traits
 the type-traits for properties More...
 
typedef Traits::PVal PVal
 the actual storage type More...
 
- Protected Attributes inherited from Property
std::function< void(Property &)> m_readCallBack
 
std::function< void(Property &)> m_updateCallBack
 

Detailed Description

template<class TYPE, class VERIFIER>
class PropertyWithVerifier< TYPE, VERIFIER >

Helper intermediate class which represent partly implemented property with value of concrete type and concrete verifier.

Author
Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u
Date
2006-02-27

Definition at line 382 of file Property.h.

Constructor & Destructor Documentation

template<class TYPE, class VERIFIER>
PropertyWithVerifier< TYPE, VERIFIER >::PropertyWithVerifier ( std::string  name,
typename Gaudi::Utils::PropertyTypeTraits< TYPE >::PVal  value,
const bool  owner,
const VERIFIER &  verifier 
)
inlineprotected

the constructor with property name and value

Definition at line 389 of file Property.h.

393  : PropertyWithValue<TYPE> ( std::move(name) , value , owner )
394  , m_verifier ( verifier )
395  {}
Helper intermediate class which represent partly implemented property with value of concrete type...
Definition: Property.h:134
VERIFIER & verifier()
Definition: Property.h:401
T move(T...args)
const TYPE & value() const
explicit conversion
Definition: Property.h:341
VERIFIER m_verifier
the verifier itself
Definition: Property.h:426
template<class TYPE, class VERIFIER>
PropertyWithVerifier< TYPE, VERIFIER >::~PropertyWithVerifier ( )
overrideprotecteddefault

virtual destructor

template<class TYPE, class VERIFIER>
PropertyWithVerifier< TYPE, VERIFIER >::PropertyWithVerifier ( )
private

the default & copy constructors are deleted

template<class TYPE, class VERIFIER>
PropertyWithVerifier< TYPE, VERIFIER >::PropertyWithVerifier ( const PropertyWithVerifier< TYPE, VERIFIER > &  right)
private

Member Function Documentation

template<class TYPE, class VERIFIER>
template<class OTHER , class OTHERVERIFIER >
PropertyWithVerifier& PropertyWithVerifier< TYPE, VERIFIER >::operator= ( const PropertyWithVerifier< OTHER, OTHERVERIFIER > &  right)

templated assignment

template<class TYPE, class VERIFIER>
template<class OTHER >
PropertyWithVerifier& PropertyWithVerifier< TYPE, VERIFIER >::operator= ( const PropertyWithValue< OTHER > &  right)

templated assignment

template<class TYPE, class VERIFIER >
PropertyWithVerifier< TYPE, VERIFIER > & PropertyWithVerifier< TYPE, VERIFIER >::operator= ( const TYPE &  right)
inline

assignment

Definition at line 448 of file Property.h.

449 {
451  return *this ;
452 }
PropertyWithValue & operator=(const TYPE &value)
assignment operator
Definition: Property.h:258
template<class TYPE, class VERIFIER>
template<class OTHER >
PropertyWithVerifier<TYPE,VERIFIER>& PropertyWithVerifier< TYPE, VERIFIER >::operator= ( const PropertyWithValue< OTHER > &  right)
inline

template assignment

Definition at line 459 of file Property.h.

460 {
462  return *this ;
463 }
PropertyWithValue & operator=(const TYPE &value)
assignment operator
Definition: Property.h:258
template<class TYPE, class VERIFIER>
template<class OTHER , class OTHERVERIFIER >
PropertyWithVerifier<TYPE,VERIFIER>& PropertyWithVerifier< TYPE, VERIFIER >::operator= ( const PropertyWithVerifier< OTHER, OTHERVERIFIER > &  right)
inline

template assignment

Definition at line 471 of file Property.h.

472 {
474  return *this ;
475 }
PropertyWithValue & operator=(const TYPE &value)
assignment operator
Definition: Property.h:258
template<class TYPE, class VERIFIER >
bool PropertyWithVerifier< TYPE, VERIFIER >::set ( const TYPE &  value)
inline

update the value of the property/check the verifier

Implementation of PropertyWithVerifier::set.

use verifier!

update the value

invoke the update handler

Definition at line 434 of file Property.h.

435 {
437  if ( !m_verifier.isValid( &value ) ) { return false ; }
439  this->i_set( value ) ;
441  return this->useUpdateHandler() ;
442 }
virtual bool useUpdateHandler()
use the call-back function at update
Definition: Property.cpp:92
void i_set(const TYPE &value)
set the value
Definition: Property.h:190
const TYPE & value() const
explicit conversion
Definition: Property.h:341
VERIFIER m_verifier
the verifier itself
Definition: Property.h:426
template<class TYPE, class VERIFIER>
bool PropertyWithVerifier< TYPE, VERIFIER >::setValue ( const TYPE &  value)
inlineoverridevirtual

implementation of PropertyWithValue::setValue

Implements PropertyWithValue< TYPE >.

Definition at line 406 of file Property.h.

406 { return set( value ) ; }
bool set(const TYPE &value)
update the value of the property/check the verifier
Definition: Property.h:434
const TYPE & value() const
explicit conversion
Definition: Property.h:341
template<class TYPE, class VERIFIER>
VERIFIER& PropertyWithVerifier< TYPE, VERIFIER >::verifier ( )
inline

Definition at line 401 of file Property.h.

401 { return m_verifier ; }
VERIFIER m_verifier
the verifier itself
Definition: Property.h:426
template<class TYPE, class VERIFIER>
const VERIFIER& PropertyWithVerifier< TYPE, VERIFIER >::verifier ( ) const
inline

Definition at line 402 of file Property.h.

402 { return m_verifier ; }
VERIFIER m_verifier
the verifier itself
Definition: Property.h:426

Member Data Documentation

template<class TYPE, class VERIFIER>
VERIFIER PropertyWithVerifier< TYPE, VERIFIER >::m_verifier
private

the verifier itself

Definition at line 426 of file Property.h.


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