ZFFramework
Loading...
Searching...
No Matches
ZFCoreLog_CommonLog.h
Go to the documentation of this file.
1
7
8#ifndef _ZFI_ZFCoreLog_CommonLog_h_
9#define _ZFI_ZFCoreLog_CommonLog_h_
10
11#include "ZFCoreLog.h"
13
14extern ZFLIB_ZFCore void _ZFP_ZFCoreLogCriticalMessage(
15 ZF_IN const ZFCallerInfo &callerInfo
16 , ZF_IN const zfchar *text
17 );
18extern ZFLIB_ZFCore void _ZFP_ZFCoreCritical(
19 ZF_IN const ZFCallerInfo &callerInfo
20 , ZF_IN const zfchar *text
21 );
22
23// ============================================================
29#define ZFCoreLogCriticalMessage(fmt, ...) _ZFP_ZFCoreLogCriticalMessage(ZFCallerInfoCreate(), zfstr(fmt, ##__VA_ARGS__))
30
32#define ZFCoreLogCriticalMessageTrim(fmt, ...) _ZFP_ZFCoreLogCriticalMessage(ZFCallerInfoEmpty(), zfstr(fmt, ##__VA_ARGS__))
33
35#define ZFCoreLogCriticalMessageDetail(callerInfo, fmt, ...) _ZFP_ZFCoreLogCriticalMessage(callerInfo, zfstr(fmt, ##__VA_ARGS__))
36
37// ============================================================
46#define ZFCoreAssert(exp) ZFCoreAssertWithMessage(exp, "assert failed for \"%s\"", #exp)
47
49#define ZFCoreAssertTrim(exp) ZFCoreAssertWithMessageTrim(exp, "assert failed for \"%s\"", #exp)
50
52#define ZFCoreAssertDetail(exp, callerInfo) ZFCoreAssertWithMessageDetail(exp, callerInfo, "assert failed for \"%s\"", #exp)
53
54// ============================================================
58#define ZFCoreCriticalMessage(fmt, ...) _ZFP_ZFCoreCritical(ZFCallerInfoCreate(), zfstr(fmt, ##__VA_ARGS__))
59
61#define ZFCoreCriticalMessageTrim(fmt, ...) _ZFP_ZFCoreCritical(ZFCallerInfoEmpty(), zfstr(fmt, ##__VA_ARGS__))
62
64#define ZFCoreCriticalMessageDetail(callerInfo, fmt, ...) _ZFP_ZFCoreCritical(callerInfo, zfstr(fmt, ##__VA_ARGS__))
65
66// ============================================================
70#define ZFCoreAssertWithMessage(exp, fmt, ...) \
71 do { \
72 if(!(exp)) { \
73 ZFCoreCriticalMessage(fmt, ##__VA_ARGS__); \
74 } \
75 } while(zffalse)
76
80#define ZFCoreAssertWithMessageTrim(exp, fmt, ...) \
81 do { \
82 if(!(exp)) { \
83 ZFCoreCriticalMessageTrim(fmt, ##__VA_ARGS__); \
84 } \
85 } while(zffalse)
86
90#define ZFCoreAssertWithMessageDetail(exp, callerInfo, fmt, ...) \
91 do { \
92 if(!(exp)) { \
93 ZFCoreCriticalMessageDetail(callerInfo, fmt, ##__VA_ARGS__); \
94 } \
95 } while(zffalse)
96
97// ============================================================
101#define ZFCoreCriticalIndexOutOfRange(index, range) \
102 ZFCoreCriticalIndexOutOfRangeDetail(ZFCallerInfoCreate(), index, range)
103
106#define ZFCoreCriticalIndexOutOfRangeDetail(callerInfo, index, range) \
107 ZFCoreCriticalMessageDetail(callerInfo, \
108 "index %s out of range [0, %s)", \
109 (zfindex)(index), \
110 (zfindex)(range))
111
115#define ZFCoreAssertIndexRange(index, range) \
116 ZFCoreAssertIndexRangeDetail(ZFCallerInfoCreate(), index, range)
117
120inline void ZFCoreAssertIndexRangeDetail(ZF_IN const ZFCallerInfo &callerInfo, ZF_IN zfindex index, ZF_IN zfindex range) {
121 if(index >= range) {
122 ZFCoreCriticalIndexOutOfRangeDetail(callerInfo, index, range);
123 }
124}
125
126// ============================================================
130#define ZFCoreCriticalShouldNotGoHere() \
131 ZFCoreCriticalShouldNotGoHereDetail(ZFCallerInfoCreate())
132
135#define ZFCoreCriticalShouldNotGoHereDetail(callerInfo) \
136 ZFCoreCriticalMessageDetail(callerInfo, "should not go here")
137
138// ============================================================
142#define ZFCoreCriticalNotSupported() \
143 ZFCoreCriticalNotSupportedDetail(ZFCallerInfoCreate())
144
147#define ZFCoreCriticalNotSupportedDetail(callerInfo) \
148 ZFCoreCriticalMessageDetail(callerInfo, "not supported")
149
151
152#endif // #ifndef _ZFI_ZFCoreLog_CommonLog_h_
153
#define ZFLIB_ZFCore
used to export symbols
Definition ZFCoreEnvDef.h:30
internal log utility
#define ZFCoreCriticalIndexOutOfRangeDetail(callerInfo, index, range)
see ZFCoreCriticalIndexOutOfRange
Definition ZFCoreLog_CommonLog.h:106
void ZFCoreAssertIndexRangeDetail(const ZFCallerInfo &callerInfo, zfindex index, zfindex range)
see ZFCoreAssertIndexRange
Definition ZFCoreLog_CommonLog.h:120
_ZFT_t_zfchar zfchar
char wrapper
Definition ZFCoreTypeDef_CharType.h:17
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:196
_ZFT_t_zfindex zfindex
similar to size_t, used for index and size only
Definition ZFCoreTypeDef_CoreType.h:154
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
util class to hold caller info
Definition ZFCallerInfo.h:63