[WIP] Extent Property hierarchy with class for indirect access to property value
The current configuration mechanism of Gaudi relies (among others) on specific implementations of the Property
interface. At the moment, properties for simple types (i.e. no ToolHandles
etc) are only allowed if one has direct access to the memory location of the variable holding the property value (see class PropertyWithValue
and derived classes).
This restriction hinders the initialization of properties whose memory location is not accessible (e.g. private member variables of classes from external libraries). This problem can be resolved by replacing the requirement of direct memory access of the property value with the knowledge of a get- and a set-method. In this way, the details on how the property is stored/retrieved (from memory, calculated ...) is hidden behind this get/set interface.
A new class PropertyAccessor : public Property
is introduced which implements the above mentioned concept. Overloaded versions of the declareProperty
method have been added to the Algorithm
and PropertyMgr
class to make use of this new functionality.
The example algorithm GaudiExamples/src/Properties/PropertyAlg.h
has been modified to illustrate a possible use case.