modernization of Property
This is a major rewrite of the system of Property
classes. Started as the implementation of GAUDI-1214, it continued as a review of IProperty
and PropertyMgr
, to end up in a complete rewrite (and optimization) of PropertyWithValue
.
- Fixes GAUDI-1214
- added missing
declareProperty
signature - added
PropertyHolder
(an updatedPropertyMgr
) - adapted all properties in Gaudi
- added missing
- improved use of
PropertyHolder
- use inheritance instead of composition
- removed ~200 (duplicated) lines of code in GaudiKernel
- optimization of Property (fixes GAUDI-1229)
- use templates and automatic code generation to handle efficiently both value and reference properties
- avoid creation of values on the heap (see GAUDI-1229)
- removed the owned boolean flag
- improved usability of properties (e.g. begin/end wrappers for C++11 loops, increment/decrement operators...)
- deprecated use of C arrays as properties
- merged features of
PropertyWithVerifier
,SimpleProperty
andSimplePropertyRef
intoPropertyWithValue
- deduplication of name and doc strings via
boost::string_ref
and a static storage (see GAUDI-1229)
- use templates and automatic code generation to handle efficiently both value and reference properties
- Fixes GAUDI-1205
- added deprecation warnings in service accessors of
Algorithm
(@graven) - renamed
Property
base class toGaudi::Details::PropertyBase
andPropertyWithValue
toGaudi::Property
- added backward compatibility type aliases (but not compatible with forward declarations of
class Property
, which should be replaced by#include "GaudiKernel/PropertyFwd.h"
)
- added backward compatibility type aliases (but not compatible with forward declarations of
- added macro
GAUDI_PROPERTY_v2
to allow easy implementation of backward compatible changes in derived projects (e.g. when user code relied onDoubleProperty
having a verifier) - Fixes GAUDI-1268
The changes are as backward compatible as much as possible (except if you explicitly inherit from SimpleProperty
, or you forward declared class Property
, which now are typedefs), but must be validated in the experiment frameworks.
Merge request reports
Activity
Validation started with lhcb-gaudi-merge#63
Added 1 commit:
- cd660d41 - restored old PropertyMgr and renamed new implementation
Validation started with lhcb-gaudi-merge#66
Added 5 commits:
Toggle commit listValidation started with lhcb-gaudi-merge#67
Validation started with lhcb-gaudi-merge#67
Added 1 commit:
- 8dc2a3a1 - added const declareProperty for backward compatibility
Validation started with lhcb-gaudi-merge#67
Added 1 commit:
- 221683a4 - fixed use of Doxygen command \deprecated
Added 6 commits:
- 263c01a0 - record source in Property self-declaration constructor
- 9f6bf37d - applied clang-format to [I]Auditor.{h,cpp}
- fbc3520c - migrated Auditor to new property declaration
- eeeb1951 - minor clean up in Algorithm
- 15ef8961 - migrated Service to new property declaration
- a56fc2b1 - updated test references after change in Service
Toggle commit listAdded 1 commit:
- 475cc0eb - fixed compilation on slc6-gcc49 (lcg 84)
Added 6 commits:
- 4df4adec - migrated AlgTool to new property declaration
- 299d7cf7 - updated test references after change in AlgTool
- f0f846cb - added a few useful operators to PropertyWithValue
- 3718314d - migrated DataSvc to new property declaration
- 9639b5e7 - more improvements to PropertyWithValue
- 14137e69 - migrated GaudiCoreSvc to new property declaration
Toggle commit listAdded 1 commit:
- 5e3b53ca - fixed operator+(T1,Property<T2>)
Added 1 commit:
- a5be4303 - updated test references after changes in GaudiCoreSvc
Added 5 commits:
Toggle commit list