The Gaudi Framework  v32r2 (46d42edc)
Property.h File Reference
#include <stdexcept>
#include <string>
#include <string_view>
#include <typeinfo>
#include "GaudiKernel/IProperty.h"
#include "GaudiKernel/Kernel.h"
#include "GaudiKernel/PropertyFwd.h"
#include "GaudiKernel/SmartIF.h"
#include "GaudiKernel/TaggedBool.h"
#include "GaudiKernel/ToStream.h"
#include <Gaudi/Parsers/CommonParsers.h>
#include <Gaudi/Parsers/InputData.h>
Include dependency graph for Property.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Gaudi::Details::PropertyBase
 PropertyBase base class allowing PropertyBase* collections to be "homogeneous". More...
 
struct  Gaudi::Details::Property::DefaultStringConverterImpl< TYPE >
 
struct  Gaudi::Details::Property::DefaultStringConverter< TYPE, Enable >
 
struct  Gaudi::Details::Property::DefaultStringConverter< TYPE, std::enable_if_t< std::is_default_constructible_v< TYPE > > >
 
struct  Gaudi::Details::Property::StringConverter< TYPE >
 
struct  Gaudi::Details::Property::NullVerifier
 
struct  Gaudi::Details::Property::BoundedVerifier< TYPE >
 
struct  Gaudi::Details::Property::SwapCall
 helper to disable a while triggering it, to avoid infinite recursion More...
 
struct  Gaudi::Details::Property::NoHandler
 
struct  Gaudi::Details::Property::ReadHandler
 
struct  Gaudi::Details::Property::UpdateHandler
 
struct  Gaudi::Details::Property::ReadUpdateHandler
 
class  Gaudi::Property< TYPE, VERIFIER, HANDLERS >
 Implementation of property with value of concrete type. More...
 
class  PropertyWithHandlers< Handler >
 Helper class to simplify the migration old properties deriving directly from PropertyBase. More...
 
class  GaudiHandleProperty
 
class  GaudiHandleArrayProperty
 

Namespaces

 Gaudi
 Header file for std:chrono::duration-based Counters.
 
 Gaudi::Details
 
 Gaudi::Details::Property
 
 Gaudi::Utils
 

Typedefs

using Gaudi::Details::Property::ImmediatelyInvokeHandler = Gaudi::tagged_bool< class ImmediatelyInvokeHandler_tag >
 
template<class TYPE >
using SimpleProperty = Gaudi::Property< TYPE >
 
template<class TYPE >
using SimplePropertyRef = Gaudi::Property< TYPE & >
 
typedef Gaudi::Property< bool > BooleanProperty
 
typedef Gaudi::Property< char > CharProperty
 
typedef Gaudi::Property< signed char > SignedCharProperty
 
typedef Gaudi::Property< unsigned char > UnsignedCharProperty
 
typedef Gaudi::Property< short > ShortProperty
 
typedef Gaudi::Property< unsigned short > UnsignedShortProperty
 
typedef Gaudi::Property< int > IntegerProperty
 
typedef Gaudi::Property< unsigned int > UnsignedIntegerProperty
 
typedef Gaudi::Property< long > LongProperty
 
typedef Gaudi::Property< unsigned long > UnsignedLongProperty
 
typedef Gaudi::Property< long long > LongLongProperty
 
typedef Gaudi::Property< unsigned long long > UnsignedLongLongProperty
 
typedef Gaudi::Property< float > FloatProperty
 
typedef Gaudi::Property< double > DoubleProperty
 
typedef Gaudi::Property< long double > LongDoubleProperty
 
typedef Gaudi::Property< std::stringStringProperty
 
typedef Gaudi::Property< bool & > BooleanPropertyRef
 
typedef Gaudi::Property< char & > CharPropertyRef
 
typedef Gaudi::Property< signed char & > SignedCharPropertyRef
 
typedef Gaudi::Property< unsigned char & > UnsignedCharPropertyRef
 
typedef Gaudi::Property< short & > ShortPropertyRef
 
typedef Gaudi::Property< unsigned short & > UnsignedShortPropertyRef
 
typedef Gaudi::Property< int & > IntegerPropertyRef
 
typedef Gaudi::Property< unsigned int & > UnsignedIntegerPropertyRef
 
typedef Gaudi::Property< long & > LongPropertyRef
 
typedef Gaudi::Property< unsigned long & > UnsignedLongPropertyRef
 
typedef Gaudi::Property< long long & > LongLongPropertyRef
 
typedef Gaudi::Property< unsigned long long & > UnsignedLongLongPropertyRef
 
typedef Gaudi::Property< float & > FloatPropertyRef
 
typedef Gaudi::Property< double & > DoublePropertyRef
 
typedef Gaudi::Property< long double & > LongDoublePropertyRef
 
typedef Gaudi::Property< std::string & > StringPropertyRef
 
typedef Gaudi::Property< std::vector< bool > > BooleanArrayProperty
 
typedef Gaudi::Property< std::vector< char > > CharArrayProperty
 
typedef Gaudi::Property< std::vector< signed char > > SignedCharArrayProperty
 
typedef Gaudi::Property< std::vector< unsigned char > > UnsignedCharArrayProperty
 
typedef Gaudi::Property< std::vector< short > > ShortArrayProperty
 
typedef Gaudi::Property< std::vector< unsigned short > > UnsignedShortArrayProperty
 
typedef Gaudi::Property< std::vector< int > > IntegerArrayProperty
 
typedef Gaudi::Property< std::vector< unsigned int > > UnsignedIntegerArrayProperty
 
typedef Gaudi::Property< std::vector< long > > LongArrayProperty
 
typedef Gaudi::Property< std::vector< unsigned long > > UnsignedLongArrayProperty
 
typedef Gaudi::Property< std::vector< long long > > LongLongArrayProperty
 
typedef Gaudi::Property< std::vector< unsigned long long > > UnsignedLongLongArrayProperty
 
typedef Gaudi::Property< std::vector< float > > FloatArrayProperty
 
typedef Gaudi::Property< std::vector< double > > DoubleArrayProperty
 
typedef Gaudi::Property< std::vector< long double > > LongDoubleArrayProperty
 
typedef Gaudi::Property< std::vector< std::string > > StringArrayProperty
 
typedef Gaudi::Property< std::vector< bool > & > BooleanArrayPropertyRef
 
typedef Gaudi::Property< std::vector< char > & > CharArrayPropertyRef
 
typedef Gaudi::Property< std::vector< signed char > & > SignedCharArrayPropertyRef
 
typedef Gaudi::Property< std::vector< unsigned char > & > UnsignedCharArrayPropertyRef
 
typedef Gaudi::Property< std::vector< short > & > ShortArrayPropertyRef
 
typedef Gaudi::Property< std::vector< unsigned short > & > UnsignedShortArrayPropertyRef
 
typedef Gaudi::Property< std::vector< int > & > IntegerArrayPropertyRef
 
typedef Gaudi::Property< std::vector< unsigned int > & > UnsignedIntegerArrayPropertyRef
 
typedef Gaudi::Property< std::vector< long > & > LongArrayPropertyRef
 
typedef Gaudi::Property< std::vector< unsigned long > & > UnsignedLongArrayPropertyRef
 
typedef Gaudi::Property< std::vector< long long > & > LongLongArrayPropertyRef
 
typedef Gaudi::Property< std::vector< unsigned long long > & > UnsignedLongLongArrayPropertyRef
 
typedef Gaudi::Property< std::vector< float > & > FloatArrayPropertyRef
 
typedef Gaudi::Property< std::vector< double > & > DoubleArrayPropertyRef
 
typedef Gaudi::Property< std::vector< long double > & > LongDoubleArrayPropertyRef
 
typedef Gaudi::Property< std::vector< std::string > & > StringArrayPropertyRef
 

Functions

std::ostreamGaudi::Details::operator<< (std::ostream &stream, const PropertyBase &prop)
 
template<class T , class TP , class V , class H >
bool Gaudi::operator== (const T &v, const Property< TP, V, H > &p)
 delegate (value == property) to property operator== More...
 
template<class T , class TP , class V , class H >
bool Gaudi::operator!= (const T &v, const Property< TP, V, H > &p)
 delegate (value != property) to property operator!= More...
 
template<class T , class TP , class V , class H >
decltype(auto) Gaudi::operator+ (const T &v, const Property< TP, V, H > &p)
 implemantation of (value + property) More...
 
GAUDI_API bool Gaudi::Utils::hasProperty (const IProperty *p, const std::string &name)
 simple function which check the existence of the property with the given name. More...
 
GAUDI_API bool Gaudi::Utils::hasProperty (const IInterface *p, const std::string &name)
 simple function which check the existence of the property with the given name. More...
 
GAUDI_API Gaudi::Details::PropertyBaseGaudi::Utils::getProperty (const IProperty *p, const std::string &name)
 simple function which gets the property with given name from the component More...
 
GAUDI_API Gaudi::Details::PropertyBaseGaudi::Utils::getProperty (const IInterface *p, const std::string &name)
 simple function which gets the property with given name from the component More...
 
GAUDI_API bool Gaudi::Utils::hasProperty (const std::vector< const Gaudi::Details::PropertyBase * > *p, const std::string &name)
 check the property by name from the list of the properties More...
 
GAUDI_API const Gaudi::Details::PropertyBaseGaudi::Utils::getProperty (const std::vector< const Gaudi::Details::PropertyBase * > *p, const std::string &name)
 get the property by name from the list of the properties More...
 
template<class TYPE >
StatusCode Gaudi::Utils::setProperty (IProperty *component, const std::string &name, const TYPE &value, const std::string &doc)
 simple function to set the property of the given object from the value More...
 
template<class TYPE >
StatusCode Gaudi::Utils::setProperty (IProperty *component, const std::string &name, const TYPE &value)
 simple function to set the property of the given object from the value More...
 
GAUDI_API StatusCode Gaudi::Utils::setProperty (IProperty *component, const std::string &name, const std::string &value, const std::string &doc="")
 the full specialization of the previous method setProperty( IProperty, std::string, const TYPE&) for standard strings More...
 
GAUDI_API StatusCode Gaudi::Utils::setProperty (IProperty *component, const std::string &name, const char *value, const std::string &doc="")
 the full specialization of the method setProperty( IProperty, std::string, const TYPE&) for C-strings More...
 
template<unsigned N>
StatusCode Gaudi::Utils::setProperty (IProperty *component, const std::string &name, const char(&value)[N], const std::string &doc="")
 the full specialization of the method setProperty( IProperty, std::string, const TYPE&) for C-arrays More...
 
GAUDI_API StatusCode Gaudi::Utils::setProperty (IProperty *component, const std::string &name, const Gaudi::Details::PropertyBase *property, const std::string &doc="")
 simple function to set the property of the given object from another property More...
 
GAUDI_API StatusCode Gaudi::Utils::setProperty (IProperty *component, const std::string &name, const Gaudi::Details::PropertyBase &property, const std::string &doc="")
 simple function to set the property of the given object from another property More...
 
template<class TYPE >
StatusCode Gaudi::Utils::setProperty (IProperty *component, const std::string &name, const Gaudi::Property< TYPE > &value, const std::string &doc="")
 simple function to set the property of the given object from another property More...
 
template<class TYPE >
StatusCode Gaudi::Utils::setProperty (IInterface *component, const std::string &name, const TYPE &value, const std::string &doc="")
 simple function to set the property of the given object from the value More...
 
GAUDI_API StatusCode Gaudi::Utils::setProperty (IInterface *component, const std::string &name, const std::string &value, const std::string &doc="")
 the full specialization of the method setProperty( IInterface , std::string, const TYPE&) for standard strings More...
 
GAUDI_API StatusCode Gaudi::Utils::setProperty (IInterface *component, const std::string &name, const char *value, const std::string &doc="")
 the full specialization of the method setProperty( IInterface , std::string, const TYPE&) for C-strings More...
 
template<unsigned N>
StatusCode Gaudi::Utils::setProperty (IInterface *component, const std::string &name, const char(&value)[N], const std::string &doc="")
 the full specialization of the method setProperty( IInterface, std::string, const TYPE&) for C-arrays More...
 
GAUDI_API StatusCode Gaudi::Utils::setProperty (IInterface *component, const std::string &name, const Gaudi::Details::PropertyBase *property, const std::string &doc="")
 simple function to set the property of the given object from another property More...
 
GAUDI_API StatusCode Gaudi::Utils::setProperty (IInterface *component, const std::string &name, const Gaudi::Details::PropertyBase &property, const std::string &doc="")
 simple function to set the property of the given object from another property More...
 
template<class TYPE >
StatusCode Gaudi::Utils::setProperty (IInterface *component, const std::string &name, const Gaudi::Property< TYPE > &value, const std::string &doc="")
 simple function to set the property of the given object from another property More...
 

Typedef Documentation

◆ BooleanArrayProperty

Definition at line 766 of file Property.h.

◆ BooleanArrayPropertyRef

Definition at line 785 of file Property.h.

◆ BooleanProperty

Definition at line 728 of file Property.h.

◆ BooleanPropertyRef

Definition at line 747 of file Property.h.

◆ CharArrayProperty

Definition at line 767 of file Property.h.

◆ CharArrayPropertyRef

Definition at line 786 of file Property.h.

◆ CharProperty

Definition at line 729 of file Property.h.

◆ CharPropertyRef

Definition at line 748 of file Property.h.

◆ DoubleArrayProperty

Definition at line 779 of file Property.h.

◆ DoubleArrayPropertyRef

Definition at line 798 of file Property.h.

◆ DoubleProperty

Definition at line 741 of file Property.h.

◆ DoublePropertyRef

Definition at line 760 of file Property.h.

◆ FloatArrayProperty

Definition at line 778 of file Property.h.

◆ FloatArrayPropertyRef

Definition at line 797 of file Property.h.

◆ FloatProperty

Definition at line 740 of file Property.h.

◆ FloatPropertyRef

Definition at line 759 of file Property.h.

◆ IntegerArrayProperty

Definition at line 772 of file Property.h.

◆ IntegerArrayPropertyRef

Definition at line 791 of file Property.h.

◆ IntegerProperty

Definition at line 734 of file Property.h.

◆ IntegerPropertyRef

Definition at line 753 of file Property.h.

◆ LongArrayProperty

Definition at line 774 of file Property.h.

◆ LongArrayPropertyRef

Definition at line 793 of file Property.h.

◆ LongDoubleArrayProperty

Definition at line 780 of file Property.h.

◆ LongDoubleArrayPropertyRef

Definition at line 799 of file Property.h.

◆ LongDoubleProperty

typedef Gaudi::Property<long double> LongDoubleProperty

Definition at line 742 of file Property.h.

◆ LongDoublePropertyRef

typedef Gaudi::Property<long double&> LongDoublePropertyRef

Definition at line 761 of file Property.h.

◆ LongLongArrayProperty

Definition at line 776 of file Property.h.

◆ LongLongArrayPropertyRef

Definition at line 795 of file Property.h.

◆ LongLongProperty

typedef Gaudi::Property<long long> LongLongProperty

Definition at line 738 of file Property.h.

◆ LongLongPropertyRef

typedef Gaudi::Property<long long&> LongLongPropertyRef

Definition at line 757 of file Property.h.

◆ LongProperty

Definition at line 736 of file Property.h.

◆ LongPropertyRef

Definition at line 755 of file Property.h.

◆ ShortArrayProperty

Definition at line 770 of file Property.h.

◆ ShortArrayPropertyRef

Definition at line 789 of file Property.h.

◆ ShortProperty

Definition at line 732 of file Property.h.

◆ ShortPropertyRef

Definition at line 751 of file Property.h.

◆ SignedCharArrayProperty

Definition at line 768 of file Property.h.

◆ SignedCharArrayPropertyRef

Definition at line 787 of file Property.h.

◆ SignedCharProperty

typedef Gaudi::Property<signed char> SignedCharProperty

Definition at line 730 of file Property.h.

◆ SignedCharPropertyRef

typedef Gaudi::Property<signed char&> SignedCharPropertyRef

Definition at line 749 of file Property.h.

◆ SimpleProperty

template<class TYPE >
using SimpleProperty = Gaudi::Property<TYPE>

Definition at line 722 of file Property.h.

◆ SimplePropertyRef

template<class TYPE >
using SimplePropertyRef = Gaudi::Property<TYPE&>

Definition at line 725 of file Property.h.

◆ StringArrayProperty

Definition at line 782 of file Property.h.

◆ StringArrayPropertyRef

◆ StringProperty

Definition at line 744 of file Property.h.

◆ StringPropertyRef

Definition at line 763 of file Property.h.

◆ UnsignedCharArrayProperty

Definition at line 769 of file Property.h.

◆ UnsignedCharArrayPropertyRef

Definition at line 788 of file Property.h.

◆ UnsignedCharProperty

typedef Gaudi::Property<unsigned char> UnsignedCharProperty

Definition at line 731 of file Property.h.

◆ UnsignedCharPropertyRef

typedef Gaudi::Property<unsigned char&> UnsignedCharPropertyRef

Definition at line 750 of file Property.h.

◆ UnsignedIntegerArrayProperty

Definition at line 773 of file Property.h.

◆ UnsignedIntegerArrayPropertyRef

Definition at line 792 of file Property.h.

◆ UnsignedIntegerProperty

Definition at line 735 of file Property.h.

◆ UnsignedIntegerPropertyRef

Definition at line 754 of file Property.h.

◆ UnsignedLongArrayProperty

Definition at line 775 of file Property.h.

◆ UnsignedLongArrayPropertyRef

Definition at line 794 of file Property.h.

◆ UnsignedLongLongArrayProperty

Definition at line 777 of file Property.h.

◆ UnsignedLongLongArrayPropertyRef

Definition at line 796 of file Property.h.

◆ UnsignedLongLongProperty

typedef Gaudi::Property<unsigned long long> UnsignedLongLongProperty

Definition at line 739 of file Property.h.

◆ UnsignedLongLongPropertyRef

typedef Gaudi::Property<unsigned long long&> UnsignedLongLongPropertyRef

Definition at line 758 of file Property.h.

◆ UnsignedLongProperty

typedef Gaudi::Property<unsigned long> UnsignedLongProperty

Definition at line 737 of file Property.h.

◆ UnsignedLongPropertyRef

typedef Gaudi::Property<unsigned long&> UnsignedLongPropertyRef

Definition at line 756 of file Property.h.

◆ UnsignedShortArrayProperty

Definition at line 771 of file Property.h.

◆ UnsignedShortArrayPropertyRef

Definition at line 790 of file Property.h.

◆ UnsignedShortProperty

typedef Gaudi::Property<unsigned short> UnsignedShortProperty

Definition at line 733 of file Property.h.

◆ UnsignedShortPropertyRef

typedef Gaudi::Property<unsigned short&> UnsignedShortPropertyRef

Definition at line 752 of file Property.h.