ATLAS Offline Software
Loading...
Searching...
No Matches
AuxStoreAccessorMacros.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
5*/
6
7// $Id: AuxStoreAccessorMacros.h 633587 2014-12-04 09:09:41Z ssnyder $
8#ifndef XAODCORE_AUXSTOREACCESSORMACROS_H
9#define XAODCORE_AUXSTOREACCESSORMACROS_H
10
36#define AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(CL, TYPE, NAME, \
37 SETTER) \
38 TYPE CL::NAME() const { \
39 static const SG::Accessor< TYPE > acc( #NAME ); \
40 return acc( *this ); \
41 } \
42 void CL::SETTER( TYPE value ) { \
43 static const SG::Accessor< TYPE > acc( #NAME ); \
44 acc( *this ) = value; \
45 return; \
46 }
47
59#define AUXSTORE_PRIMITIVE_GETTER(CL, TYPE, NAME ) \
60 TYPE CL::NAME() const { \
61 static const SG::Accessor< TYPE > acc( #NAME ); \
62 return acc( *this ); \
63 }
64
88#define AUXSTORE_OBJECT_SETTER_AND_GETTER(CL, TYPE, NAME, SETTER) \
89 AUXSTORE_OBJECT_SETTER_AND_GETTER_VARNAME(CL, TYPE, NAME, SETTER, NAME)
90
91
117#define AUXSTORE_OBJECT_SETTER_AND_GETTER_VARNAME(CL, TYPE, NAME, SETTER, VARNAME) \
118 AUXSTORE_OBJECT_GETTER_VARNAME(CL, TYPE, NAME, VARNAME) \
119 void CL::SETTER( typename SG::Accessor< TYPE >::rhs_const_reference_type value ) { \
120 static const SG::Accessor< TYPE > acc( #VARNAME ); \
121 acc( *this ) = value; \
122 return; \
123 }
124
125
138# define AUXSTORE_OBJECT_MOVE(CL, TYPE, NAME, SETTER) \
139 void CL::SETTER( typename SG::AuxDataTraits<TYPE>::element_type&& value ) { \
140 static const SG::Accessor< TYPE > acc( #NAME ); \
141 acc( *this ) = std::move(value); \
142 return; \
143 }
144
145
165#define AUXSTORE_OBJECT_GETTER(CL, TYPE, NAME ) \
166 AUXSTORE_OBJECT_GETTER_VARNAME(CL, TYPE, NAME, NAME)
167
189#define AUXSTORE_OBJECT_GETTER_VARNAME(CL, TYPE, NAME, VARNAME) \
190 typename SG::ConstAccessor< TYPE >::const_reference_type CL::NAME() const { \
191 static const SG::ConstAccessor< TYPE > acc( #VARNAME ); \
192 return acc( *this ); \
193 } \
194
195
209#define AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(CL, PERSTYPE, TRANSTYPE, \
210 NAME) \
211 TRANSTYPE CL::NAME() const { \
212 static const SG::Accessor< PERSTYPE > acc( #NAME ); \
213 return static_cast< TRANSTYPE >( acc( *this ) ); \
214 }
215
230#define AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(CL, PERSTYPE, TRANSTYPE, \
231 NAME, SETTER) \
232 void CL::SETTER( TRANSTYPE value ) { \
233 static const SG::Accessor< PERSTYPE > acc( #NAME ); \
234 acc( *this ) = static_cast< PERSTYPE >( value ); \
235 return; \
236 }
237
238#endif // XAODCORE_AUXSTOREACCESSORMACROS_H