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// ============================================================
47#define ZFCoreAssert(exp) ZFCoreAssertWithMessage(exp, "assert failed for \"%s\"", #exp)
48
50#define ZFCoreAssertTrim(exp) ZFCoreAssertWithMessageTrim(exp, "assert failed for \"%s\"", #exp)
51
53#define ZFCoreAssertDetail(exp, callerInfo) ZFCoreAssertWithMessageDetail(exp, callerInfo, "assert failed for \"%s\"", #exp)
54
55// ============================================================
59#define ZFCoreCriticalMessage(fmt, ...) _ZFP_ZFCoreCritical(ZFCallerInfoCreate(), zfstr(fmt, ##__VA_ARGS__))
60
62#define ZFCoreCriticalMessageTrim(fmt, ...) _ZFP_ZFCoreCritical(ZFCallerInfoEmpty(), zfstr(fmt, ##__VA_ARGS__))
63
65#define ZFCoreCriticalMessageDetail(callerInfo, fmt, ...) _ZFP_ZFCoreCritical(callerInfo, zfstr(fmt, ##__VA_ARGS__))
66
67// ============================================================
71#define ZFCoreAssertWithMessage(exp, fmt, ...) \
72 do { \
73 if(!(exp)) { \
74 ZFCoreCriticalMessage(fmt, ##__VA_ARGS__); \
75 } \
76 } while(zffalse)
77
81#define ZFCoreAssertWithMessageTrim(exp, fmt, ...) \
82 do { \
83 if(!(exp)) { \
84 ZFCoreCriticalMessageTrim(fmt, ##__VA_ARGS__); \
85 } \
86 } while(zffalse)
87
91#define ZFCoreAssertWithMessageDetail(exp, callerInfo, fmt, ...) \
92 do { \
93 if(!(exp)) { \
94 ZFCoreCriticalMessageDetail(callerInfo, fmt, ##__VA_ARGS__); \
95 } \
96 } while(zffalse)
97
98// ============================================================
102#define ZFCoreCriticalIndexOutOfRange(index, range) \
103 ZFCoreCriticalIndexOutOfRangeDetail(ZFCallerInfoCreate(), index, range)
104
107#define ZFCoreCriticalIndexOutOfRangeDetail(callerInfo, index, range) \
108 ZFCoreCriticalMessageDetail(callerInfo, \
109 "index %s out of range [0, %s)", \
110 (zfindex)(index), \
111 (zfindex)(range))
112
116#define ZFCoreAssertIndexRange(index, range) \
117 ZFCoreAssertIndexRangeDetail(ZFCallerInfoCreate(), index, range)
118
121inline void ZFCoreAssertIndexRangeDetail(ZF_IN const ZFCallerInfo &callerInfo, ZF_IN zfindex index, ZF_IN zfindex range) {
122 if(index >= range) {
123 ZFCoreCriticalIndexOutOfRangeDetail(callerInfo, index, range);
124 }
125}
126
127// ============================================================
131#define ZFCoreCriticalShouldNotGoHere() \
132 ZFCoreCriticalShouldNotGoHereDetail(ZFCallerInfoCreate())
133
136#define ZFCoreCriticalShouldNotGoHereDetail(callerInfo) \
137 ZFCoreCriticalMessageDetail(callerInfo, "should not go here")
138
139// ============================================================
143#define ZFCoreCriticalNotSupported() \
144 ZFCoreCriticalNotSupportedDetail(ZFCallerInfoCreate())
145
148#define ZFCoreCriticalNotSupportedDetail(callerInfo) \
149 ZFCoreCriticalMessageDetail(callerInfo, "not supported")
150
152
153#endif // #ifndef _ZFI_ZFCoreLog_CommonLog_h_
154
#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:107
void ZFCoreAssertIndexRangeDetail(const ZFCallerInfo &callerInfo, zfindex index, zfindex range)
see ZFCoreAssertIndexRange
Definition ZFCoreLog_CommonLog.h:121
_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:180
_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