| The Gaudi Framework v32r1 (f65d50dc)

Public Types | Public Member Functions | Private Attributes | List of all members
Gaudi::Property< TYPE, VERIFIER, HANDLERS > Class Template Reference

Implementation of property with value of concrete type. More...

`#include <GaudiKernel/Property.h>`

Inheritance diagram for Gaudi::Property< TYPE, VERIFIER, HANDLERS >:
[legend]
Collaboration diagram for Gaudi::Property< TYPE, VERIFIER, HANDLERS >:
[legend]

## Public Types
using | StorageType = TYPE
| Hosted type. More...
using | ValueType = typename std::remove_reference< StorageType >::type
using | VerifierType = VERIFIER
using | HandlersType = HANDLERS

## Public Member Functions
template<class T = StorageType>
| Property (std::string name, T &&value, std::string doc="")
| the constructor with property name, value and documentation. More...
template<typename OWNER , typename T = ValueType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>, typename = std::enable_if_t<std::is_default_constructible_v<T>>>
| Property (OWNER *owner, std::string name)
| Autodeclaring constructor with property name, value and documentation. More...
template<class OWNER , class T = StorageType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>
| Property (OWNER *owner, std::string name, T &&value, std::string doc="")
| Autodeclaring constructor with property name, value and documentation. More...
template<class OWNER , class T = StorageType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>
| Property (OWNER *owner, std::string name, T &&value, std::function< void(PropertyBase &)> handler, std::string doc="")
| Autodeclaring constructor with property name, value, updateHandler and documentation. More...
template<class OWNER , class T = StorageType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>
| Property (OWNER *owner, std::string name, T &&value, void(OWNER::*handler)(PropertyBase &), std::string doc="")
| Autodeclaring constructor with property name, value, pointer to member function updateHandler and documentation. More...
template<class OWNER , class T = StorageType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>
| Property (OWNER *owner, std::string name, T &&value, void(OWNER::*handler)(), std::string doc="")
| Autodeclaring constructor with property name, value, pointer to member function updateHandler and documentation. More...
template<class OWNER , class T = StorageType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>
| Property (OWNER *owner, std::string name, T &&value, std::function< void(PropertyBase &)> handler, Details::Property::ImmediatelyInvokeHandler invoke, std::string doc="")
| Autodeclaring constructor with property name, value, updateHandler and documentation. More...
template<typename T , typename = not_copying<T>>
| Property (T &&v)
| Construct an anonymous property from a value. More...
template<typename T = StorageType, typename = std::enable_if_t<!std::is_reference_v<T>>>
| Property ()
| Construct an anonymous property with default constructed value. More...
Details::PropertyBase & | declareReadHandler (std::function< void(Details::PropertyBase &)> fun) override
| set new callback for reading More...
Details::PropertyBase & | declareUpdateHandler (std::function< void(Details::PropertyBase &)> fun) override
| set new callback for update More...
const std::function< void(Details::PropertyBase &)> | readCallBack () const override
| get a reference to the readCallBack More...
const std::function< void(Details::PropertyBase &)> | updateCallBack () const override
| get a reference to the updateCallBack More...
bool | useUpdateHandler () override
| manual trigger for callback for update More...
| operator const ValueType & () const
| Automatic conversion to value (const reference). More...
template<class T >
bool | operator== (const T &other) const
| equality comparison More...
template<class T >
bool | operator!= (const T &other) const
| inequality comparison More...
template<class T >
bool | operator< (const T &other) const
| "less" comparison More...
template<class T = ValueType>
Property & | operator= (T &&v)
| Assignment from value. More...
const VerifierType & | verifier () const
| Accessor to verifier. More...
VerifierType & | verifier ()
| Accessor to verifier. More...
template<class... Args>
decltype( | operator() (Args &&... args) const noexcept(noexcept(std::declval< ValueType >()(std::declval< Args && >()...))) std::declval< ValueType >()(std::declval< Args && >()...))
bool | assign (const Details::PropertyBase &source) override
| get the value from another property More...
bool | load (Details::PropertyBase &dest) const override
| set value to another property More...
StatusCode | fromString (const std::string &source) override
| string -> value More...
std::string | toString () const override
| value -> string More...
void | toStream (std::ostream &out) const override
| value -> stream More...
const ValueType & | value () const
| Backward compatibility (. More...
ValueType & | value ()
bool | setValue (const ValueType &v)
bool | set (const ValueType &v)
Details::PropertyBase * | clone () const override
| clones the current property More...
Helpers for easy use of string and vector properties.
They are instantiated only if they are implemented in the wrapped class.
template<class = ValueType>
Property & | operator++ ()
template<class = ValueType>
ValueType | operator++ (int)
template<class = ValueType>
Property & | operator-- ()
template<class = ValueType>
ValueType | operator-- (int)
template<class T = ValueType>
Property & | operator+= (const T &other)
template<class T = ValueType>
Property & | operator-= (const T &other)
Public Member Functions inherited from Gaudi::Details::PropertyBase
const std::string | name () const
| property name More...
std::string | documentation () const
| property documentation More...
const std::type_info * | type_info () const
| property type-info More...
std::string | type () const
| property type More...
template<class HT >
PropertyBase & | declareReadHandler (void(HT::*MF)(PropertyBase &), HT *instance)
template<class HT >
PropertyBase & | declareUpdateHandler (void(HT::*MF)(PropertyBase &), HT *instance)
virtual | ~PropertyBase ()=default
| virtual destructor More...
void | setName (std::string value)
| set the new value for the property name More...
void | setDocumentation (std::string value)
| set the documentation string More...
virtual std::ostream & | fillStream (std::ostream &) const
| the printout of the property value More...
void | setOwnerType (const std::type_info &ownerType)
| set the type of the owner class (used for documentation) More...
template<class OWNER >
void | setOwnerType ()
| set the type of the owner class (used for documentation) More...
const std::type_info * | ownerType () const
| get the type of the owner class (used for documentation) More...
std::string | ownerTypeName () const
| get the string for the type of the owner class (used for documentation) More...

## Private Attributes
StorageType | m_value
| Storage. More...
VerifierType | m_verifier
HandlersType | m_handlers
template<class T >
using | not_copying = std::enable_if_t<!is_this_type_v< T > >
template<class T >
static constexpr bool | is_this_type_v = std::is_same_v<Property, std::remove_reference_t<T>>
| helper typedefs for SFINAE More...

## Additional Inherited Members
Protected Member Functions inherited from Gaudi::Details::PropertyBase
| PropertyBase (const std::type_info &type, std::string name="", std::string doc="")
| constructor from the property name and the type More...
| PropertyBase (std::string name, const std::type_info &type)
| constructor from the property name and the type More...
| PropertyBase (const PropertyBase &)=default
| copy constructor More...
PropertyBase & | operator= (const PropertyBase &)=default
| assignment operator More...

## Detailed Description

### template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
class Gaudi::Property< TYPE, VERIFIER, HANDLERS >

Implementation of property with value of concrete type.

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

Author
  Marco Clemencic

Date
  2016-06-16

Definition at line 352 of file Property.h.

## Member Typedef Documentation

## ◆ HandlersType

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

using Gaudi::Property< TYPE, VERIFIER, HANDLERS >::HandlersType = HANDLERS

Definition at line 359 of file Property.h.

## ◆ not_copying

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class T >

using Gaudi::Property< TYPE, VERIFIER, HANDLERS >::not_copying = std::enable_if_t<!is_this_type_v<T> >
| private

Definition at line 372 of file Property.h.

## ◆ StorageType

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

using Gaudi::Property< TYPE, VERIFIER, HANDLERS >::StorageType = TYPE

Hosted type.

Definition at line 356 of file Property.h.

## ◆ ValueType

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

using Gaudi::Property< TYPE, VERIFIER, HANDLERS >::ValueType = typename std::remove_reference<StorageType>::type

Definition at line 357 of file Property.h.

## ◆ VerifierType

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

using Gaudi::Property< TYPE, VERIFIER, HANDLERS >::VerifierType = VERIFIER

Definition at line 358 of file Property.h.

## Constructor & Destructor Documentation

## ◆ Property() [1/9]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class T = StorageType>

Gaudi::Property< TYPE, VERIFIER, HANDLERS >::Property | ( | std::string | name,
|  | T && | value,
|  | std::string | doc = `""`
| ) |  |
| inline

the constructor with property name, value and documentation.

Definition at line 378 of file Property.h.

379 : Details::PropertyBase( typeid( ValueType ), std::move( name ), std::move( doc ) )
380 , m_value( std::forward<T>( value ) ) {
381 m_verifier( m_value );
382 }
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364
Gaudi::Details::PropertyBase::name
const std::string name() const
property name
Definition: Property.h:36
Gaudi::Property::ValueType
typename std::remove_reference< StorageType >::type ValueType
Definition: Property.h:357
Gaudi::Property::value
const ValueType & value() const
Backward compatibility (.
Definition: Property.h:526
std::move
T move(T... args)
Gaudi::Property::m_verifier
VerifierType m_verifier
Definition: Property.h:365

## ◆ Property() [2/9]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<typename OWNER , typename T = ValueType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>, typename = std::enable_if_t<std::is_default_constructible_v<T>>>

Gaudi::Property< TYPE, VERIFIER, HANDLERS >::Property | ( | OWNER * | owner,
|  | std::string | name
| ) |  |
| inline

Autodeclaring constructor with property name, value and documentation.

Note
  the use std::enable_if is required to avoid ambiguities

Definition at line 387 of file Property.h.

387 : Property( std::move( name ), ValueType{}, "" ) {
388 owner->declareProperty( *this );
389 setOwnerType<OWNER>();
390 }
Gaudi::Details::PropertyBase::name
const std::string name() const
property name
Definition: Property.h:36
Gaudi::Property::Property
Property()
Construct an anonymous property with default constructed value.
Definition: Property.h:444
Gaudi::Property::ValueType
typename std::remove_reference< StorageType >::type ValueType
Definition: Property.h:357
std::move
T move(T... args)

## ◆ Property() [3/9]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class OWNER , class T = StorageType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>

Gaudi::Property< TYPE, VERIFIER, HANDLERS >::Property | ( | OWNER * | owner,
|  | std::string | name,
|  | T && | value,
|  | std::string | doc = `""`
| ) |  |
| inline

Autodeclaring constructor with property name, value and documentation.

Note
  the use std::enable_if is required to avoid ambiguities

Definition at line 395 of file Property.h.

396 : Property( std::move( name ), std::forward<T>( value ), std::move( doc ) ) {
397 owner->declareProperty( *this );
398 setOwnerType<OWNER>();
399 }
Gaudi::Details::PropertyBase::name
const std::string name() const
property name
Definition: Property.h:36
Gaudi::Property::Property
Property()
Construct an anonymous property with default constructed value.
Definition: Property.h:444
Gaudi::Property::value
const ValueType & value() const
Backward compatibility (.
Definition: Property.h:526
std::move
T move(T... args)

## ◆ Property() [4/9]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class OWNER , class T = StorageType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>

Gaudi::Property< TYPE, VERIFIER, HANDLERS >::Property | ( | OWNER * | owner,
|  | std::string | name,
|  | T && | value,
|  | std::function< void(PropertyBase &)> | handler,
|  | std::string | doc = `""`
| ) |  |
| inline

Autodeclaring constructor with property name, value, updateHandler and documentation.

Note
  the use std::enable_if is required to avoid ambiguities

Definition at line 404 of file Property.h.

406 : Property( owner, std::move( name ), std::forward<T>( value ), std::move( doc ) ) {
407 declareUpdateHandler( std::move( handler ) );
408 }
Gaudi::Details::PropertyBase::name
const std::string name() const
property name
Definition: Property.h:36
Gaudi::Property::declareUpdateHandler
Details::PropertyBase & declareUpdateHandler(std::function< void(Details::PropertyBase &)> fun) override
set new callback for update
Definition: Property.h:455
Gaudi::Property::Property
Property()
Construct an anonymous property with default constructed value.
Definition: Property.h:444
Gaudi::Property::value
const ValueType & value() const
Backward compatibility (.
Definition: Property.h:526
std::move
T move(T... args)

## ◆ Property() [5/9]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class OWNER , class T = StorageType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>

Gaudi::Property< TYPE, VERIFIER, HANDLERS >::Property | ( | OWNER * | owner,
|  | std::string | name,
|  | T && | value,
|  | void(OWNER::*)(PropertyBase &) | handler,
|  | std::string | doc = `""`
| ) |  |
| inline

Autodeclaring constructor with property name, value, pointer to member function updateHandler and documentation.

Note
  the use std::enable_if is required to avoid ambiguities

Definition at line 413 of file Property.h.

415 : Property(
416 owner, std::move( name ), std::forward<T>( value ),
417 [owner, handler]( PropertyBase& p ) { ( owner->*handler )( p ); }, std::move( doc ) ) {}
Gaudi::Details::PropertyBase::name
const std::string name() const
property name
Definition: Property.h:36
Gaudi::Details::PropertyBase::PropertyBase
PropertyBase(const std::type_info &type, std::string name="", std::string doc="")
constructor from the property name and the type
Definition: Property.h:111
Gaudi::Property::Property
Property()
Construct an anonymous property with default constructed value.
Definition: Property.h:444
Gaudi::Property::value
const ValueType & value() const
Backward compatibility (.
Definition: Property.h:526
std::move
T move(T... args)

## ◆ Property() [6/9]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class OWNER , class T = StorageType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>

Gaudi::Property< TYPE, VERIFIER, HANDLERS >::Property | ( | OWNER * | owner,
|  | std::string | name,
|  | T && | value,
|  | void(OWNER::*)() | handler,
|  | std::string | doc = `""`
| ) |  |
| inline

Autodeclaring constructor with property name, value, pointer to member function updateHandler and documentation.

Note
  the use std::enable_if is required to avoid ambiguities

Definition at line 421 of file Property.h.

422 : Property(
423 owner, std::move( name ), std::forward<T>( value ),
424 [owner, handler]( PropertyBase& ) { ( owner->*handler )(); }, std::move( doc ) ) {}
Gaudi::Details::PropertyBase::name
const std::string name() const
property name
Definition: Property.h:36
Gaudi::Details::PropertyBase::PropertyBase
PropertyBase(const std::type_info &type, std::string name="", std::string doc="")
constructor from the property name and the type
Definition: Property.h:111
Gaudi::Property::Property
Property()
Construct an anonymous property with default constructed value.
Definition: Property.h:444
Gaudi::Property::value
const ValueType & value() const
Backward compatibility (.
Definition: Property.h:526
std::move
T move(T... args)

## ◆ Property() [7/9]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class OWNER , class T = StorageType, typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>

Gaudi::Property< TYPE, VERIFIER, HANDLERS >::Property | ( | OWNER * | owner,
|  | std::string | name,
|  | T && | value,
|  | std::function< void(PropertyBase &)> | handler,
|  | Details::Property< TYPE, VERIFIER, HANDLERS >::ImmediatelyInvokeHandler | invoke,
|  | std::string | doc = `""`
| ) |  |
| inline

Autodeclaring constructor with property name, value, updateHandler and documentation.

Note
  the use std::enable_if is required to avoid ambiguities

Definition at line 429 of file Property.h.

431 : Property( owner, std::move( name ), std::forward<T>( value ), std::move( handler ), std::move( doc ) ) {
432 if ( invoke ) useUpdateHandler();
433 }
Gaudi::Property::useUpdateHandler
bool useUpdateHandler() override
manual trigger for callback for update
Definition: Property.h:470
Gaudi::Details::PropertyBase::name
const std::string name() const
property name
Definition: Property.h:36
Gaudi::Property::Property
Property()
Construct an anonymous property with default constructed value.
Definition: Property.h:444
Gaudi::Property::value
const ValueType & value() const
Backward compatibility (.
Definition: Property.h:526
std::move
T move(T... args)

## ◆ Property() [8/9]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<typename T , typename = not_copying<T>>

Gaudi::Property< TYPE, VERIFIER, HANDLERS >::Property | ( | T && | v | ) |
| inline

Construct an anonymous property from a value.

This constructor is not generated if T is the current type, so that the compiler picks up the copy constructor instead of this one.

Definition at line 439 of file Property.h.

439 : Details::PropertyBase( typeid( ValueType ), "", "" ), m_value( std::forward<T>( v ) ) {}
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364
Gaudi::Property::ValueType
typename std::remove_reference< StorageType >::type ValueType
Definition: Property.h:357

## ◆ Property() [9/9]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<typename T = StorageType, typename = std::enable_if_t<!std::is_reference_v<T>>>

Gaudi::Property< TYPE, VERIFIER, HANDLERS >::Property | ( |  | ) |
| inline

Construct an anonymous property with default constructed value.

Can be used only if StorageType is default constructible.

Definition at line 444 of file Property.h.

444 : Details::PropertyBase( typeid( ValueType ), "", "" ), m_value() {}
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364
Gaudi::Property::ValueType
typename std::remove_reference< StorageType >::type ValueType
Definition: Property.h:357

## Member Function Documentation

## ◆ assign()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

bool Gaudi::Property< TYPE, VERIFIER, HANDLERS >::assign | ( | const Details::PropertyBase & | source | ) |
| inline override virtual

get the value from another property

Implements Gaudi::Details::PropertyBase.

Definition at line 659 of file Property.h.

659 {
660 // Check if the property of is of "the same" type, except for strings
661 const Property* p =
662 ( std::is_same_v<ValueType, std::string> ) ? nullptr : dynamic_cast<const Property*>( &source );
663 if ( p ) {
664 *this = p->value();
665 } else {
666 this->fromString( source.toString() ).ignore();
667 }
668 return true;
669 }
Property
Gaudi::Details::PropertyBase Property
\fixme backward compatibility hack for old Property base class
Definition: PropertyFwd.h:25
Gaudi::Property::fromString
StatusCode fromString(const std::string &source) override
string -> value
Definition: Property.h:676

## ◆ clone()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

Details::PropertyBase* Gaudi::Property< TYPE, VERIFIER, HANDLERS >::clone | ( |  | ) | const
| inline override virtual

clones the current property

Implements Gaudi::Details::PropertyBase.

Definition at line 536 of file Property.h.

536 { return new Property( *this ); }
Gaudi::Property::Property
Property()
Construct an anonymous property with default constructed value.
Definition: Property.h:444

## ◆ declareReadHandler()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

Details::PropertyBase& Gaudi::Property< TYPE, VERIFIER, HANDLERS >::declareReadHandler | ( | std::function< void(Details::PropertyBase &)> | fun | ) |
| inline override virtual

set new callback for reading

Implements Gaudi::Details::PropertyBase.

Definition at line 450 of file Property.h.

450 {
451 m_handlers.setReadHandler( std::move( fun ) );
452 return *this;
453 }
Gaudi::Property::m_handlers
HandlersType m_handlers
Definition: Property.h:366
std::move
T move(T... args)

## ◆ declareUpdateHandler()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

Details::PropertyBase& Gaudi::Property< TYPE, VERIFIER, HANDLERS >::declareUpdateHandler | ( | std::function< void(Details::PropertyBase &)> | fun | ) |
| inline override virtual

set new callback for update

Implements Gaudi::Details::PropertyBase.

Definition at line 455 of file Property.h.

455 {
456 m_handlers.setUpdateHandler( std::move( fun ) );
457 return *this;
458 }
Gaudi::Property::m_handlers
HandlersType m_handlers
Definition: Property.h:366
std::move
T move(T... args)

## ◆ fromString()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

StatusCode Gaudi::Property< TYPE, VERIFIER, HANDLERS >::fromString | ( | const std::string & | source | ) |
| inline override virtual

string -> value

Implements Gaudi::Details::PropertyBase.

Definition at line 676 of file Property.h.

676 {
677 using Converter = Details::Property::StringConverter<ValueType>;
678 *this = Converter().fromString( m_value, source );
679 return StatusCode::SUCCESS;
680 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364
Converter
Converter base class.
Definition: Converter.h:24

## ◆ load()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

bool Gaudi::Property< TYPE, VERIFIER, HANDLERS >::load | ( | Details::PropertyBase & | dest | ) | const
| inline override virtual

set value to another property

Implements Gaudi::Details::PropertyBase.

Definition at line 671 of file Property.h.

671 {
672 // delegate to the 'opposite' method
673 return dest.assign( *this );
674 }
gaudirun.dest
dest
Definition: gaudirun.py:201

## ◆ operator const ValueType &()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator const ValueType & | ( |  | ) | const
| inline

Automatic conversion to value (const reference).

Definition at line 476 of file Property.h.

476 {
477 m_handlers.useReadHandler( *this );
478 return m_value;
479 }
Gaudi::Property::m_handlers
HandlersType m_handlers
Definition: Property.h:366
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364

## ◆ operator!=()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class T >

bool Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator!= | ( | const T & | other | ) | const
| inline

inequality comparison

Definition at line 494 of file Property.h.

494 {
495 return m_value != other;
496 }
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364

## ◆ operator()()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class... Args>

decltype( Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator() | ( | Args &&... | args | ) | const
| inline noexcept

Definition at line 652 of file Property.h.

653 {
654 return value()( std::forward<Args>( args )... );
655 }
gaudirun.args
args
Definition: gaudirun.py:307
Gaudi::Property::value
const ValueType & value() const
Backward compatibility (.
Definition: Property.h:526

## ◆ operator++() [1/2]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class = ValueType>

Property& Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator++ | ( |  | ) |
| inline

Definition at line 595 of file Property.h.

595 {
596 ++value();
597 return *this;
598 }
Gaudi::Property::value
const ValueType & value() const
Backward compatibility (.
Definition: Property.h:526

## ◆ operator++() [2/2]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class = ValueType>

ValueType Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator++ | ( | int |  | ) |
| inline

Definition at line 600 of file Property.h.

600 {
601 return m_value++;
602 }
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364

## ◆ operator+=()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class T = ValueType>

Property& Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator+= | ( | const T & | other | ) |
| inline

Definition at line 613 of file Property.h.

613 {
614 m_value += other;
615 return *this;
616 }
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364

## ◆ operator--() [1/2]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class = ValueType>

Property& Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator-- | ( |  | ) |
| inline

Definition at line 604 of file Property.h.

604 {
605 --value();
606 return *this;
607 }
Gaudi::Property::value
const ValueType & value() const
Backward compatibility (.
Definition: Property.h:526

## ◆ operator--() [2/2]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class = ValueType>

ValueType Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator-- | ( | int |  | ) |
| inline

Definition at line 609 of file Property.h.

609 {
610 return m_value--;
611 }
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364

## ◆ operator-=()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class T = ValueType>

Property& Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator-= | ( | const T & | other | ) |
| inline

Definition at line 618 of file Property.h.

618 {
619 m_value -= other;
620 return *this;
621 }
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364

## ◆ operator<()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class T >

bool Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator< | ( | const T & | other | ) | const
| inline

"less" comparison

Definition at line 500 of file Property.h.

500 {
501 return m_value < other;
502 }
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364

## ◆ operator=()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class T = ValueType>

Property& Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator= | ( | T && | v | ) |
| inline

Assignment from value.

Definition at line 512 of file Property.h.

512 {
513 m_verifier( v );
514 m_value = std::forward<T>( v );
515 m_handlers.useUpdateHandler( *this );
516 return *this;
517 }
Gaudi::Property::m_handlers
HandlersType m_handlers
Definition: Property.h:366
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364
Gaudi::Property::m_verifier
VerifierType m_verifier
Definition: Property.h:365

## ◆ operator==()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class T >

bool Gaudi::Property< TYPE, VERIFIER, HANDLERS >::operator== | ( | const T & | other | ) | const
| inline

equality comparison

Definition at line 488 of file Property.h.

488 {
489 return m_value == other;
490 }
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364

## ◆ readCallBack()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

const std::function<void( Details::PropertyBase& )> Gaudi::Property< TYPE, VERIFIER, HANDLERS >::readCallBack | ( |  | ) | const
| inline override virtual

get a reference to the readCallBack

Implements Gaudi::Details::PropertyBase.

Definition at line 461 of file Property.h.

461 {
462 return m_handlers.getReadHandler();
463 }
Gaudi::Property::m_handlers
HandlersType m_handlers
Definition: Property.h:366

## ◆ set()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

bool Gaudi::Property< TYPE, VERIFIER, HANDLERS >::set | ( | const ValueType & | v | ) |
| inline

Definition at line 532 of file Property.h.

532 {
533 *this = v;
534 return true;
535 }

## ◆ setValue()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

bool Gaudi::Property< TYPE, VERIFIER, HANDLERS >::setValue | ( | const ValueType & | v | ) |
| inline

Definition at line 528 of file Property.h.

528 {
529 *this = v;
530 return true;
531 }

## ◆ toStream()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

void Gaudi::Property< TYPE, VERIFIER, HANDLERS >::toStream | ( | std::ostream & | out | ) | const
| inline override virtual

value -> stream

Implements Gaudi::Details::PropertyBase.

Definition at line 687 of file Property.h.

687 {
688 m_handlers.useReadHandler( *this );
689 using Utils::toStream;
690 toStream( m_value, out );
691 }
Gaudi::Utils::toStream
std::ostream & toStream(ITERATOR first, ITERATOR last, std::ostream &s, const std::string &open, const std::string &close, const std::string &delim)
the helper function to print the sequence
Definition: ToStream.h:284
Gaudi::Property::m_handlers
HandlersType m_handlers
Definition: Property.h:366
Gaudi::Property::m_value
StorageType m_value
Storage.
Definition: Property.h:364
Gaudi::Property::toStream
void toStream(std::ostream &out) const override
value -> stream
Definition: Property.h:687

## ◆ toString()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

std::string Gaudi::Property< TYPE, VERIFIER, HANDLERS >::toString | ( |  | ) | const
| inline override virtual

value -> string

Implements Gaudi::Details::PropertyBase.

Definition at line 682 of file Property.h.

682 {
683 using Converter = Details::Property::StringConverter<ValueType>;
684 return Converter().toString( *this );
685 }
Converter
Converter base class.
Definition: Converter.h:24

## ◆ updateCallBack()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

const std::function<void( Details::PropertyBase& )> Gaudi::Property< TYPE, VERIFIER, HANDLERS >::updateCallBack | ( |  | ) | const
| inline override virtual

get a reference to the updateCallBack

Implements Gaudi::Details::PropertyBase.

Definition at line 465 of file Property.h.

465 {
466 return m_handlers.getUpdateHandler();
467 }
Gaudi::Property::m_handlers
HandlersType m_handlers
Definition: Property.h:366

## ◆ useUpdateHandler()

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

bool Gaudi::Property< TYPE, VERIFIER, HANDLERS >::useUpdateHandler | ( |  | ) |
| inline override virtual

manual trigger for callback for update

Implements Gaudi::Details::PropertyBase.

Definition at line 470 of file Property.h.

470 {
471 m_handlers.useUpdateHandler( *this );
472 return true;
473 }
Gaudi::Property::m_handlers
HandlersType m_handlers
Definition: Property.h:366

## ◆ value() [1/2]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

const ValueType& Gaudi::Property< TYPE, VERIFIER, HANDLERS >::value | ( |  | ) | const
| inline

Backward compatibility (.

Deprecated:
  will be removed)

Definition at line 526 of file Property.h.

526 { return *this; }

## ◆ value() [2/2]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

ValueType& Gaudi::Property< TYPE, VERIFIER, HANDLERS >::value | ( |  | ) |
| inline

Definition at line 527 of file Property.h.

527 { return const_cast<ValueType&>( (const ValueType&)*this ); }
Gaudi::Property::ValueType
typename std::remove_reference< StorageType >::type ValueType
Definition: Property.h:357

## ◆ verifier() [1/2]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

const VerifierType& Gaudi::Property< TYPE, VERIFIER, HANDLERS >::verifier | ( |  | ) | const
| inline

Accessor to verifier.

Definition at line 520 of file Property.h.

520 { return m_verifier; }
Gaudi::Property::m_verifier
VerifierType m_verifier
Definition: Property.h:365

## ◆ verifier() [2/2]

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

VerifierType& Gaudi::Property< TYPE, VERIFIER, HANDLERS >::verifier | ( |  | ) |
| inline

Accessor to verifier.

Definition at line 522 of file Property.h.

522 { return m_verifier; }
Gaudi::Property::m_verifier
VerifierType m_verifier
Definition: Property.h:365

## Member Data Documentation

## ◆ is_this_type_v

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>
template<class T >

constexpr bool Gaudi::Property< TYPE, VERIFIER, HANDLERS >::is_this_type_v = std::is_same_v<Property, std::remove_reference_t<T>>
| inline static private

helper typedefs for SFINAE

Definition at line 370 of file Property.h.

## ◆ m_handlers

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

HandlersType Gaudi::Property< TYPE, VERIFIER, HANDLERS >::m_handlers
| private

Definition at line 366 of file Property.h.

## ◆ m_value

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

StorageType Gaudi::Property< TYPE, VERIFIER, HANDLERS >::m_value
| private

Storage.

Definition at line 364 of file Property.h.

## ◆ m_verifier

template<class TYPE, class VERIFIER = Details::Property::NullVerifier, class HANDLERS = Details::Property::UpdateHandler>

VerifierType Gaudi::Property< TYPE, VERIFIER, HANDLERS >::m_verifier
| private

Definition at line 365 of file Property.h.

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

- GaudiKernel/GaudiKernel/Property.h