5 #ifndef GAUDIKERNEL_PROPERTYMGR_H
6 #define GAUDIKERNEL_PROPERTYMGR_H
53 (
const std::string& name ,
55 const std::string& doc =
"none" ) ;
59 (
const std::string& name ,
61 const std::string& doc =
"none") ;
65 (
const std::string& name ,
67 const std::string& doc =
"none") ;
72 (
const std::string& name,
74 const std::string& doc =
"none" ) ;
78 (
const std::string& name,
80 const std::string& doc =
"none" ) ;
84 (
const std::string& name,
86 const std::string& doc =
"none" ) ;
90 (
const std::string& name,
92 const std::string& doc =
"none" ) ;
95 (
const std::string& name ,
97 const std::string& rname =
"" ) ;
134 const std::vector<Property*>& getProperties( )
const;
142 Property* property (
const std::string& name )
const ;
147 (
const std::string& name ,
148 const std::vector<Property*>& props )
const ;
154 typedef std::pair<std::string,
177 (
const std::string& name ,
179 const std::string& doc )
184 m_properties .push_back( p ) ;
185 m_todelete .push_back( p ) ;
192 template <
class TYPE>
195 (
const std::string& name ,
197 const std::string& doc )
201 p -> setName ( name ) ;
202 p -> setDocumentation ( doc ) ;
203 m_properties.push_back ( p ) ;
210 template <
class TYPE>
213 (
const std::string& name ,
215 const std::string& doc )
219 p -> setName ( name ) ;
220 p -> setDocumentation ( doc ) ;
221 m_properties.push_back ( p ) ;
231 (
const std::string& name,
233 const std::string& doc )
237 p -> setDocumentation ( doc ) ;
238 m_properties . push_back ( p ) ;
239 m_todelete . push_back ( p ) ;
247 (
const std::string& name,
249 const std::string& doc )
253 p -> setDocumentation ( doc ) ;
254 m_properties . push_back ( p ) ;
255 m_todelete . push_back ( p ) ;
263 (
const std::string& name,
265 const std::string& doc )
269 p -> setDocumentation ( doc ) ;
270 m_properties . push_back ( p ) ;
271 m_todelete . push_back ( p ) ;
279 (
const std::string& name,
281 const std::string& doc )
285 p -> setDocumentation ( doc ) ;
286 m_properties . push_back ( p ) ;
287 m_todelete . push_back ( p ) ;
295 #endif // GAUDIKERNEL_PROPERTYMGR_H
Handle to be used in lieu of naked pointers to services.
StatusCode 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
IInterface * m_pOuter
Interface hub reference (ApplicationMgr)
SimplePropertyRef templated class.
Properties m_todelete
Properties to be deleted.
GAUDI_API Property * getProperty(const IProperty *p, const std::string &name)
simple function which gets the property with given name from the component
Property manager helper class.
std::vector< bool > m_isOwned
Flag to decide to delete or not a propertyRef.
SimpleProperty concrete class which implements the full Property interface.
Gaudi::InterfaceId< IInterface, 0, 0 > iid
Interface ID.
Base class used to implement the interfaces.
Properties m_properties
Collection of all declared properties.
RemoteProperties m_remoteProperties
Collection of all declared remote properties.
Property * declareProperty(const std::string &name, TYPE &value, const std::string &doc="none")
Declare a property (templated)
This class is used for returning status codes from appropriate routines.
Definition of the basic interface.
std::pair< std::string, std::pair< IProperty *, std::string > > RemProperty
Array of Handles to be used in lieu of vector of naked pointers to tools.
void setDocumentation(const std::string &documentation)
set the documentation string
Property base class allowing Property* collections to be "homogeneous".
std::vector< RemProperty > RemoteProperties
The IProperty is the basic interface for all components which have properties that can be set or get...
std::vector< Property * > Properties