|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef ASGMESSAGING_CHECK_H
6 #define ASGMESSAGING_CHECK_H
11 #include "boost/preprocessor/facilities/overload.hpp"
41 #ifndef __CPPCHECK__ // The varadic macros here confuse cppcheck.
43 #define ASG_CHECK(...) \
44 BOOST_PP_OVERLOAD(ASG_CHECK_, __VA_ARGS__)(__VA_ARGS__)
46 #define ASG_CHECK_1( EXP ) \
48 const StatusCode sc__(EXP); \
49 if( ATH_UNLIKELY ( ! sc__.isSuccess() ) ) { \
50 ATH_MSG_ERROR( "Failed to call \"" << #EXP << "\"" ); \
55 #define ASG_CHECK_2( EXP, RET ) \
57 const StatusCode sc__(EXP); \
58 if( ATH_UNLIKELY ( ! sc__.isSuccess() ) ) { \
59 ATH_MSG_ERROR( "Failed to call \"" << #EXP << "\"" ); \
64 #endif // __CPPCHECK__
76 #define ASG_CHECK_SA( SOURCE, EXP ) \
78 const StatusCode sc__(EXP); \
79 if( ATH_UNLIKELY ( ! sc__.isSuccess() ) ) { \
80 static MsgStream msg( SOURCE ); \
81 msg << MSGSTREAM_REPORT_PREFIX << MSG::ERROR \
82 << "Failed to call \"" << #EXP << "\"" << endmsg; \
88 #ifdef XAOD_STANDALONE
89 # define ATH_CHECK ASG_CHECK
94 #endif // ASGMESSAGING_CHECK_H