theKernel 10.0
Loading...
Searching...
No Matches
MkObjectC_rb.c
Go to the documentation of this file.
1
9/* LABEL-INIT */
10
11#define MK_BASE_CLASS rb_cObject
12#define OBJ hdl
13
14#define SetupRtFromObj_X(hdl) MkRtSetup_O(hdl)
15#define SetupRtFromObj_XN(hdl) MkRtSetup_ON(hdl)
16
17/* LABEL-START */
18#define META_FILE_NAME "MkObjectC_rb.c"
19
21
22#define OT_CLASS NS(MkObjectC)
23#define OT_CLASS_NAME "MkObjectC"
24
25#define OT_LNG2META(O) MkObj(VAL2MNG(O))
26
28
29// new Class type object
30static MK_TYP MkObjectCTT = NULL;
32
33// GS marker in "Data_Wrap_Struct"
34static void NS(sMark) (MK_PTR);
35
36// ruby datatype of the wrapped struct
37static rb_data_type_t NS(MkObjectC_T) = {
38 "MkObjectC",
39 {
40 NS(sMark),
41 MK(AtomDeleteSoft),
42 0, /* dsize */
43 0, /* reserved[1] */
44 },
45 NULL, /* parent */
46 NULL, /* data */
47 RUBY_TYPED_FREE_IMMEDIATELY
48};
49
50// >>THIS<< is a Phase-1-CONSTRUCTOR: a constructor which create the SELF object
51// A Phase-2-CONSTRUCTOR is a constructor which configure an already existing object
52// DO: create a new SELF and link this SELF with the MQ-Object "mng"
53// clazz is the toplevel "subclass" or "MkObjectC"
54mk_inline OT_OBJ_T NS(LNG_CONSTR) (OT_CLS_T clazz, MK_MNG mng, int objc, VALUE* objv) {
55 return MK(AtomObjCrt)(clazz,&NS(MkObjectC_T),mng,objc,objv);
56}
57// MQ: ObjNew feature: called to return a new or an already existing RUBY-SELF-Object
58// -> moved to: msgque_rb.h
59// OT_OBJ_T NS(MkObjectC_ObjNew) (MK_OBJ hdl) {
60// return MK(AtomObjNew) (MkObjectC_X2obj(hdl));
61// }
62// MQ: ObjNew feature: selfCreate will be called from "ObjNew->MkSelfNew" if MkObj need a SELF pointer
63static MK_PTR NS(MkObjectC_selfCreate) (MK_RT_ARGS MK_OBJ obj, MK_PTR envP) {
64 OT_OBJ_T self = NS(LNG_CONSTR) (OT_CLASS, obj, 0, NULL);
65 return VAL2PTR(self);
66}
67// MQ: called on instance-destruction for a "selfCreate" instance → goal: destroy the SELF
68static void NS(MkObjectC_selfDelete) (MK_RT_ARGS MK_PTR ptr, MK_PTR envP) {
70}
71// MQ: called to destroy link from SELF to META
72static void NS(MkObjectC_selfUnlink) (MK_RT_ARGS MK_PTR ptr, MK_PTR envP) {
73 OT_OBJ_T self = PTR2VAL(ptr);
74 RDATA(self)->data = NULL;
75}
76// initialize the RUBY and MO class specific object
77#define S_INIT NS(sInit)(MK_RT_CALL_ONLY)
78static void NS(sInit)(MK_RT_ARGS_ONLY) {
79
80 // add "selfCreate" and "selfDelete" feature to the MQ-MkObjectC-Type
81 MkObjectCTT->selfCreate = NS(MkObjectC_selfCreate);
82 MkObjectCTT->selfDelete = NS(MkObjectC_selfDelete);
83 MkObjectCTT->selfUnlink = NS(MkObjectC_selfUnlink);
84
85 // create the RUBY class
86 OT_CLASS = rb_define_class_under(OT_PKG, "MkObjectC", MK_BASE_CLASS);
87 rb_undef_alloc_func(OT_CLASS);
88
89 /* define the "NULL" object */
90 VALUE nullO = TypedData_Wrap_Struct (OT_CLASS, &NS(MkObjectC_T), MK_NULL);
91 NS(MkObjectC_MK_NULL) = nullO;
93}
94
95#define OT_SETUP_hdl OT_SETUP_hdl_tmpl(MkObjectC);
96#define OT_SETUP_hdl__null_allow OT_SETUP_hdl_tmpl__null_allow(MkObjectC);
97#define OT_SETUP_hdl_constr AllRtSetup_NULL; \
98 OT_OBJ_T clazz = self; \
99 MkObjectC_type hdl = (MkObjectC_type) &MkERROR;
100#define OT_SETUP_hdl_destr OT_SETUP_hdl_tmpl__null_allow(MkObjectC);
101#define OT_SETUP_hdl_static AllRtSetup_NULL; \
102 __attribute__((unused)) MK_TYP hdl = MkObjectC##_TT;
103#define OT_SETUP_hdl_static_constr OT_SETUP_hdl_static
104
105#if !defined(SetupRtFromObj_X)
106 #define SetupRtFromObj_X(hdl) AllRtSetup_X(hdl)
107 #define SetupRtFromObj_XN(hdl) AllRtSetup_XN(hdl)
108#endif
109
110/* LABEL-END */
111
112#undef OT_GET_CTX
113#define OT_GET_CTX(hdl) MkObjGetContext_O(hdl)
114
115// BEGIN-DOC - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
116
117// doc-key: MkObjectC,MkDbg,sm_,func
118#define DbgM_doc "MkObjectC.DbgM(message:string, ?debug:int32=0?, ?callfunc:string=\"MK_NULL\"?, ?lvl:int32=0?)"
119
120// doc-key: MkObjectC,MkDbg,om_,func
121#define DbgDump_doc "obj.DbgDump(?message:string=\"var\"?, ?callfunc:string=\"MK_NULL\"?) (const)"
122#define DbgL_doc "fmtobj.DbgL(message:string, ?debug:int32=0?, ?callfunc:string=\"MK_NULL\"?, ?lvl:int32=0?) (const)"
123#define DbgLogC_doc "obj.DbgLogC(?callfunc:string=\"MK_NULL\"?) (const)"
124#define DbgO_doc "obj.DbgO(?callfunc:string=\"MK_NULL\"?) (const)"
125#define DbgSTACK_doc "fmtobj.DbgSTACK(?skip:int32=0?, ?num:int32=-1?, ?callfunc:string=\"MK_NULL\"?) (const)"
126
127// doc-key: MkObjectC,MkLog,om_,func
128#define LogC_doc "fmtobj.LogC(message:string, ?debug:int32=0?, ?callfunc:string=\"MK_NULL\"?) (const)"
129#define LogHEX_doc "fmtobj.LogHEX(callfunc:string, data:binary) (const)"
130
131// doc-key: MkObjectC,MkObj,om_,func
132#define RefGet_doc "int32 obj.RefGet()"
133
134// doc-key: MkObjectC,MkObject,sc_,func
135#define GetNull_doc "MkObjectC MkObjectC.GetNull()"
136#define HandleResolve_doc "MkObjectC MkObjectC.HandleResolve(netHdl:MK_HDL)"
137#define Instances_doc "MkObjectC MkObjectC.Instances()"
138
139// doc-key: MkObjectC,MkObject,sm_,func
140#define DeleteCallbackCleanup_doc "MkObjectC.DeleteCallbackCleanup(ident:string)"
141#define DeleteCallbackSetup_doc "MkObjectC.DeleteCallbackSetup(ident:string, ?callback:callable=nil?, ?filter:string=\"nil\"?)"
142#define HandleDeleteByNetHdl_doc "MkObjectC.HandleDeleteByNetHdl(netHdl:MK_HDL)"
143
144// doc-key: MkObjectC,MkObject,oD_,func
145#define Delete_doc "obj.Delete()"
146
147// doc-key: MkObjectC,MkObject,od_,func
148#define Dispose_doc "obj.Dispose()"
149
150// doc-key: MkObjectC,MkObject,oc_,func
151#define ErrorCatch_doc "MkErrorC obj.ErrorCatch(?exception:errorCode=nil?, ?callfunc:string=\"MK_NULL\"?) (const)"
152#define Next_doc "MkObjectC obj.Next()"
153#define Prev_doc "MkObjectC obj.Prev()"
154#define ToError_doc "MkErrorC obj.ToError()"
155
156// doc-key: MkObjectC,MkObject,om_,func
157#define HandleDelete_doc "netObj.HandleDelete()"
158#define HandleExists_doc "bool obj.HandleExists()"
159#define HandleGet_doc "MK_HDL obj.HandleGet()"
160#define HandleGetOfType_doc "MK_HDL obj.HandleGetOfType()"
161#define HandleGetOr0_doc "MK_HDL obj.HandleGetOr0()"
162#define IsNull_doc "bool obj.IsNull()"
163#define Log_doc "obj.Log(?fmtobj:MkObjectC=nil?, ?debug:int32=0?, ?callfunc:string=\"MK_NULL\"?, ?lvl:int32=0?) (const)"
164#define LogLong_doc "obj.LogLong(?fmtobj:MkObjectC=nil?, ?debug:int32=0?, ?callfunc:string=\"MK_NULL\"?, ?lvl:int32=0?) (const)"
165#define LogShort_doc "obj.LogShort(?fmtobj:MkObjectC=nil?, ?debug:int32=0?, ?callfunc:string=\"MK_NULL\"?, ?lvl:int32=0?) (const)"
166#define LogType_doc "obj.LogType(?fmtobj:MkObjectC=nil?, ?debug:int32=0?, ?callfunc:string=\"MK_NULL\"?, ?lvl:int32=0?) (const)"
167#define ToName_doc "string obj.ToName() (const)"
168#define ToNameOfClass_doc "string obj.ToNameOfClass()"
169#define ToNameOfType_doc "string obj.ToNameOfType() (const)"
170#define ToString_doc "string inst.ToString() (const)"
171
172// doc-key: MkObjectC,MkSys,sm_,func
173#define SysHashI32_doc "int32 MkObjectC.SysHashI32(key:string, ?length:int32=-1?)"
174#define SysHashSTR_doc "string MkObjectC.SysHashSTR(key:string, ?length:int32=-1?)"
175
176// doc-key: MkObjectC,MkSys,om_,func
177#define SysKill_doc "fmtobj.SysKill(pid:int32, signal:int32) (const)"
178
179// doc-key: MkObjectC,MkSys,omo,func
180#define SysGetPid_doc "int32 fmtobj.SysGetPid() (const)"
181
182// END-DOC - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
183
184// catch ignore MkErrorE
185#define MkObjectErrorCatchTmpl(...) MK(MkExceptionC_Catch)(OT_Prefix_CALL __VA_ARGS__, NULL)
186#define MkObjectToNameOfClassTmpl(hdl) rb_obj_classname(OBJ2VAL(hdl))
187#define MkDbgDumpTmpl(...) MK(DbgDumpTmpl)( MK_RT_CALL __VA_ARGS__ )
188
189static enum MkErrorE MK(DbgDumpTmpl)( MK_RT_ARGS MK_OBJ const obj, MK_STRN const message, MK_STRN const callfunc)
190{
191 MkBufferCreateLOCAL_T(MkBuffer256C,buf,512);
192 MkBufferAppendV(buf, "message = %s\n", message);
193 MkBufferAppendV(buf, "intern = %s\n", VAL2STRN(rb_inspect(OBJ2VAL(obj))));
194 return MkDbgDump(obj, bufR.super.buf.storage.first.C, callfunc);
195}
196
197/*****************************************************************************/
198/* */
199/* private */
200/* */
201/*****************************************************************************/
202
203// ***************************************************************************************
204
205// BEGIN-MkObjectC - created by 'rb_MqC.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
206
210
211// doc-key: MkObjectC,MkObjectC-Class-Export,sc_
212
214static OT_ProcRet NS(MkObjectC_HandleResolve) (OtClass_ARGS) {
217 MK_HDL netHdl = 0;
220 MK_OBJ retVal = MkObjectHandleResolve (netHdl);
221 OT_retObj_SET_OBJ(retVal);
222 end: MK_UNUSED /* LONG JUMP on error */
224}
225
226// doc-key: MkObjectC,MkObjectC-Class-Export,om_
227
229static OT_ProcRet NS(MkObjectC_HandleDelete) (MkObjectC_ARGS) {
235 end: MK_UNUSED /* LONG JUMP on error */
237}
238
240static OT_ProcRet NS(MkObjectC_HandleExists) (MkObjectC_ARGS) {
245 end: MK_UNUSED /* LONG JUMP on error */
247}
248
250static OT_ProcRet NS(MkObjectC_HandleGet) (MkObjectC_ARGS) {
255 end: MK_UNUSED /* LONG JUMP on error */
257}
258
260static OT_ProcRet NS(MkObjectC_HandleGetOfType) (MkObjectC_ARGS) {
265 end: MK_UNUSED /* LONG JUMP on error */
267}
268
270static OT_ProcRet NS(MkObjectC_HandleGetOr0) (MkObjectC_ARGS) {
275 end: MK_UNUSED /* LONG JUMP on error */
277}
278
279// doc-key: MkObjectC,MkObjectC-Class-Export,sm_
280
282static OT_ProcRet NS(MkObjectC_HandleDeleteByNetHdl) (OtClass_ARGS) {
285 MK_HDL netHdl = 0;
290 end: MK_UNUSED /* LONG JUMP on error */
292}
293
295// MkObjectC_Class_RB_API
296
300
301// doc-key: MkObjectC,MkObjectC-Class-Introspection,oc_
302
304static OT_ProcRet NS(MkObjectC_Next) (MkObjectC_ARGS) {
308 MK_OBJ retVal = MkObjectNext (hdl);
309 OT_retObj_SET_OBJ(retVal);
310 end: MK_UNUSED /* LONG JUMP on error */
312}
313
315static OT_ProcRet NS(MkObjectC_Prev) (MkObjectC_ARGS) {
319 MK_OBJ retVal = MkObjectPrev (hdl);
320 OT_retObj_SET_OBJ(retVal);
321 end: MK_UNUSED /* LONG JUMP on error */
323}
324
325// doc-key: MkObjectC,MkObjectC-Class-Introspection,sc_
326
328static OT_ProcRet NS(MkObjectC_Instances) (OtClass_ARGS) {
332 MK_OBJ retVal = MkObjectInstances ();
333 OT_retObj_SET_OBJ(retVal);
334 end: MK_UNUSED /* LONG JUMP on error */
336}
337
339// MkObjectC_Class_RB_API
340
344
345// doc-key: MkObjectC,MkObjectC-Class-Misc,sc_
346
348static OT_ProcRet NS(MkObjectC_GetNull) (OtClass_ARGS) {
352 MK_OBJ retVal = MkObjectGetNull ();
353 OT_retObj_SET_OBJ(retVal);
354 end: MK_UNUSED /* LONG JUMP on error */
356}
357
359// MkObjectC_Class_RB_API
360
364
365// doc-key: MkObjectC,MkObjectC-Dbg,om_
366
368static OT_ProcRet NS(MkObjectC_DbgDump) (MkObjectC_ARGS) {
371 MK_STRN message = "var";
373 MK_STRN callfunc = NULL;
376 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
377 MkErrorC_Check(hdl,MkDbgDumpTmpl (hdl, message, callfunc));
379 end: MK_UNUSED /* LONG JUMP on error */
382}
383
385static OT_ProcRet NS(MkObjectC_DbgL) (MkObjectC_ARGS) {
388 MK_STRN message = 0;
390 MK_DBG debug = 0;
392 MK_STRN callfunc = NULL;
394 MK_I32 lvl = 0;
397 if (debug > MkRuntimeDebugGet()) {
399 goto end;
400 }
401 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
402 MkDbgL (hdl, message, debug, callfunc, lvl);
404 end: MK_UNUSED /* LONG JUMP on error */
407}
408
410static OT_ProcRet NS(MkObjectC_DbgLogC) (MkObjectC_ARGS) {
413 MK_STRN callfunc = NULL;
416 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
417 MkDbgLogC (hdl, callfunc);
419 end: MK_UNUSED /* LONG JUMP on error */
422}
423
425static OT_ProcRet NS(MkObjectC_DbgO) (MkObjectC_ARGS) {
428 MK_STRN callfunc = NULL;
431 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
432 MkDbgO (hdl, callfunc);
434 end: MK_UNUSED /* LONG JUMP on error */
437}
438
440static OT_ProcRet NS(MkObjectC_DbgSTACK) (MkObjectC_ARGS) {
443 MK_I32 skip = 0;
445 MK_I32 num = -1;
447 MK_STRN callfunc = NULL;
450 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
451 MkDbgSTACK (hdl, skip, num, callfunc);
453 end: MK_UNUSED /* LONG JUMP on error */
456}
457
458// doc-key: MkObjectC,MkObjectC-Dbg,sm_
459
461static OT_ProcRet NS(MkObjectC_DbgM) (OtClass_ARGS) {
464 MK_STRN message = 0;
466 MK_DBG debug = 0;
468 MK_STRN callfunc = NULL;
470 MK_I32 lvl = 0;
473 if (debug > MkRuntimeDebugGet()) {
475 goto end;
476 }
477 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
478 MkDbgM (message, debug, callfunc, lvl);
480 end: MK_UNUSED /* LONG JUMP on error */
483}
484
486// MkObjectC_Dbg_RB_API
487
491
492// doc-key: MkObjectC,MkObjectC-Log,om_
493
495static OT_ProcRet NS(MkObjectC_LogC) (MkObjectC_ARGS) {
498 MK_STRN message = 0;
500 MK_DBG debug = 0;
502 MK_STRN callfunc = NULL;
505 if (debug > MkRuntimeDebugGet()) {
507 goto end;
508 }
509 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
510 MkLogC (hdl, message, debug, callfunc);
512 end: MK_UNUSED /* LONG JUMP on error */
515}
516
518static OT_ProcRet NS(MkObjectC_LogHEX) (MkObjectC_ARGS) {
521 MK_STRN callfunc = NULL;
523 MkBinaryR data = {0};
526 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
527 MkLogHEX (hdl, callfunc, data);
529 end: MK_UNUSED /* LONG JUMP on error */
532}
533
535static OT_ProcRet NS(MkObjectC_Log) (MkObjectC_ARGS) {
538 MK_OBJN fmtobj = NULL;
540 MK_DBG debug = 0;
542 MK_STRN callfunc = NULL;
544 MK_I32 lvl = 0;
547 if (debug > MkRuntimeDebugGet()) {
549 goto end;
550 }
551 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
552 MkObjectLog (hdl, fmtobj, debug, callfunc, lvl);
554 end: MK_UNUSED /* LONG JUMP on error */
557}
558
560static OT_ProcRet NS(MkObjectC_LogLong) (MkObjectC_ARGS) {
563 MK_OBJN fmtobj = NULL;
565 MK_DBG debug = 0;
567 MK_STRN callfunc = NULL;
569 MK_I32 lvl = 0;
572 if (debug > MkRuntimeDebugGet()) {
574 goto end;
575 }
576 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
577 MkObjectLogLong (hdl, fmtobj, debug, callfunc, lvl);
579 end: MK_UNUSED /* LONG JUMP on error */
582}
583
585static OT_ProcRet NS(MkObjectC_LogShort) (MkObjectC_ARGS) {
588 MK_OBJN fmtobj = NULL;
590 MK_DBG debug = 0;
592 MK_STRN callfunc = NULL;
594 MK_I32 lvl = 0;
597 if (debug > MkRuntimeDebugGet()) {
599 goto end;
600 }
601 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
602 MkObjectLogShort (hdl, fmtobj, debug, callfunc, lvl);
604 end: MK_UNUSED /* LONG JUMP on error */
607}
608
610static OT_ProcRet NS(MkObjectC_LogType) (MkObjectC_ARGS) {
613 MK_OBJN fmtobj = NULL;
615 MK_DBG debug = 0;
617 MK_STRN callfunc = NULL;
619 MK_I32 lvl = 0;
622 if (debug > MkRuntimeDebugGet()) {
624 goto end;
625 }
626 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
627 MkObjectLogType (hdl, fmtobj, debug, callfunc, lvl);
629 end: MK_UNUSED /* LONG JUMP on error */
632}
633
635// MkObjectC_Log_RB_API
636
640
641// doc-key: MkObjectC,MkObjectC-Misc,oc_
642
644static OT_ProcRet NS(MkObjectC_ErrorCatch) (MkObjectC_ARGS) {
647 MK_EXP exception = NULL;
649 MK_STRN callfunc = NULL;
652 if (MkSysStringIsNULL(callfunc)) {callfunc = OT_GET_CALL_PROC;}
653 MK_ERR retVal = MkObjectErrorCatchTmpl (hdl, exception, callfunc);
654 OT_retObj_SET_ERR(retVal);
655 end: MK_UNUSED /* LONG JUMP on error */
658}
659
661static OT_ProcRet NS(MkObjectC_ToError) (MkObjectC_ARGS) {
665 MK_ERR retVal = MkObjectToError (hdl);
666 OT_retObj_SET_ERR(retVal);
667 end: MK_UNUSED /* LONG JUMP on error */
669}
670
671// doc-key: MkObjectC,MkObjectC-Misc,om_
672
674static OT_ProcRet NS(MkObjectC_IsNull) (MkObjectC_ARGS) {
679 end: MK_UNUSED /* LONG JUMP on error */
681}
682
684static OT_ProcRet NS(MkObjectC_ToName) (MkObjectC_ARGS) {
689 end: MK_UNUSED /* LONG JUMP on error */
691}
692
694static OT_ProcRet NS(MkObjectC_ToNameOfClass) (MkObjectC_ARGS) {
699 end: MK_UNUSED /* LONG JUMP on error */
701}
702
704static OT_ProcRet NS(MkObjectC_ToNameOfType) (MkObjectC_ARGS) {
709 end: MK_UNUSED /* LONG JUMP on error */
711}
712
714static OT_ProcRet NS(MkObjectC_ToString) (MkObjectC_ARGS) {
719 end: MK_UNUSED /* LONG JUMP on error */
721}
722
724// MkObjectC_Misc_RB_API
725
729
730// doc-key: MkObjectC,MkObjectC-Obj,om_
731
733static OT_ProcRet NS(MkObjectC_RefGet) (MkObjectC_ARGS) {
738 end: MK_UNUSED /* LONG JUMP on error */
740}
741
743// MkObjectC_Obj_RB_API
744
748
749// doc-key: MkObjectC,MkObjectC-Sys,om_
750
752static OT_ProcRet NS(MkObjectC_SysKill) (MkObjectC_ARGS) {
755 MK_I32 pid = 0;
757 MK_I32 signal = 0;
760 MkErrorC_Check(hdl,MkSysKill (hdl, pid, signal));
762 end: MK_UNUSED /* LONG JUMP on error */
764}
765
766// doc-key: MkObjectC,MkObjectC-Sys,omo
767
769static OT_ProcRet NS(MkObjectC_SysGetPid) (MkObjectC_ARGS) {
773 MK_I32 pid_out;
774 MkErrorC_Check(hdl,MkSysGetPid (hdl, &pid_out));
775 OT_retObj_SET_I32(pid_out);
776 end: MK_UNUSED /* LONG JUMP on error */
778}
779
780// doc-key: MkObjectC,MkObjectC-Sys,sm_
781
783static OT_ProcRet NS(MkObjectC_SysHashI32) (OtClass_ARGS) {
786 MK_STRN key = 0;
788 MK_NUM length = -1;
791 OT_retObj_SET_I32(MkSysHashI32 (key, length));
792 end: MK_UNUSED /* LONG JUMP on error */
794}
795
797static OT_ProcRet NS(MkObjectC_SysHashSTR) (OtClass_ARGS) {
800 MK_STRN key = 0;
802 MK_NUM length = -1;
805 OT_retObj_SET_STR(MkSysHashSTR (key, length));
806 end: MK_UNUSED /* LONG JUMP on error */
808}
809
811// MkObjectC_Sys_RB_API
812
816
817// doc-key: MkObjectC,MkObjectC-TOR,od_
818
820static OT_ProcRet NS(MkObjectC_Dispose) (MkObjectC_ARGS) {
826 end: MK_UNUSED /* LONG JUMP on error */
828}
829
830// doc-key: MkObjectC,MkObjectC-TOR,oD_
831
833static OT_ProcRet NS(MkObjectC_Delete) (MkObjectC_ARGS) {
839 end: MK_UNUSED /* LONG JUMP on error */
841}
842
843// doc-key: MkObjectC,MkObjectC-TOR,sm_
844
846static OT_ProcRet NS(MkObjectC_DeleteCallbackCleanup) (OtClass_ARGS) {
849 MK_STRN ident = 0;
854 end: MK_UNUSED /* LONG JUMP on error */
856}
857
859static OT_ProcRet NS(MkObjectC_DeleteCallbackSetup) (OtClass_ARGS) {
862 MK_STRN ident = 0;
864 OT_SETUP_CALLABLE(callback)
866 MK_STRN filter = NULL;
869 MkObjectDeleteCallF fCall = (callback == NULL ? NULL : NS(ObjectDeleteCall));
870 MkErrorC_Check(MK_ERROR_FORMAT,MkObjectDeleteCallbackSetup (ident, fCall, callback, NS(ObjectDeleteFree), filter));
872 end: MK_UNUSED /* LONG JUMP on error */
873 OT_CLEANUP_CALLABLE(callback)
875}
876
878// MkObjectC_TOR_RB_API
879
880// END-MkObjectC - created by 'rb_MqC.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
881
882// ########################################################################################
883// OVERLOAD
884
885static OT_ProcRet NS(MkObjectC_to_s) (MkObjectC_ARGS) {
887 OT_SETUP_NOARG("String obj.to_s()")
889 MK_STRN retVal = MkObjectToString (hdl);
890 OT_retObj_SET_STRN(retVal)
892}
893
894/*****************************************************************************/
895/* */
896/* public */
897/* */
898/*****************************************************************************/
899
900static VALUE MK(NEW)(int objc, VALUE *objv, VALUE class)
901{
902 return Qnil;
903}
904
905static void NS(sMark) (MK_PTR mng)
906{
907}
908
909void MK(MkObjectC_Init) (MK_RT_ARGS_ONLY) {
910
911 // init type
913 S_INIT;
914
915 // create the RUBY memory allocator for class MkObjectC
916 rb_define_singleton_method(MK(MkObjectC), "new", MK(NEW), -1);
917
918 // make class note create-able
919 rb_funcall(MK(MkObjectC), rb_intern("private_class_method"), 1, STRN2VAL("new"));
920 rb_define_protected_method( MK(MkObjectC), "initialize", MK(AtomCreate), -1);
921
922 OT_METH_O ( MkObjectC, to_s, MkObjectC_to_s )
923
924// BEGIN-CLASS - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
925
926// doc-key: MkObjectC,MkDbg,sm_
927OT_METH_O ( MkObjectC, DbgM, MkObjectC_DbgM )
928OT_METH_S ( MkObjectC, DbgM, MkObjectC_DbgM )
929
930// doc-key: MkObjectC,MkObject,sc_
931OT_METH_O ( MkObjectC, GetNull, MkObjectC_GetNull )
932OT_METH_S ( MkObjectC, GetNull, MkObjectC_GetNull )
933OT_METH_O ( MkObjectC, HandleResolve, MkObjectC_HandleResolve )
934OT_METH_S ( MkObjectC, HandleResolve, MkObjectC_HandleResolve )
935OT_METH_O ( MkObjectC, Instances, MkObjectC_Instances )
936OT_METH_S ( MkObjectC, Instances, MkObjectC_Instances )
937
938// doc-key: MkObjectC,MkObject,sm_
939OT_METH_O ( MkObjectC, DeleteCallbackCleanup, MkObjectC_DeleteCallbackCleanup )
940OT_METH_S ( MkObjectC, DeleteCallbackCleanup, MkObjectC_DeleteCallbackCleanup )
941OT_METH_O ( MkObjectC, DeleteCallbackSetup, MkObjectC_DeleteCallbackSetup )
942OT_METH_S ( MkObjectC, DeleteCallbackSetup, MkObjectC_DeleteCallbackSetup )
943OT_METH_O ( MkObjectC, HandleDeleteByNetHdl, MkObjectC_HandleDeleteByNetHdl )
944OT_METH_S ( MkObjectC, HandleDeleteByNetHdl, MkObjectC_HandleDeleteByNetHdl )
945
946// doc-key: MkObjectC,MkSys,sm_
947OT_METH_O ( MkObjectC, SysHashI32, MkObjectC_SysHashI32 )
948OT_METH_S ( MkObjectC, SysHashI32, MkObjectC_SysHashI32 )
949OT_METH_O ( MkObjectC, SysHashSTR, MkObjectC_SysHashSTR )
950OT_METH_S ( MkObjectC, SysHashSTR, MkObjectC_SysHashSTR )
951
952// END-CLASS - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
953
954// BEGIN-OBJ - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
955
956// doc-key: MkObjectC,MkDbg,om_
957OT_METH_O ( MkObjectC, DbgDump, MkObjectC_DbgDump )
958OT_METH_O ( MkObjectC, DbgL, MkObjectC_DbgL )
959OT_METH_O ( MkObjectC, DbgLogC, MkObjectC_DbgLogC )
960OT_METH_O ( MkObjectC, DbgO, MkObjectC_DbgO )
961OT_METH_O ( MkObjectC, DbgSTACK, MkObjectC_DbgSTACK )
962
963// doc-key: MkObjectC,MkLog,om_
964OT_METH_O ( MkObjectC, LogC, MkObjectC_LogC )
965OT_METH_O ( MkObjectC, LogHEX, MkObjectC_LogHEX )
966
967// doc-key: MkObjectC,MkObj,om_
968OT_METH_O ( MkObjectC, RefGet, MkObjectC_RefGet )
969
970// doc-key: MkObjectC,MkObject,oD_
971OT_METH_O ( MkObjectC, Delete, MkObjectC_Delete )
972
973// doc-key: MkObjectC,MkObject,od_
974OT_METH_O ( MkObjectC, Dispose, MkObjectC_Dispose )
975
976// doc-key: MkObjectC,MkObject,oc_
977OT_METH_O ( MkObjectC, ErrorCatch, MkObjectC_ErrorCatch )
978OT_METH_O ( MkObjectC, Next, MkObjectC_Next )
979OT_METH_O ( MkObjectC, Prev, MkObjectC_Prev )
980OT_METH_O ( MkObjectC, ToError, MkObjectC_ToError )
981
982// doc-key: MkObjectC,MkObject,om_
983OT_METH_O ( MkObjectC, HandleDelete, MkObjectC_HandleDelete )
984OT_METH_O ( MkObjectC, HandleExists, MkObjectC_HandleExists )
985OT_METH_O ( MkObjectC, HandleGet, MkObjectC_HandleGet )
986OT_METH_O ( MkObjectC, HandleGetOfType, MkObjectC_HandleGetOfType )
987OT_METH_O ( MkObjectC, HandleGetOr0, MkObjectC_HandleGetOr0 )
988OT_METH_O ( MkObjectC, IsNull, MkObjectC_IsNull )
989OT_METH_O ( MkObjectC, Log, MkObjectC_Log )
990OT_METH_O ( MkObjectC, LogLong, MkObjectC_LogLong )
991OT_METH_O ( MkObjectC, LogShort, MkObjectC_LogShort )
992OT_METH_O ( MkObjectC, LogType, MkObjectC_LogType )
993OT_METH_O ( MkObjectC, ToName, MkObjectC_ToName )
994OT_METH_O ( MkObjectC, ToNameOfClass, MkObjectC_ToNameOfClass )
995OT_METH_O ( MkObjectC, ToNameOfType, MkObjectC_ToNameOfType )
996OT_METH_O ( MkObjectC, ToString, MkObjectC_ToString )
997
998// doc-key: MkObjectC,MkSys,om_
999OT_METH_O ( MkObjectC, SysKill, MkObjectC_SysKill )
1000
1001// doc-key: MkObjectC,MkSys,omo
1002OT_METH_O ( MkObjectC, SysGetPid, MkObjectC_SysGetPid )
1003
1004// END-OBJ - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
1005
1006}
tag: nhi1-release-250425
#define OT_SELF
#define MK(n)
#define OT_SETUP_VARARGS(min, max, d)
#define OT_retObj_SET_BOL(nat)
#define OT_SETUP_NOARG(d)
#define OT_SETUP_ONEARG(d)
#define MkObjectC_MK_NULL
#define PTR2VAL(nat)
#define OT_CHECK_NI4(val)
#define OT_PKG
#define OT_METH_S(c, s, f)
#define OT_CLS_T
#define OT_FRAME_CLEANUP
#define OT_retObj_SET_HDL(nat)
#define OT_CHECK_REQUIRED(val)
#define OT_retObj_SET_None
#define OT_OBJECT_DISPOSE(obj)
#define OT_retObj_SET_I32(nat)
#define OT_retObj_SET_OBJ(nat)
#define OT_METH_O(c, s, f)
#define INCR_REF(valP)
#define OT_OBJ_T
#define NS(n)
#define OT_OBJECT_DELETE(obj)
#define VAL2STRN(val)
#define MkObjectC_ARGS
#define OT_retObj_RETURN
#define OT_retObj_SET_STRN(nat)
#define OT_GET_CALL_PROC
#define OT_CHECK__ME_REF_MkBinaryR(val)
#define OT_OBJECT_DELETE_HARD(obj)
#define OT_retObj_SET_STR(nat)
#define OBJ2VAL(nat)
#define OT_CHECK_OPTIONAL(val)
#define OT_retObj_SET_ERR(nat)
#define VAL2PTR(val)
#define OT_CHECK_NOARGS
#define MkErrorC_Check(mng, PROC)
#define OT_ProcRet
#define OtClass_ARGS
#define STRN2VAL(nat)
#define OT_CHECK_STRN(val)
#define Instances_doc
#define LogShort_doc
#define SysKill_doc
#define DbgLogC_doc
#define SysGetPid_doc
#define LogType_doc
#define SysHashSTR_doc
#define HandleDeleteByNetHdl_doc
#define SysHashI32_doc
static MK_TYP MkObjectCTT
#define MK_BASE_CLASS
#define OT_SETUP_hdl
#define ToString_doc
#define ToName_doc
#define LogC_doc
#define Log_doc
#define OT_SETUP_hdl_destr
#define HandleExists_doc
#define IsNull_doc
#define LogHEX_doc
#define GetNull_doc
#define LogLong_doc
#define Next_doc
#define HandleResolve_doc
#define DbgM_doc
#define Prev_doc
#define MkDbgDumpTmpl(...)
#define ToError_doc
#define OT_CLASS
#define OT_SETUP_hdl_static
#define DeleteCallbackCleanup_doc
#define DbgO_doc
#define HandleGet_doc
#define ToNameOfType_doc
#define HandleDelete_doc
#define OT_SETUP_hdl__null_allow
#define MkObjectToNameOfClassTmpl(hdl)
#define DbgDump_doc
#define MkObjectErrorCatchTmpl(...)
#define Delete_doc
#define DeleteCallbackSetup_doc
#define S_INIT
#define HandleGetOr0_doc
#define DbgL_doc
#define Dispose_doc
#define ErrorCatch_doc
#define DbgSTACK_doc
#define HandleGetOfType_doc
#define RefGet_doc
#define ToNameOfClass_doc
#define MkBufferAppendV(...)
#define MkBufferCreateLOCAL_T(cls, name, size)
create an new MkBufferC object as L)ocal S)torage…
#define MK_ERROR_FORMAT
#define mk_inline
#define MK_NULL_YES
flag, allow NULL
#define MK_UNUSED
mark unnused variables and functions
#define MK_NULL
The Programming-Language-Micro-Kernel (PLMK) NULL value as nil in Ruby …
MkErrorE
collection for the different error-codes …
int32_t MK_NUM
array size data-type ('num' items in array …
MK_PTRB * MK_PTR
generic pointer data-type
const MK_STRB * MK_STRN
constant string pointer data-type
MK_PTRB * MK_MNG
managed object pointer, datatype will be checked at runtime
MK_PTRB const * MK_EXP
exception object pointer
int32_t MK_HDL
4 byte int handle data-type
signed int MK_I32
4 byte integer data-type
int MK_DBG
debug-level data-type …
#define MkObjectHandleResolve(...)
#define MkObjectHandleGet(...)
static MK_HDL MkObjectHandleGetOfType(MK_OBJ const obj)
Export-Slot - returns typeHdl of the obj .
static MK_OBJ MkObjectGetNull(void)
Null-Slot - return a MkObjectC typed NULL instance …
#define MkObjectHandleDelete(...)
static MK_OBJ MkObjectPrev(MK_OBJ const obj)
get previous instance from linked-list of MkObjectS type
static MK_OBJ MkObjectNext(MK_OBJ const obj)
get next instance from linked-list of MkObjectS type
#define MkObjectInstances()
MK_HDL MkObjectHandleGetOr0(MK_OBJ const obj)
return export-hdl or 0 in not created…
bool MkObjectHandleExists(MK_OBJ const obj)
check if obj has already a handle defined…
#define MkObjectHandleDeleteByNetHdl(...)
#define MkObjectC_T
class as MkTypeDefS-class-type, useable in a class-macro as: class##_T …
#define MkObjectC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MkDbgDump(...)
#define MkDbgM(...)
#define MkDbgLogC(...)
#define MkDbgL(...)
#define MkDbgO(...)
#define MkDbgSTACK(...)
#define MkObjectLogLong(...)
#define MkObjectLogShort(...)
#define MkObjectLog(...)
#define MkLogC(...)
#define MkLogHEX(...)
#define MkObjectLogType(...)
static bool MkObjectIsNull(MK_OBJ const obj)
ckeck if the object is nil
#define MkObjectToName(...)
#define MkObjectToString(...)
#define MkObjectToError(...)
#define MkObjectToNameOfType(...)
static MK_I32 MkRefGet(MK_OBJ const obj)
get the reference-count
enum MkErrorE MkSysKill(MK_OBJN fmtobj, MK_I32 pid, MK_I32 signal)
kill syscall with rbmkkernel error plugin
enum MkErrorE MkSysGetPid(MK_OBJN fmtobj, MK_I32 *pid_out)
getpid syscall with rbmkkernel error plugin
MK_STRN MkSysHashSTR(MK_STRN key, MK_NUM length)
compute the HASH from a string …
static bool MkSysStringIsNULL(MK_STRN str)
test if string is NULL or EMPTY …
MK_I32 MkSysHashI32(MK_STRN key, MK_NUM length)
same as MkSysHashSTR but return MK_I32 …
#define MkObjectDeleteCallbackCleanup(...)
#define MkObjectDeleteCallbackSetup(...)
enum MkErrorE(* MkObjectDeleteCallF)(MK_RT mkrt, MK_OBJN const obj, MK_STRN const typeName, MK_HDL const typeHdl, MK_HDL const objHdl, MK_CBP const __data__)
static callback to delete an obj …
static MK_I32 MkRuntimeDebugGet(void)
get the MkRuntimeS::debug value …
#define MK_RT_ARGS
#define MK_RT_ARGS_ONLY
#define OT_CHECK_NIH(val)
#define OT_CHECK_CALLABLE(val)
#define OT_CLEANUP_CALLABLE(val)
#define OT_SETUP_CALLABLE(val)
#define OT_CHECK_OBJN(val, nullB)
#define OT_CHECK_EXP(val)
binary data default format …
The data-type to store and handle the error-condition …
object header …
MkTypeS - class known as typ or type is used as class-base for a Managed-Object-Technology (MOT) type...
MkSelfUnlinkF selfUnlink
"unlink" the "self" pointer from META-Kernel
MkSelfDeleteF selfDelete
"delete" the "self" pointer
MkSelfCreateF selfCreate
"create" the "self" pointer