1 #ifndef GAUDIKERNEL_PROPERTYMGR_H
2 #define GAUDIKERNEL_PROPERTYMGR_H
15 #include "GaudiKernel/Property.h"
16 #include "GaudiKernel/IProperty.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;
158 typedef std::vector<Property*> Properties ;
159 typedef std::pair<std::string,
160 std::pair<IProperty*, std::string> > RemProperty;
161 typedef std::vector<RemProperty> RemoteProperties ;
166 Properties m_properties ;
168 RemoteProperties m_remoteProperties;
170 Properties m_todelete ;
172 std::vector<bool> m_isOwned ;
182 (
const std::string& name ,
184 const std::string& doc )
198 template <
class TYPE>
201 (
const std::string& name ,
203 const std::string& doc )
208 p -> setName ( name ) ;
209 p -> setDocumentation ( doc ) ;
217 template <
class TYPE>
220 (
const std::string& name ,
222 const std::string& doc )
227 p -> setName ( name ) ;
228 p -> setDocumentation ( doc ) ;
239 (
const std::string& name,
241 const std::string& doc )
246 p -> setDocumentation ( doc ) ;
256 (
const std::string& name,
258 const std::string& doc )
263 p -> setDocumentation ( doc ) ;
273 (
const std::string& name,
275 const std::string& doc )
280 p -> setDocumentation ( doc ) ;
290 (
const std::string& name,
292 const std::string& doc )
297 p -> setDocumentation ( doc ) ;
307 #endif // GAUDIKERNEL_PROPERTYMGR_H
Handle to be used in lieu of naked pointers to services.
SimplePropertyRef templated class.
Properties m_todelete
Properties to be deleted.
GAUDI_API bool hasProperty(const IProperty *p, const std::string &name)
simple function which check the existence of the property with the given name.
const char *PyHelper() getProperty(IInterface *p, char *name)
Property manager helper class.
SimpleProperty concrete class which implements the full Property interface.
Base class used to implement the interfaces.
Properties m_properties
Collection of all declared 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.
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".
The IProperty is the basic interface for all components which have properties that can be set or get...
void assertUniqueName(const std::string &name) const
Throw an exception if the name is already present in the list of properties (see GAUDI-1023).