The Gaudi Framework  v30r3 (a5ef0a68)
PropertyMgr.h File Reference
#include <iostream>
#include <stdexcept>
#include <utility>
#include <vector>
#include "GaudiKernel/DataObjectHandleBase.h"
#include "GaudiKernel/GaudiHandle.h"
#include "GaudiKernel/IProperty.h"
#include "GaudiKernel/Property.h"
Include dependency graph for PropertyMgr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef std::vector< Gaudi::Details::PropertyBase * > Properties
 
typedef std::pair< std::string, std::pair< IProperty *, std::string > > RemProperty
 
typedef std::vector< RemPropertyRemoteProperties
 

Functions

 PropertyMgr (const PropertyMgr &)=delete
 
PropertyMgroperator= (const PropertyMgr &)=delete
 
template<class TYPE , typename = std::enable_if_t<!std::is_base_of<GaudiHandleBase, TYPE>::value && !std::is_base_of<GaudiHandleArrayBase, TYPE>::value && !std::is_base_of<DataObjectHandleBase, TYPE>::value>>
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
 Declare a property (templated) More...
 
template<class TYPE >
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, Gaudi::Property< TYPE > &prop, const std::string &doc="none")
 Declare a property (specialization) More...
 
template<class TYPE >
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, Gaudi::Property< TYPE & > &prop, const std::string &doc="none")
 Declare a property (specialization) More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, GaudiHandleBase &ref, const std::string &doc="none")
 Declare a property (specialization) More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, GaudiHandleArrayBase &ref, const std::string &doc="none")
 Declare a property (specialization) More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, DataObjectHandleBase &ref, const std::string &doc="none")
 Declare a property (specialization) More...
 
Gaudi::Details::PropertyBasedeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
 Declare a remote property. More...
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p) override
 set the property form another property More...
 
StatusCode setProperty (const std::string &s) override
 set the property from the property formatted string More...
 
StatusCode setProperty (const std::string &n, const std::string &v) override
 set the property from name and the value More...
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property More...
 
const Gaudi::Details::PropertyBasegetProperty (const std::string &name) const override
 get the property by name More...
 
StatusCode getProperty (const std::string &n, std::string &v) const override
 convert the property to the string More...
 
const std::vector< Gaudi::Details::PropertyBase * > & getProperties () const override
 get all properties More...
 
bool hasProperty (const std::string &name) const override
 Return true if we have a property with the given name. More...
 
StatusCode queryInterface (const InterfaceID &iid, void **pinterface) override
 
Gaudi::Details::PropertyBaseproperty (const std::string &name) const
 
Gaudi::Details::PropertyBaseproperty (const std::string &name, const std::vector< Gaudi::Details::PropertyBase * > &props) const
 get the property by name form the proposed list More...
 
void assertUniqueName (const std::string &name) const
 Throw an exception if the name is already present in the list of properties (see GAUDI-1023). More...
 

Variables

class GAUDI_API[[deprecated("will be removed in v29r0, consider using PropertyHolder instead")]] PropertyMgr
 
Properties m_properties
 Collection of all declared properties. More...
 
RemoteProperties m_remoteProperties
 Collection of all declared remote properties. More...
 
std::vector< std::unique_ptr< Gaudi::Details::PropertyBase > > m_todelete
 Properties to be deleted. More...
 
IInterfacem_pOuter
 Interface hub reference (ApplicationMgr) More...
 

Typedef Documentation

Definition at line 133 of file PropertyMgr.h.

Definition at line 135 of file PropertyMgr.h.

Definition at line 134 of file PropertyMgr.h.

Function Documentation

void assertUniqueName ( const std::string name) const
private

Throw an exception if the name is already present in the list of properties (see GAUDI-1023).

template<class TYPE , typename = std::enable_if_t<!std::is_base_of<GaudiHandleBase, TYPE>::value && !std::is_base_of<GaudiHandleArrayBase, TYPE>::value && !std::is_base_of<DataObjectHandleBase, TYPE>::value>>
Gaudi::Details::PropertyBase* declareProperty ( const std::string name,
TYPE &  value,
const std::string doc = "none" 
)

Declare a property (templated)

template<class TYPE >
Gaudi::Details::PropertyBase* declareProperty ( const std::string name,
Gaudi::Property< TYPE > &  prop,
const std::string doc = "none" 
)

Declare a property (specialization)

template<class TYPE >
Gaudi::Details::PropertyBase* declareProperty ( const std::string name,
Gaudi::Property< TYPE & > &  prop,
const std::string doc = "none" 
)

Declare a property (specialization)

Gaudi::Details::PropertyBase* declareProperty ( const std::string name,
GaudiHandleBase ref,
const std::string doc = "none" 
)

Declare a property (specialization)

Gaudi::Details::PropertyBase* declareProperty ( const std::string name,
GaudiHandleArrayBase ref,
const std::string doc = "none" 
)

Declare a property (specialization)

Gaudi::Details::PropertyBase* declareProperty ( const std::string name,
DataObjectHandleBase ref,
const std::string doc = "none" 
)

Declare a property (specialization)

Gaudi::Details::PropertyBase* declareRemoteProperty ( const std::string name,
IProperty rsvc,
const std::string rname = "" 
)

Declare a remote property.

const std::vector<Gaudi::Details::PropertyBase*>& getProperties ( ) const
override

get all properties

See also
IProperty
StatusCode getProperty ( Gaudi::Details::PropertyBase p) const
override

get the property

See also
IProperty
const Gaudi::Details::PropertyBase& getProperty ( const std::string name) const
override

get the property by name

See also
IProperty
StatusCode getProperty ( const std::string n,
std::string v 
) const
override

convert the property to the string

See also
IProperty
bool hasProperty ( const std::string name) const
override

Return true if we have a property with the given name.

See also
IProperty
PropertyMgr& operator= ( const PropertyMgr )
delete
Gaudi::Details::PropertyBase* property ( const std::string name) const
protected
Gaudi::Details::PropertyBase* property ( const std::string name,
const std::vector< Gaudi::Details::PropertyBase * > &  props 
) const
private

get the property by name form the proposed list

PropertyMgr ( const PropertyMgr )
delete
StatusCode queryInterface ( const InterfaceID iid,
void **  pinterface 
)
override
StatusCode setProperty ( const Gaudi::Details::PropertyBase p)
override

set the property form another property

See also
IProperty
StatusCode setProperty ( const std::string s)
override

set the property from the property formatted string

See also
IProperty
StatusCode setProperty ( const std::string n,
const std::string v 
)
override

set the property from name and the value

See also
IProperty

Variable Documentation

IInterface* m_pOuter
private

Interface hub reference (ApplicationMgr)

Definition at line 144 of file PropertyMgr.h.

Properties m_properties
private

Collection of all declared properties.

Definition at line 138 of file PropertyMgr.h.

RemoteProperties m_remoteProperties
private

Collection of all declared remote properties.

Definition at line 140 of file PropertyMgr.h.

Properties to be deleted.

Definition at line 142 of file PropertyMgr.h.

PropertyMgr::PropertyMgr

Definition at line 33 of file PropertyMgr.h.