1 #ifndef GAUDIKERNEL_PROPERTYMGR_H
2 #define GAUDIKERNEL_PROPERTYMGR_H
49 (
const std::string& name ,
51 const std::string& doc =
"none" ) ;
55 (
const std::string& name ,
57 const std::string& doc =
"none") ;
61 (
const std::string& name ,
63 const std::string& doc =
"none") ;
68 (
const std::string& name,
70 const std::string& doc =
"none" ) ;
74 (
const std::string& name,
76 const std::string& doc =
"none" ) ;
80 (
const std::string& name,
82 const std::string& doc =
"none" ) ;
86 (
const std::string& name,
88 const std::string& doc =
"none" ) ;
91 (
const std::string& name ,
93 const std::string& rname =
"" ) ;
130 const std::vector<Property*>& getProperties( )
const;
143 Property* property (
const std::string& name )
const ;
148 (
const std::string& name ,
149 const std::vector<Property*>& props )
const ;
153 void assertUniqueName(
const std::string& name)
const;
159 typedef std::pair<std::string,
182 (
const std::string& name ,
184 const std::string& doc )
186 assertUniqueName(name);
190 m_properties .push_back( p ) ;
191 m_todelete .push_back( p ) ;
198 template <
class TYPE>
201 (
const std::string& name ,
203 const std::string& doc )
205 assertUniqueName(name);
208 p -> setName ( name ) ;
209 p -> setDocumentation ( doc ) ;
210 m_properties.push_back ( p ) ;
217 template <
class TYPE>
220 (
const std::string& name ,
222 const std::string& doc )
224 assertUniqueName(name);
227 p -> setName ( name ) ;
228 p -> setDocumentation ( doc ) ;
229 m_properties.push_back ( p ) ;
239 (
const std::string& name,
241 const std::string& doc )
243 assertUniqueName(name);
246 p -> setDocumentation ( doc ) ;
247 m_properties . push_back ( p ) ;
248 m_todelete . push_back ( p ) ;
256 (
const std::string& name,
258 const std::string& doc )
260 assertUniqueName(name);
263 p -> setDocumentation ( doc ) ;
264 m_properties . push_back ( p ) ;
265 m_todelete . push_back ( p ) ;
273 (
const std::string& name,
275 const std::string& doc )
277 assertUniqueName(name);
280 p -> setDocumentation ( doc ) ;
281 m_properties . push_back ( p ) ;
282 m_todelete . push_back ( p ) ;
290 (
const std::string& name,
292 const std::string& doc )
294 assertUniqueName(name);
297 p -> setDocumentation ( doc ) ;
298 m_properties . push_back ( p ) ;
299 m_todelete . push_back ( p ) ;
307 #endif // GAUDIKERNEL_PROPERTYMGR_H
Handle to be used in lieu of naked pointers to services.
IInterface * m_pOuter
Interface hub reference (ApplicationMgr)
SimplePropertyRef templated class.
GAUDI_API bool hasProperty(const IProperty *p, const std::string &name)
simple function which check the existence of the property with the given name.
Properties m_todelete
Properties to be deleted.
const char *PyHelper() getProperty(IInterface *p, char *name)
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
bool PyHelper() setProperty(IInterface *p, char *name, char *value)
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