|
ATLAS Offline Software
|
Go to the documentation of this file.
8 #ifndef XAODCORE_AUXSTOREACCESSORMACROS_H
9 #define XAODCORE_AUXSTOREACCESSORMACROS_H
36 #define AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(CL, TYPE, NAME, \
38 TYPE CL::NAME() const { \
39 static const Accessor< TYPE > acc( #NAME ); \
40 return acc( *this ); \
42 void CL::SETTER( TYPE value ) { \
43 static const Accessor< TYPE > acc( #NAME ); \
44 acc( *this ) = value; \
59 #define AUXSTORE_PRIMITIVE_GETTER(CL, TYPE, NAME ) \
60 TYPE CL::NAME() const { \
61 static const Accessor< TYPE > acc( #NAME ); \
62 return acc( *this ); \
77 #define AUXSTORE_OBJECT_SETTER_AND_GETTER(CL, TYPE, NAME, SETTER) \
78 const TYPE& CL::NAME() const { \
79 static const Accessor< TYPE > acc( #NAME ); \
80 return acc( *this ); \
82 void CL::SETTER( const TYPE& value ) { \
83 static const Accessor< TYPE > acc( #NAME ); \
84 acc( *this ) = value; \
101 # define AUXSTORE_OBJECT_MOVE(CL, TYPE, NAME, SETTER) \
102 void CL::SETTER( typename SG::AuxDataTraits<TYPE>::element_type&& value ) { \
103 static const Accessor< TYPE > acc( #NAME ); \
104 acc( *this ) = std::move(value); \
119 #define AUXSTORE_OBJECT_GETTER(CL, TYPE, NAME ) \
120 const TYPE& CL::NAME() const { \
121 static const Accessor< TYPE > acc( #NAME ); \
122 return acc( *this ); \
139 #define AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(CL, PERSTYPE, TRANSTYPE, \
141 TRANSTYPE CL::NAME() const { \
142 static const Accessor< PERSTYPE > acc( #NAME ); \
143 return static_cast< TRANSTYPE >( acc( *this ) ); \
160 #define AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(CL, PERSTYPE, TRANSTYPE, \
162 void CL::SETTER( TRANSTYPE value ) { \
163 static const Accessor< PERSTYPE > acc( #NAME ); \
164 acc( *this ) = static_cast< PERSTYPE >( value ); \
168 #endif // XAODCORE_AUXSTOREACCESSORMACROS_H