theKernel 10.0
Loading...
Searching...
No Matches
LibMkKernel_cc.cc
Go to the documentation of this file.
1
9/* LABEL-NO */
10
11#include <typeinfo>
12#include <stdexcept>
13
14#include "private_cc.hh"
15#define META_CONTEXT_S hdl
16
17namespace ccmkkernel {
18
19/* No longer used, PROBLEM: The order in which the STATIC destructors are called is NOT predictable
20
21 MkStaticC MkKernel::mk_sta;
22
23 MkStaticC::MkStaticC() {
24 MkKernel::Setup();
25 }
26
27 MkStaticC::~MkStaticC() {
28 MkKernel::Cleanup();
29 }
30*/
31
32 void MkKernel::mk_static_init_callback ( MK_RT_ARGS_ONLY ) {
33
34 // update the basic-types
35 // BEGIN-MkKernel-self - created by 'cc_MqC.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
36
37 MkObjectC_TT->selfCreate = MkObjectC::MkObjectC_selfCreate ;
38 MkObjectC_TT->selfDelete = MkObjectC::MkObjectC_selfDelete ;
39 MkObjectC_TT->selfUnlink = MkObjectC::MkObjectC_selfUnlink ;
40 MkBufferC_TT->selfCreate = MkBufferC::MkBufferC_selfCreate ;
41 MkBufferC_TT->selfDelete = MkBufferC::MkBufferC_selfDelete ;
42 MkBufferC_TT->selfUnlink = MkBufferC::MkBufferC_selfUnlink ;
43 MkBufferStreamC_TT->selfCreate = MkBufferStreamC::MkBufferStreamC_selfCreate ;
44 MkBufferStreamC_TT->selfDelete = MkBufferStreamC::MkBufferStreamC_selfDelete ;
45 MkBufferStreamC_TT->selfUnlink = MkBufferStreamC::MkBufferStreamC_selfUnlink ;
46 MkBufferListC_TT->selfCreate = MkBufferListC::MkBufferListC_selfCreate ;
47 MkBufferListC_TT->selfDelete = MkBufferListC::MkBufferListC_selfDelete ;
48 MkBufferListC_TT->selfUnlink = MkBufferListC::MkBufferListC_selfUnlink ;
49 MkLogFileC_TT->selfCreate = MkLogFileC::MkLogFileC_selfCreate ;
50 MkLogFileC_TT->selfDelete = MkLogFileC::MkLogFileC_selfDelete ;
51 MkLogFileC_TT->selfUnlink = MkLogFileC::MkLogFileC_selfUnlink ;
52 MkErrorC_TT->selfCreate = MkErrorC::MkErrorC_selfCreate ;
53 MkErrorC_TT->selfDelete = MkErrorC::MkErrorC_selfDelete ;
54 MkErrorC_TT->selfUnlink = MkErrorC::MkErrorC_selfUnlink ;
55 MkRuntimeC_TT->selfCreate = MkRuntimeC::MkRuntimeC_selfCreate ;
56 MkRuntimeC_TT->selfDelete = MkRuntimeC::MkRuntimeC_selfDelete ;
57 MkRuntimeC_TT->selfUnlink = MkRuntimeC::MkRuntimeC_selfUnlink ;
58
59 // END-MkKernel-self - created by 'cc_MqC.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
60
61 MkBuffer64C_TT->selfCreate = MkBufferC::MkBufferC_selfCreate ;
62 MkBuffer64C_TT->selfDelete = MkBufferC::MkBufferC_selfDelete ;
63 MkBuffer256C_TT->selfCreate = MkBufferC::MkBufferC_selfCreate ;
64 MkBuffer256C_TT->selfDelete = MkBufferC::MkBufferC_selfDelete ;
65 MkBuffer1024C_TT->selfCreate = MkBufferC::MkBufferC_selfCreate ;
66 MkBuffer1024C_TT->selfDelete = MkBufferC::MkBufferC_selfDelete ;
67
68 MkBufferStream16384C_TT->selfCreate = MkBufferStreamC::MkBufferStreamC_selfCreate ;
69 MkBufferStream16384C_TT->selfDelete = MkBufferStreamC::MkBufferStreamC_selfDelete ;
70 MkBufferStream256C_TT->selfCreate = MkBufferStreamC::MkBufferStreamC_selfCreate ;
71 MkBufferStream256C_TT->selfDelete = MkBufferStreamC::MkBufferStreamC_selfDelete ;
72 MkBufferStream64C_TT->selfCreate = MkBufferStreamC::MkBufferStreamC_selfCreate ;
73 MkBufferStream64C_TT->selfDelete = MkBufferStreamC::MkBufferStreamC_selfDelete ;
74 MkBufferStream1024C_TT->selfCreate = MkBufferStreamC::MkBufferStreamC_selfCreate ;
75 MkBufferStream1024C_TT->selfDelete = MkBufferStreamC::MkBufferStreamC_selfDelete ;
76
77 MkErrorIgnoreC_TT->selfCreate = MkObjectC::MkObjectC_selfCreate ;
78 MkErrorIgnoreC_TT->selfDelete = MkObjectC::MkObjectC_selfDelete ;
79 MkErrorPrintC_TT->selfCreate = MkObjectC::MkObjectC_selfCreate ;
80 MkErrorPrintC_TT->selfDelete = MkObjectC::MkObjectC_selfDelete ;
81 MkErrorPanicC_TT->selfCreate = MkObjectC::MkObjectC_selfCreate ;
82 MkErrorPanicC_TT->selfDelete = MkObjectC::MkObjectC_selfDelete ;
83 MkErrorDefaultC_TT->selfCreate = MkErrorC::MkErrorC_selfCreate ;
84 MkErrorDefaultC_TT->selfDelete = MkErrorC::MkErrorC_selfDelete ;
85 }
86
88
92
93 // doc-key: MkKernel,MkKernel-Setup,sm_
94
101 #define MkCleanupTmpl() CcMkCleanup()
102
105 MkSetup();
107
108 MkRuntimeCallbackAdd( MK_RT_CALL &sMkRuntimeCallback, mk_static_init_callback, "CcMkKernel" );
109 }
110 #define MkSetupTmpl() CcMkSetup()
111
113 // MkKernel_Setup_CC_API
114
115 // BEGIN-MkKernel - created by 'cc_MqC.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
116
120
121 // doc-key: MkKernel,MkKernel-Setup-libmkkernel,sm_
122
127 }
128
132 MkSetupTmpl();
133 }
134
136 // MkKernel_Setup_libmkkernel_CC_API
137
138 // END-MkKernel - created by 'cc_MqC.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
139
140 // BEGIN-MkKernel-null - created by 'cc_MqC.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
141
142 thread_local MkObjectC MkObjectC::MK_NULL_REF = {(MK_OBJ)0};
143 thread_local MkBufferC MkBufferC::MK_NULL_REF = {(MK_OBJ)0};
144 thread_local MkBufferStreamC MkBufferStreamC::MK_NULL_REF = {(MK_OBJ)0};
145 thread_local MkBufferListC MkBufferListC::MK_NULL_REF = {(MK_OBJ)0};
146 thread_local MkLogFileC MkLogFileC::MK_NULL_REF = {(MK_OBJ)0};
147 thread_local MkErrorC MkErrorC::MK_NULL_REF = {(MK_OBJ)0};
148 thread_local MkRuntimeC MkRuntimeC::MK_NULL_REF = {(MK_OBJ)0};
149
150 // END-MkKernel-null - created by 'cc_MqC.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
151
152} // END - namespace "ccmkkernel"
153
154#if defined(_MSC_VER)
155
156BOOL WINAPI DllMain(
157 HINSTANCE hModule,
158 DWORD ul_reason_for_call,
159 LPVOID lpReserved
160)
161{
162 switch (ul_reason_for_call)
163 {
164 case DLL_THREAD_ATTACH:
165 case DLL_THREAD_DETACH:
166 return FALSE;
167 case DLL_PROCESS_ATTACH:
169 break;
170 case DLL_PROCESS_DETACH:
172 break;
173 }
174 return TRUE;
175}
176#endif
object header … → C-API: libmkkernel::MkObjectS
#define MkBuffer1024C_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkBuffer256C_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkBuffer64C_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
static thread_local MkBufferC MK_NULL_REF
#define MkBufferC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
static thread_local MkBufferListC MK_NULL_REF
#define MkBufferListC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkBufferStream1024C_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkBufferStream16384C_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkBufferStream256C_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkBufferStream64C_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
static thread_local MkBufferStreamC MK_NULL_REF
#define MkBufferStreamC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
static thread_local MkErrorC MK_NULL_REF
#define MkErrorC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkErrorDefaultC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkErrorIgnoreC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkErrorPanicC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkErrorPrintC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkCleanupTmpl()
#define MkSetupTmpl()
static void CcMkCleanup()
C++: [static] MkKernel::Cleanup() → C-API cleanup ccmkkernel internal memory …
static void Cleanup()
C++: [static] MkKernel::Cleanup() → C-API cleanup ccmkkernel internal memory …
static void Setup()
C++: [static] MkKernel::Setup() → C-API setup ccmkkernel internal memory …
static void CcMkSetup()
C++: [static] MkKernel::Setup() → C-API setup ccmkkernel internal memory …
void MkSetup(void)
setup ccmkkernel internal memory …
void MkCleanup(void)
cleanup ccmkkernel internal memory …
static thread_local MkLogFileC MK_NULL_REF
#define MkLogFileC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
static thread_local MkObjectC MK_NULL_REF
struct MkObjectS * MK_OBJ
class-shortcut for struct MkObjectS *, all shortcut using the XX_YYY syntax (only for public API) …
#define MkObjectC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
static thread_local MkRuntimeC MK_NULL_REF
#define MkRuntimeC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
size_t MkRuntimeCallbackAdd(MK_RT mkrt, MkRuntimeCallbackS *cbdata, MkRuntimeInitF rt_callback, MK_STRN ident)
add a callback to the runtime …
#define MK_RT_CALL
#define AllRtSetup_NULL
void MkRuntimeCallbackDel(MK_RT mkrt, MkRuntimeCallbackS *cbdata)
delete a callback from the runtime …
#define MkRtSetup_NULL
#define MK_RT_ARGS_ONLY
namespace for the CcMkKernel "C++"-API
static struct MkRuntimeCallbackS sMkRuntimeCallback
keep callback related data …