Skip to content

[WIP] Extent Property hierarchy with class for indirect access to property value

Christian Gumpert requested to merge cgumpert/AtlasGaudi:atlas/v27r1 into atlas/v27r1

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.

Merge request reports