ZFFramework
 
Loading...
Searching...
No Matches
ZFCoreStaticRegister.h
Go to the documentation of this file.
1
5#ifndef _ZFI_ZFCoreStaticRegister_h_
6#define _ZFI_ZFCoreStaticRegister_h_
7
8#include "ZFCoreTypeDef.h"
9
10// #define _ZFP_ZFCoreStaticRegister_DEBUG 1
11
12#if _ZFP_ZFCoreStaticRegister_DEBUG
14 #define _ZFP_ZFCoreStaticRegister_invokeTimeLogger(fmt, ...) \
15 zfimplInvokeTimeLogger("[ZFSR] " fmt \
16 , ##__VA_ARGS__ \
17 )
18#else
19 #define _ZFP_ZFCoreStaticRegister_invokeTimeLogger(fmt, ...)
20#endif
21
23
24// ============================================================
55#define ZF_STATIC_REGISTER_INIT(Name) \
56 \
57 zfclassNotPOD _ZFP_SR_##Name { \
58 protected: \
59 typedef _ZFP_SR_##Name zfself; \
60 public: \
61 _ZFP_SR_##Name(void)
62
63#define ZF_STATIC_REGISTER_DESTROY(Name) \
64 ~_ZFP_SR_##Name(void)
65
66#define ZF_STATIC_REGISTER_END(Name) \
67 }; \
68 static _ZFP_SR_##Name _ZFP_SRI_##Name; \
69
70
71#if _ZFP_ZFCoreStaticRegister_DEBUG
72 #undef ZF_STATIC_REGISTER_INIT
73 #undef ZF_STATIC_REGISTER_DESTROY
74 #undef ZF_STATIC_REGISTER_END
75
76 #define ZF_STATIC_REGISTER_INIT(Name) \
77 \
78 zfclassNotPOD _ZFP_SR_##Name { \
79 protected: \
80 typedef _ZFP_SR_##Name zfself; \
81 public: \
82 _ZFP_SR_##Name(void) { \
83 _ZFP_ZFCoreStaticRegister_invokeTimeLogger("reg: %s", #Name); \
84 _ZFP_SR_Reg(); \
85 } \
86 void _ZFP_SR_Reg(void)
87 #define ZF_STATIC_REGISTER_DESTROY(Name) \
88 ~_ZFP_SR_##Name(void) { \
89 _ZFP_ZFCoreStaticRegister_invokeTimeLogger("unreg: %s", #Name); \
90 _ZFP_SR_Unreg(); \
91 } \
92 void _ZFP_SR_Unreg(void)
93 #define ZF_STATIC_REGISTER_END(Name) \
94 }; \
95 static _ZFP_SR_##Name _ZFP_SRI_##Name; \
96
97#endif
98
100#endif // #ifndef _ZFI_ZFCoreStaticRegister_h_
101
types for ZFFramework
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
minimal log util for internal debug use only