00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00024 #define _rMessageDef(ID, COMPONENT) \
00025 static rlog::PublishLoc ID RLOG_SECTION = {& ID ## _enabled, \
00026 &rlog::RLog_Register, 0, STR(COMPONENT), __FILE__, \
00027 __FUNCTION__, __LINE__, 0};
00028
00033 #if HAVE_PRINTF_FP || !HAVE_PRINTF_ATTR
00034 # define _rMessageCall(ID, COMPONENT, CHANNEL, ...) \
00035 static bool ID ## _enabled = true; \
00036 if(unlikely(ID ## _enabled)) \
00037 { \
00038 _rMessageDef(ID, COMPONENT) \
00039 (*ID.publish)( &ID, CHANNEL, ##__VA_ARGS__ ); \
00040 }
00041 #else // no PRINTF attributes..
00042 # define _rMessageCall(ID, COMPONENT, CHANNEL, ...) \
00043 static bool ID ## _enabled = true; \
00044 if(unlikely(ID ## _enabled)) \
00045 { \
00046 _rMessageDef(ID, COMPONENT) \
00047 (*ID.publish)( &ID, CHANNEL, ##__VA_ARGS__ ); \
00048 rlog::__checkArgs( 0, ##__VA_ARGS__ ); \
00049 }
00050 #endif
00051
00061 #define _rMessage(ID, CHANNEL, ... ) \
00062 do { _rMessageCall(ID, RLOG_COMPONENT, CHANNEL, ##__VA_ARGS__ ) } while(0)
00063
00088 #define rDebug(...) \
00089 _rMessage( LOGID, rlog::_RLDebugChannel, ##__VA_ARGS__ )
00090
00104 #define rInfo(...) \
00105 _rMessage( LOGID, rlog::_RLInfoChannel, ##__VA_ARGS__ )
00106
00124 #define rWarning(...) \
00125 _rMessage( LOGID, rlog::_RLWarningChannel, ##__VA_ARGS__ )
00126
00142 #define rError(...) \
00143 _rMessage( LOGID, rlog::_RLErrorChannel, ##__VA_ARGS__ )
00144
00162 #define rLog(channel, ...) \
00163 _rMessage( LOGID, channel, ##__VA_ARGS__ )
00164
00165