theKernel 10.0
Loading...
Searching...
No Matches
MkObjectC_cc.hh
Go to the documentation of this file.
1
9/* LABEL-INIT */
10
11#pragma once
12
13#include <cxxabi.h>
14
15#define META_IS_MkObjectC
16
17namespace ccmkkernel {
18
21 typedef struct {
25
26 typedef void (*MkObjectDeleteSCB) (MK_STRN const,MK_HDL const,MK_HDL const);
27
30 class MkObjectC {
31
32 friend class MkKernel;
34
35/* LABEL-START */
36
39
40 public:
41 static thread_local MkObjectC MK_NULL_REF;
42
43 private:
44
45 static MkObjectC* MkObjectC_GetSelf (MK_OBJ hdl) {
46 return (hdl != NULL ? static_cast<MkObjectC*>((*MkObjectC_X2obj(hdl)).self) : &MK_NULL_REF);
47 }
48
49 #ifdef MkObjectC_selfCreate_overload
50 static MK_PTR MkObjectC_selfCreate (MK_RT_ARGS MK_OBJ obj, MK_PTR const env);
51 #else
52 static MK_PTR MkObjectC_selfCreate (MK_RT_ARGS MK_OBJ obj, MK_PTR const env) {
53 return new MkObjectC(obj);
54 }
55 #endif
56
57 static void MkObjectC_selfDelete (MK_RT_ARGS MK_PTR self, MK_PTR env) {
58 delete static_cast<MkObjectC*>(self);
59 }
60
61 static void MkObjectC_selfUnlink (MK_RT_ARGS MK_PTR self, MK_PTR env) {
62 MkObjectC* selfO = static_cast<MkObjectC*>(self);
63 selfO->atomUnlink();
64 }
65
66 void MkObjectC_Init (MK_OBJ hdl) { atomInit(MkObjectC_X2obj(hdl)); };
67
68
69 static MkObjectC* MkObjectC_ObjCreate (MK_RT_ARGS MK_OBJ hdl) {
71 }
72
73#ifndef META_IS_MkObjectC
74 MkObjectC (MK_OBJ obj) : MkObjectC(obj) {};
75#endif
76
77 public:
78
79#ifndef META_IS_MkObjectC
81#endif
82
87
89 MK_OBJ getOBJ() const {
90 MK_OBJ ret = reinterpret_cast<MK_OBJ>(hdl);
91 if (unlikely(ret == NULL)) InstHdlIsNullError();
92 return ret;
93 };
94
97 return reinterpret_cast<MK_OBJ>(hdl);
98 };
99
101 MK_OBJN getOBJN() const {
102 MK_OBJN ret = reinterpret_cast<MK_OBJN>(hdl);
103 if (unlikely(ret == NULL)) InstHdlIsNullError();
104 return ret;
105 };
106
109 return reinterpret_cast<MK_OBJN>(hdl);
110 };
111
113 static MK_OBJ getOBJ(MkObjectC* clsHdl) {
114 MK_OBJ ret = clsHdl ? reinterpret_cast<MK_OBJ>(clsHdl->hdl) : NULL;
115 if (unlikely(ret == NULL)) ClassHdlIsNullError(MkObjectC);
116 return ret;
117 };
118
121 return clsHdl ? reinterpret_cast<MK_OBJ>(clsHdl->hdl) : NULL;
122 };
123
125 static MK_OBJN getOBJN(const MkObjectC* clsHdl) {
126 MK_OBJN ret = clsHdl ? reinterpret_cast<MK_OBJN>(clsHdl->hdl) : NULL;
127 if (unlikely(ret == NULL)) ClassHdlIsNullError(MkObjectC);
128 return ret;
129 };
130
132 static MK_OBJN getOBJN__null_allow(const MkObjectC* clsHdl) {
133 return clsHdl ? reinterpret_cast<MK_OBJN>(clsHdl->hdl) : NULL;
134 };
135
137 static MK_OBJ getOBJ(const MkObjectC& clsHdl) {
138 return clsHdl.getOBJ();
139 };
140
142 static MK_OBJ getOBJ__null_allow(const MkObjectC& clsHdl) {
143 return clsHdl.getOBJ__null_allow();
144 };
145
147 static MK_OBJN getOBJN(const MkObjectC& clsHdl) {
148 return clsHdl.getOBJN();
149 };
150
152 static MK_OBJN getOBJN__null_allow(const MkObjectC& clsHdl) {
153 return clsHdl.getOBJN__null_allow();
154 };
155
157 bool Check() const {
158 return (hdl && MkObjCheck(hdl));
159 };
160
161/* LABEL-END */
162
163#undef META_IS_MkObjectC
164
165 protected:
166 MK_OBJ hdl = NULL;
167#if META_HAS_THREAD
168 MK_RT mkrt = NULL;
169#endif
170
171 void atomInit (MK_OBJ obj) {
172 hdl = obj;
173 if (obj != NULL) MkRefIncrSelf(hdl,this,NULL);
174#if META_HAS_THREAD
175 mkrt = MkRT_O(obj);
176#endif
177 }
178
179 void atomUnlink () {
180 if (hdl) {
182 }
183 }
184
186 atomInit(NULL);
187 };
189 atomInit(obj);
190 }
191
192 void inline ErrorCheck ( enum MkErrorE err,
193 MK_STRN const caller = __builtin_FUNCTION(),
194 MK_I32 const line = __builtin_LINE()
195 ) const {
196 if (MkErrorCheckI(err)) MkExceptionC::Raise(hdl, caller, line);
197 }
198 void inline ErrorCheck ( MK_STRN const caller = __builtin_FUNCTION(),
199 MK_I32 const line = __builtin_LINE()
200 ) const {
201 if (MkErrorCheckE_NULL()) MkExceptionC::Raise(hdl, caller, line);
202 }
203 static inline void ErrorCheck(
204 MK_MNGN mng, enum MkErrorE err,
205 MK_STRN const caller = __builtin_FUNCTION(),
206 MK_I32 const line = __builtin_LINE()
207 ) {
208 if (MkErrorCheckI(err)) MkExceptionC::Raise(mng, caller, line);
209 }
210
211 // very often used function
212 static inline MK_PTR atomObjNew (MK_RT_ARGS MK_OBJ obj) {
213 MK_PTR self = NULL;
214 ErrorCheck(obj, MkSelfNew(obj,&self,NULL));
215 return self;
216 }
217 static inline MK_PTR atomObjCreate (MK_RT_ARGS MK_OBJ obj) {
218 return MkSelfCreate(obj,NULL);
219 }
220
221 public:
222
223 typedef void (MkObjectC::*MkObjectDeleteICB) (MK_STRN const,MK_HDL const,MK_HDL const);
224 typedef void (*MkObjectDeleteCCB) (MkObjectC*,MK_STRN const,MK_HDL const,MK_HDL const);
225
226 virtual ~MkObjectC () {
227 if (hdl) {
229 // important: every item deleted with destructor… the "self" object
230 // is already destroyed… set NULL in MkObjectS
232 }
233 }
234
235 inline MK_MNG getMNG() const {
236 MK_MNG ret = reinterpret_cast<MK_MNG>(hdl);
237 if (unlikely(ret == NULL)) throw std::runtime_error("MkObjectC* is NULL");
238 return ret;
239 };
240
242 const char * str = typeid(*this).name();
243 return str ? abi::__cxa_demangle(str,0,0,NULL) : "*unknown*";
244 }
245
250
252 inline MK_STR SysStrDup (MK_STRN str) { return MkSysStrDup(hdl, str); }
254 inline void SysFree (MK_PTR tgt) { (*MkLal.SysFree)((MK_PTR)tgt); }
256 inline void Sleep (unsigned int const sec) { ErrorCheck (MkSysSleep(hdl, sec)); }
258 inline void USleep (unsigned int const usec) { ErrorCheck (MkSysUSleep(hdl, usec)); }
259
261
264
265 public:
266
268 #define ErrorCC(errnum,message) \
269 MkErrorSetV(hdl,__func__,MK_ERROR,errnum,message)
270
272
273 // BEGIN-MkObjectC - created by 'cc_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
274
278
279 public:
280
281 // doc-key: MkObjectC,MkObjectC-Class-Export,sc_,public
282
284 static MkObjectC* HandleResolve (MK_HDL netHdl);
285
286 // doc-key: MkObjectC,MkObjectC-Class-Export,om_,public
287
289 void HandleDelete ();
290
293
295 MK_HDL HandleGet ();
296
299
302
303 // doc-key: MkObjectC,MkObjectC-Class-Export,sm_,public
304
306 static void HandleDeleteByNetHdl (MK_HDL netHdl);
307
309 // MkObjectC_Class_CC_API
310
314
315 public:
316
317 // doc-key: MkObjectC,MkObjectC-Class-Introspection,oc_,public
318
320 MkObjectC* Next ();
321
323 MkObjectC* Prev ();
324
325 // doc-key: MkObjectC,MkObjectC-Class-Introspection,sc_,public
326
328 static MkObjectC* Instances ();
329
331 // MkObjectC_Class_CC_API
332
336
337 public:
338
339 // doc-key: MkObjectC,MkObjectC-Class-Misc,sc_,public
340
342 static MkObjectC* GetNull ();
343
345 // MkObjectC_Class_CC_API
346
350
351 public:
352
353 // doc-key: MkObjectC,MkObjectC-Dbg,om_,public
354
356 void DbgDump (MK_STRN message = "var", MK_STRN callfunc = __builtin_FUNCTION()) const;
357
359 void DbgL (MK_STRN message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0) const;
360
362 void DbgL (const std::string& message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0) const;
363
365 void DbgLogC (MK_STRN callfunc = __builtin_FUNCTION()) const;
366
368 void DbgO (MK_STRN callfunc = __builtin_FUNCTION()) const;
369
371 void DbgSTACK (MK_I32 skip = 0, MK_I32 num = -1, MK_STRN callfunc = __builtin_FUNCTION()) const;
372
373 // doc-key: MkObjectC,MkObjectC-Dbg,sm_,public
374
376 static void DbgM (MK_STRN message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0);
377
379 static void DbgM (const std::string& message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0);
380
382 // MkObjectC_Dbg_CC_API
383
387
388 public:
389
390 // doc-key: MkObjectC,MkObjectC-Log,om_,public
391
393 void LogC (MK_STRN message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION()) const;
394
396 void LogC (const std::string& message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION()) const;
397
399 void LogHEX (MK_STRN callfunc, MK_BNP data) const;
400
402 void LogHEX (const std::string& callfunc, MK_BNP data) const;
403
405 void LogV (MK_STRN callfunc, MK_DBG debug, MK_FST printfmt, ... ) const __attribute__ ((format (printf, 4, 5)));
406
408 void LogV (const std::string& callfunc, MK_DBG debug, MK_FST printfmt, ... ) const __attribute__ ((format (printf, 4, 5)));
409
411 void LogVL (MK_STRN callfunc, MK_DBG debug, MK_FST printfmt, va_list var_list) const;
412
414 void LogVL (const std::string& callfunc, MK_DBG debug, MK_FST printfmt, va_list var_list) const;
415
417 void Log (const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0) const;
418
420 void Log (const MkObjectC& fmtobj, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0) const;
421
423 void LogLong (const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0) const;
424
426 void LogLong (const MkObjectC& fmtobj, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0) const;
427
429 void LogShort (const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0) const;
430
432 void LogShort (const MkObjectC& fmtobj, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0) const;
433
435 void LogType (const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0) const;
436
438 void LogType (const MkObjectC& fmtobj, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(), MK_I32 lvl = 0) const;
439
441 // MkObjectC_Log_CC_API
442
446
447 public:
448
449 // doc-key: MkObjectC,MkObjectC-Misc,oc_,public
450
452 MkErrorC* ErrorCatch (std::exception* exception = NULL, MK_STRN callfunc = __builtin_FUNCTION()) const;
453
455 MkErrorC* ErrorCatch (const std::exception& exception, MK_STRN callfunc = __builtin_FUNCTION()) const;
456
458 MkErrorC* ToError ();
459
460 // doc-key: MkObjectC,MkObjectC-Misc,om_,public
461
463 MK_BOOL IsNull ();
464
466 MK_STRN ToName () const;
467
470
472 MK_STRN ToNameOfType () const;
473
475 MK_STRN ToString () const;
476
478 // MkObjectC_Misc_CC_API
479
483
484 public:
485
486 // doc-key: MkObjectC,MkObjectC-Obj,om_,public
487
489 MK_I32 RefGet ();
490
492 // MkObjectC_Obj_CC_API
493
497
498 public:
499
500 // doc-key: MkObjectC,MkObjectC-Sys,om_,public
501
503 void SysKill (MK_I32 pid, MK_I32 signal) const;
504
505 // doc-key: MkObjectC,MkObjectC-Sys,omo,public
506
508 MK_I32 SysGetPid () const;
509
510 // doc-key: MkObjectC,MkObjectC-Sys,sm_,public
511
513 static MK_I32 SysHashI32 (MK_STRN key, MK_NUM length = -1);
514
516 static MK_I32 SysHashI32 (const std::string& key, MK_NUM length = -1);
517
519 static MK_STRN SysHashSTR (MK_STRN key, MK_NUM length = -1);
520
522 static MK_STRN SysHashSTR (const std::string& key, MK_NUM length = -1);
523
525 // MkObjectC_Sys_CC_API
526
530
531 public:
532
533 // doc-key: MkObjectC,MkObjectC-TOR,oD_,public
534
536 void Delete ();
537
538 // doc-key: MkObjectC,MkObjectC-TOR,od_,public
539
541 void Dispose ();
542
543 // doc-key: MkObjectC,MkObjectC-TOR,sm_,public
544
546 static void DeleteCallbackCleanup (MK_STRN ident);
547
549 static void DeleteCallbackCleanup (const std::string& ident);
550
552 void DeleteCallbackSetup (MK_STRN ident, MkObjectDeleteCCB callback = NULL, MK_STRN filter = NULL);
553
555 void DeleteCallbackSetup (const std::string& ident, MkObjectDeleteCCB callback = NULL, MK_STRN filter = NULL);
556
558 void DeleteCallbackSetup (MK_STRN ident, MkObjectDeleteICB callback = NULL, MK_STRN filter = NULL);
559
561 void DeleteCallbackSetup (const std::string& ident, MkObjectDeleteICB callback = NULL, MK_STRN filter = NULL);
562
564 static void DeleteCallbackSetup (MK_STRN ident, MkObjectDeleteSCB callback = NULL, MK_STRN filter = NULL);
565
567 static void DeleteCallbackSetup (const std::string& ident, MkObjectDeleteSCB callback = NULL, MK_STRN filter = NULL);
568
570 // MkObjectC_TOR_CC_API
571
572 // END-MkObjectC - created by 'cc_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
573
575 }; // class
576} // namespace ccmkkernel
577
578// vim: nowrap
#define MkErrorCheckE_NULL()
#define MkErrorCheckI(err)
#define InstHdlIsNullError()
#define ClassHdlIsNullError(cls)
MkKernel PACKAGE - The package is the toplevel structure of the Programming-Language-Micro-Kernel (PL...
object header … → C-API: libmkkernel::MkObjectS
void USleep(unsigned int const usec)
usleep syscall with ccmkkernel error plugin → C-API: libmkkernel::MkSysUSleep
void Sleep(unsigned int const sec)
sleep syscall with ccmkkernel error plugin → C-API: libmkkernel::MkSysSleep
void SysFree(MK_PTR tgt)
implements the ccmkkernel API object: MkSysFree
MK_STR SysStrDup(MK_STRN str)
strdup syscall with ccmkkernel error plugin → C-API: libmkkernel::MkSysStrDup
static void Raise(MK_MNGN const expobj, MK_STRN const callfunc=__builtin_FUNCTION(), MK_I32 const callline=__builtin_LINE())
convert an MkErrorC into a Target-Programming-Language (TPL) exception … → C-API: libmkkernel::MkE...
#define unlikely(x)
MkErrorE
collection for the different error-codes …
MK_PTRB * MK_MNG
managed object pointer, datatype will be checked at runtime
MK_STRB const * MK_FST
const format string pointer data-type
bool MK_BOOL
real bool data-type
int32_t MK_HDL
4 byte int handle data-type
int32_t MK_NUM
array size data-type ('num' items in array …
int MK_DBG
debug-level data-type …
signed int MK_I32
4 byte integer data-type
MK_STRB * MK_STR
string pointer data-type with UTF8 ecoding (MK_STR)
MK_PTRB * MK_PTR
generic pointer data-type
const MK_PTRB * MK_MNGN
const - a managed object pointer, datatype will be checked at runtime
const MK_STRB * MK_STRN
constant string pointer data-type
static MK_PTR atomObjCreate(MK_RT_ARGS MK_OBJ obj)
void ErrorCheck(MK_STRN const caller=__builtin_FUNCTION(), MK_I32 const line=__builtin_LINE()) const
MK_OBJ getOBJ() const
return the LibMsgqueObject from current MkObjectC instance
static MK_OBJN getOBJN__null_allow(const MkObjectC &clsHdl)
(const) return LibMsgqueObject from current MkObjectC reference
void ErrorCheck(enum MkErrorE err, MK_STRN const caller=__builtin_FUNCTION(), MK_I32 const line=__builtin_LINE()) const
MK_OBJN getOBJN__null_allow() const
(const) return the LibMsgqueObject from current MkObjectC instance
MK_OBJ getOBJ__null_allow() const
return the LibMsgqueObject from current MkObjectC instance
static thread_local MkObjectC MK_NULL_REF
static void ErrorCheck(MK_MNGN mng, enum MkErrorE err, MK_STRN const caller=__builtin_FUNCTION(), MK_I32 const line=__builtin_LINE())
void(*) MkObjectDeleteCCB(MkObjectC *, MK_STRN const, MK_HDL const, MK_HDL const)
class-callback
MK_MNG getMNG() const
MK_OBJN getOBJN() const
(const) return the LibMsgqueObject from current MkObjectC instance
bool Check() const
check if pointer is still valid
static MK_OBJN getOBJN(const MkObjectC &clsHdl)
(const) return LibMsgqueObject from current MkObjectC reference
void atomInit(MK_OBJ obj)
static MK_OBJN getOBJN__null_allow(const MkObjectC *clsHdl)
(const) return LibMsgqueObject from current MkObjectC pointer
static MK_OBJ getOBJ__null_allow(MkObjectC *clsHdl)
return LibMsgqueObject from current MkObjectC pointer
void(MkObjectC::*) MkObjectDeleteICB(MK_STRN const, MK_HDL const, MK_HDL const)
instance-callback
MK_STRN ToNativeNameOfClass() const
static MK_OBJ getOBJ(const MkObjectC &clsHdl)
return LibMsgqueObject from current MkObjectC reference
static MK_OBJ getOBJ(MkObjectC *clsHdl)
return LibMsgqueObject from current MkObjectC pointer
static MK_PTR atomObjNew(MK_RT_ARGS MK_OBJ obj)
static MK_OBJ getOBJ__null_allow(const MkObjectC &clsHdl)
return LibMsgqueObject from current MkObjectC reference
static MK_OBJN getOBJN(const MkObjectC *clsHdl)
(const) return LibMsgqueObject from current MkObjectC pointer
static MkObjectC * MkObjectC_ObjNew(MK_RT_ARGS MK_OBJ hdl)
return MkObjectC from LibMsgqueObject
MkObjectC * Next()
C++: MkObjectC* obj.Next() → C-API get next instance from linked-list of MkObjectS type
MkObjectC * Prev()
C++: MkObjectC* obj.Prev() → C-API get previous instance from linked-list of MkObjectS type
MK_HDL HandleGetOfType()
C++: MK_HDL obj.HandleGetOfType() → C-API Export-Slot - returns typeHdl of the obj .
MK_HDL HandleGet()
C++: MK_HDL obj.HandleGet() → C-API Handle-Get-Slot - returns a export-hdl to the MkObjectC use...
static MkObjectC * HandleResolve(MK_HDL netHdl)
C++: [static] MkObjectC* MkObjectC::HandleResolve(MK_HDL netHdl) → C-API Handle-Resolve-Slot - r...
static MkObjectC * GetNull()
C++: [static] MkObjectC* MkObjectC::GetNull() → C-API Null-Slot - return a MkObjectC typed NULL ...
static MkObjectC * Instances()
C++: [static] MkObjectC* MkObjectC::Instances() → C-API get head-instance from linked-list of Mk...
void HandleDelete()
C++: netObj.HandleDelete() → C-API Handle-Delete-Slot - delete a netObj from handle-storage …
MK_BOOL HandleExists()
C++: MK_BOOL obj.HandleExists() → C-API check if obj has already a handle defined…
static void HandleDeleteByNetHdl(MK_HDL netHdl)
C++: [static] MkObjectC::HandleDeleteByNetHdl(MK_HDL netHdl) → C-API Handle-Delete-Slot - delete...
MK_HDL HandleGetOr0()
C++: MK_HDL obj.HandleGetOr0() → C-API return export-hdl or 0 in not created…
struct MkObjectS * MK_OBJ
class-shortcut for struct MkObjectS *, all shortcut using the XX_YYY syntax (only for public API) …
#define MkObjectC_X2obj(x)
static bool MkObjCheck(MK_MNGN mng)
check MkObjectS -> libmkkernel::MkObjectS::signature …
void DbgDump(MK_STRN message="var", MK_STRN callfunc=__builtin_FUNCTION()) const
C++: obj.DbgDump(MK_STRN message = "var", MK_STRN callfunc = __builtin_FUNCTION()) → C-API debu...
void DbgO(MK_STRN callfunc=__builtin_FUNCTION()) const
C++: obj.DbgO(MK_STRN callfunc = __builtin_FUNCTION()) → C-API debug: write the object-details ...
static void DbgM(MK_STRN message, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0)
C++: [static] MkObjectC::DbgM(MK_STRN message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTIO...
void DbgLogC(MK_STRN callfunc=__builtin_FUNCTION()) const
C++: obj.DbgLogC(MK_STRN callfunc = __builtin_FUNCTION()) → C-API debug: write a short-obj-summ...
void DbgSTACK(MK_I32 skip=0, MK_I32 num=-1, MK_STRN callfunc=__builtin_FUNCTION()) const
C++: fmtobj.DbgSTACK(MK_I32 skip = 0, MK_I32 num = -1, MK_STRN callfunc = __builtin_FUNCTION()) → C...
void DbgL(MK_STRN message, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0) const
C++: fmtobj.DbgL(MK_STRN message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(),...
void LogHEX(MK_STRN callfunc, MK_BNP data) const
C++: fmtobj.LogHEX(MK_STRN callfunc, MK_BNP data) → C-API log binaray data as HEX into the MkLo...
void LogVL(MK_STRN callfunc, MK_DBG debug, MK_FST printfmt, va_list var_list) const
C++: fmtobj.LogVL(MK_STRN callfunc, MK_DBG debug, MK_FST printfmt, va_list var_list) → C-API wr...
void LogShort(const MkObjectC *fmtobj=NULL, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0) const
C++: obj.LogShort(const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUN...
void LogLong(const MkObjectC *fmtobj=NULL, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0) const
C++: obj.LogLong(const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNC...
void Log(const MkObjectC *fmtobj=NULL, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0) const
C++: obj.Log(const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION...
void LogV(MK_STRN callfunc, MK_DBG debug, MK_FST printfmt,...) const
C++: fmtobj.LogV(MK_STRN callfunc, MK_DBG debug, MK_FST printfmt, ... ) → C-API write a printf ...
void LogType(const MkObjectC *fmtobj=NULL, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0) const
C++: obj.LogType(const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNC...
void LogC(MK_STRN message, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION()) const
C++: fmtobj.LogC(MK_STRN message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION()) → C-AP...
MkErrorC * ToError()
C++: MkErrorC* obj.ToError() → C-API Error-Slot - return an error-object pre initialized with o...
MK_STRN ToNameOfType() const
C++: MK_STRN obj.ToNameOfType() → C-API Type-Slot - returns the LibMkKernel-Type-Name of the ob...
MK_STRN ToNameOfClass()
C++: MK_STRN obj.ToNameOfClass() → C-API Class-Slot - returns the C++-Class-Name of the obj as ...
MK_STRN ToName() const
C++: MK_STRN obj.ToName() → C-API Info-Slot - returns brief information about the obj as a stri...
MkErrorC * ErrorCatch(std::exception *exception=NULL, MK_STRN callfunc=__builtin_FUNCTION()) const
C++: MkErrorC* obj.ErrorCatch(std::exception* exception = NULL, MK_STRN callfunc = __builtin_FUNCTIO...
MK_STRN ToString() const
C++: MK_STRN inst.ToString() → C-API String-Slot - returns the string representation of the ins...
MK_BOOL IsNull()
C++: MK_BOOL obj.IsNull() → C-API ckeck if the object is MK_NULL
MK_I32 RefGet()
libmkkernel::MkRefGet
#define MkSelfNew(...)
#define MkRefDecrWithoutSelf(...)
#define MkSelfCreate(...)
static void MkRefIncrSelf(MK_OBJ const obj, MK_PTR const self, MK_PTR const env)
ATOMIC operation -> link self with reference-count.
void SysKill(MK_I32 pid, MK_I32 signal) const
libmkkernel::MkSysKill
static MK_STRN SysHashSTR(MK_STRN key, MK_NUM length=-1)
libmkkernel::MkSysHashSTR
static MK_I32 SysHashI32(MK_STRN key, MK_NUM length=-1)
libmkkernel::MkSysHashI32
MK_I32 SysGetPid() const
libmkkernel::MkSysGetPid
static enum MkErrorE MkSysSleep(MK_OBJN fmtobj, MK_I32 const sec)
sleep syscall with ccmkkernel error plugin
MK_STR MkSysStrDup(MK_OBJN fmtobj, MK_STRN const str)
strdup syscall with ccmkkernel error plugin
struct MkLalS MkLal
Language Abstraction Layer in duty.
static enum MkErrorE MkSysUSleep(MK_OBJN fmtobj, useconds_t const usec)
usleep syscall with ccmkkernel error plugin
static void DeleteCallbackCleanup(MK_STRN ident)
C++: [static] MkObjectC::DeleteCallbackCleanup(MK_STRN ident) → C-API cleanup the DeleteCallback...
void Delete()
C++: [destructor] obj.Delete() → C-API Delete-Slot - delete an instance.
void DeleteCallbackSetup(MK_STRN ident, MkObjectDeleteCCB callback=NULL, MK_STRN filter=NULL)
C++: [static] MkObjectC::DeleteCallbackSetup(MK_STRN ident, MkObjectDeleteICB MkObjectDeleteCCB MkObj...
void Dispose()
C++: [destructor] obj.Dispose() → C-API Dispose-Slot - untie the connection between the Native-C...
#define MK_RT_CALL
#define MK_RT_ARGS
#define MkRtSetup_NULL
#define MkRT_O(o)
namespace for the CcMkKernel "C++"-API
void(* MkObjectDeleteSCB)(MK_STRN const, MK_HDL const, MK_HDL const)
static-callback
std::pair< MK_SIZE, MK_BINN > MK_BNP
object header … → C-API: libmkkernel::MkObjectS
infrastructur to use the ccmkkernel specific callback …
Definition MkCall_cc.hh:16
MkSysFreeF SysFree
free syscall …
The MkRuntimeS provide a per-thread environment for ccmkkernel …