theLink 10.0
Loading...
Searching...
No Matches
LibMqMsgque_atl.c
Go to the documentation of this file.
1
9/* LABEL-NO */
10
11#define META_FILE_NAME "MqMsgque_atl.c"
12
14
15#undef OtClass_ARGS
16#define OtClass_ARGS OBJCMD_ARGS
17
18#define OT_SETUP_hdl_static \
19 int __skip=1;\
20 /* printAry2("cmd",objc,objv); */ \
21 MK_UNUSED OT_MQ_RT_T amqrt = clientData; \
22 MK_UNUSED OT_MK_RT_T amkrt = amqrt->amkrt; \
23 MK_UNUSED MK_RT mkrt = amqrt->mkrt; \
24 MK_UNUSED MK_ERR hdl = &MkERROR;
25
26/* LABEL-END */
27
28#include <limits.h>
29#include <float.h>
30
31#include "mk_check_atl.h"
32
33#define MqSetupTmpl()
34#define MqCleanupTmpl()
35
36#define META_CONTEXT_S hdl
37
38// MARK_D ################################################################
39// -----------------------------------------------------------------------
40// documentation order
41
50
63
88
97
106
114
123
131
132// --------------------------------------------------------------------------------
133
134typedef int (
136) (
137 Tcl_Interp *interp,
138 int objc,
139 struct Tcl_Obj *const * objv
140);
141
143 const char *key;
145};
146
147MkThreadLocal bool NS(inMain) = false;
148
149// --------------------------------------------------------------------------------
150
151// BEGIN-DOC - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
152
153// doc-key: MqMsgque,EnumFunc,sco,func
154#define IdentE_FromInt_doc "MqIdentE [MqMsgque::IdentE_FromInt value:int32]"
155#define SlaveE_FromInt_doc "MqSlaveE [MqMsgque::SlaveE_FromInt value:int32]"
156#define StartE_FromInt_doc "MqStartE [MqMsgque::StartE_FromInt value:int32]"
157#define StatusIsEF_FromInt_doc "MqStatusIsEF [MqMsgque::StatusIsEF_FromInt value:int32]"
158#define WaitOnEventE_FromInt_doc "MqWaitOnEventE [MqMsgque::WaitOnEventE_FromInt value:int32]"
159
160// doc-key: MqMsgque,EnumFunc,sm_,func
161#define IdentE_ToInt_doc "int32 [MqMsgque::IdentE_ToInt value:MqIdentE]"
162#define IdentE_ToString_doc "string [MqMsgque::IdentE_ToString value:MqIdentE]"
163#define SlaveE_ToInt_doc "int32 [MqMsgque::SlaveE_ToInt value:MqSlaveE]"
164#define SlaveE_ToString_doc "string [MqMsgque::SlaveE_ToString value:MqSlaveE]"
165#define StartE_ToInt_doc "int32 [MqMsgque::StartE_ToInt value:MqStartE]"
166#define StartE_ToString_doc "string [MqMsgque::StartE_ToString value:MqStartE]"
167#define StatusIsEF_ToInt_doc "int32 [MqMsgque::StatusIsEF_ToInt value:MqStatusIsEF]"
168#define StatusIsEF_ToString_doc "string [MqMsgque::StatusIsEF_ToString value:MqStatusIsEF]"
169#define WaitOnEventE_ToInt_doc "int32 [MqMsgque::WaitOnEventE_ToInt value:MqWaitOnEventE]"
170#define WaitOnEventE_ToString_doc "string [MqMsgque::WaitOnEventE_ToString value:MqWaitOnEventE]"
171
172// doc-key: MqMsgque,MqHelp,sm_,func
173#define Help_doc "string [MqMsgque::Help tool:string]"
174#define HelpMsgque_doc "string [MqMsgque::HelpMsgque]"
175
176// doc-key: MqMsgque,MqInit,sm_,func
177#define InitGetArg0_doc "MkBufferListC [MqMsgque::InitGetArg0]"
178#define InitResetArg0_doc "MkBufferListC [MqMsgque::InitResetArg0]"
179#define InitSetArg0_doc "MqMsgque::InitSetArg0 ?bfl:MkBufferListC...=NULL?"
180
181// doc-key: MqMsgque,MqMain,sm_,func
182#define Main_doc "MqMsgque::Main code:..."
183
184// doc-key: MqMsgque,Setup,sm_,func
185#define Cleanup_doc "MqMsgque::Cleanup"
186#define Setup_doc "MqMsgque::Setup"
187
188// END-DOC - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
189
190/*****************************************************************************/
191/* */
192/* enum */
193/* */
194/*****************************************************************************/
195
263// ===============================================================================================
264
265// BEGIN-Enum-ToString - created by 'atl_MqC.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
266
271
273{
274 OT_OBJ_T tmpO = Tcl_NewObj();
275 if (mk_bit_compare(type,MQ_FACTORY_NEW_INIT )) ot_enum_append(tmpO,"INIT" ) ;
276 if (mk_bit_compare(type,MQ_FACTORY_NEW_CHILD )) ot_enum_append(tmpO,"CHILD" ) ;
277 if (mk_bit_compare(type,MQ_FACTORY_NEW_SLAVE )) ot_enum_append(tmpO,"SLAVE" ) ;
278 if (mk_bit_compare(type,MQ_FACTORY_NEW_FORK )) ot_enum_append(tmpO,"FORK" ) ;
279 if (mk_bit_compare(type,MQ_FACTORY_NEW_THREAD)) ot_enum_append(tmpO,"THREAD") ;
280 if (mk_bit_compare(type,MQ_FACTORY_NEW_FILTER)) ot_enum_append(tmpO,"FILTER") ;
281 return tmpO;
282}
283
285{
286 switch (type) {
287 case MQ_HANDSHAKE_START : return ot_fixstrobj("START") ;
288 case MQ_HANDSHAKE_OK : return ot_fixstrobj("OK" ) ;
289 case MQ_HANDSHAKE_ERROR : return ot_fixstrobj("ERROR") ;
290 }
291 return ot_fixstrobj("NOTHING");
292}
293
295{
296 switch (type) {
297 case MQ_IDENT_PREFIX : return ot_fixstrobj("PREFIX" ) ;
298 case MQ_IDENT_FACTORY : return ot_fixstrobj("FACTORY") ;
299 }
300 return ot_fixstrobj("NOTHING");
301}
302
304{
305 switch (type) {
306 case MQ_IO_PIPE : return ot_fixstrobj("PIPE") ;
307 case MQ_IO_UDS : return ot_fixstrobj("UDS" ) ;
308 case MQ_IO_TCP : return ot_fixstrobj("TCP" ) ;
309 case MQ_IO_INIT : return ot_fixstrobj("INIT") ;
310 case MQ_IO_LOOP : return ot_fixstrobj("LOOP") ;
311 }
312 return ot_fixstrobj("NOTHING");
313}
314
316{
317 switch (type) {
318 case MQ_SLAVE_LOOPBACK : return ot_fixstrobj("LOOPBACK") ;
319 case MQ_SLAVE_FILTER : return ot_fixstrobj("FILTER" ) ;
320 case MQ_SLAVE_USER : return ot_fixstrobj("USER" ) ;
321 case MQ_SLAVE_MAX : return ot_fixstrobj("MAX" ) ;
322 }
323 return ot_fixstrobj("NOTHING");
324}
325
327{
328 switch (type) {
329 case MQ_START_DEFAULT : return ot_fixstrobj("DEFAULT") ;
330 case MQ_START_FORK : return ot_fixstrobj("FORK" ) ;
331 case MQ_START_THREAD : return ot_fixstrobj("THREAD" ) ;
332 case MQ_START_SPAWN : return ot_fixstrobj("SPAWN" ) ;
333 }
334 return ot_fixstrobj("NOTHING");
335}
336
338{
339 if (type == MQ_STATUS_IS_INITIAL) {
340 return ot_fixstrobj("INITIAL");
341 } else {
342 OT_OBJ_T tmpO = Tcl_NewObj();
343 if (mk_bit_compare(type,MQ_STATUS_IS_DUP )) ot_enum_append(tmpO,"DUP" ) ;
344 if (mk_bit_compare(type,MQ_STATUS_IS_THREAD )) ot_enum_append(tmpO,"THREAD" ) ;
345 if (mk_bit_compare(type,MQ_STATUS_IS_FORK )) ot_enum_append(tmpO,"FORK" ) ;
346 if (mk_bit_compare(type,MQ_STATUS_IS_SPAWN )) ot_enum_append(tmpO,"SPAWN" ) ;
347 return tmpO;
348 }
349}
350
352{
353 switch (type) {
354 case MQ_TRANS_TYPE_WAIT : return ot_fixstrobj("WAIT" ) ;
355 case MQ_TRANS_TYPE_SUB : return ot_fixstrobj("SUB" ) ;
356 case MQ_TRANS_TYPE_CB : return ot_fixstrobj("CB" ) ;
357 case MQ_TRANS_TYPE_TRANS : return ot_fixstrobj("TRANS") ;
358 case MQ_TRANS_TYPE_NO : return ot_fixstrobj("NO" ) ;
359 }
360 return ot_fixstrobj("NOTHING");
361}
362
364{
365 switch (type) {
366 case MQ_WAIT_NO : return ot_fixstrobj("NO" ) ;
367 case MQ_WAIT_ONCE : return ot_fixstrobj("ONCE" ) ;
368 case MQ_WAIT_OWN : return ot_fixstrobj("OWN" ) ;
369 case MQ_WAIT_FOREVER : return ot_fixstrobj("FOREVER") ;
370 }
371 return ot_fixstrobj("NOTHING");
372}
375
376// END-Enum-ToString - created by 'atl_MqC.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
377
378// BEGIN-enum - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
379
384
385int MQ(Get_MqIdentE_FromObj) (MK_RT_ARGS OT_ENV_T interp, OT_OBJ_T enumE, enum MqIdentE *ret) {
386 const static struct LookupEnumE keys[] = {
387 { "PREFIX" , MQ_IDENT_PREFIX },
388 { "FACTORY" , MQ_IDENT_FACTORY },
389 { "IDENT_PREFIX" , MQ_IDENT_PREFIX },
390 { "IDENT_FACTORY" , MQ_IDENT_FACTORY },
391 { "MQ_IDENT_PREFIX" , MQ_IDENT_PREFIX },
392 { "MQ_IDENT_FACTORY" , MQ_IDENT_FACTORY },
393 { NULL , 0 },
394 };
395
396 int index;
397 check_LNG(Tcl_GetIndexFromObjStruct (interp, enumE, &keys,
398 sizeof(struct LookupClassS), "enum", TCL_EXACT, &index)) return TCL_ERROR;
399 *ret = keys[index].val;
400 return TCL_OK;
401}
402
403int MQ(Get_MqSlaveE_FromObj) (MK_RT_ARGS OT_ENV_T interp, OT_OBJ_T enumE, enum MqSlaveE *ret) {
404 const static struct LookupEnumE keys[] = {
405 { "MAX" , MQ_SLAVE_MAX },
406 { "USER" , MQ_SLAVE_USER },
407 { "OTHER" , MQ_SLAVE_OTHER },
408 { "MASTER" , MQ_SLAVE_MASTER },
409 { "FILTER" , MQ_SLAVE_FILTER },
410 { "LOOPBACK" , MQ_SLAVE_LOOPBACK },
411 { "SLAVE_MAX" , MQ_SLAVE_MAX },
412 { "SLAVE_USER" , MQ_SLAVE_USER },
413 { "SLAVE_OTHER" , MQ_SLAVE_OTHER },
414 { "SLAVE_FILTER" , MQ_SLAVE_FILTER },
415 { "SLAVE_MASTER" , MQ_SLAVE_MASTER },
416 { "MQ_SLAVE_MAX" , MQ_SLAVE_MAX },
417 { "MQ_SLAVE_USER" , MQ_SLAVE_USER },
418 { "MQ_SLAVE_OTHER" , MQ_SLAVE_OTHER },
419 { "SLAVE_LOOPBACK" , MQ_SLAVE_LOOPBACK },
420 { "MQ_SLAVE_FILTER" , MQ_SLAVE_FILTER },
421 { "MQ_SLAVE_MASTER" , MQ_SLAVE_MASTER },
422 { "MQ_SLAVE_LOOPBACK" , MQ_SLAVE_LOOPBACK },
423 { NULL , 0 },
424 };
425
426 int index;
427 check_LNG(Tcl_GetIndexFromObjStruct (interp, enumE, &keys,
428 sizeof(struct LookupClassS), "enum", TCL_EXACT, &index)) return TCL_ERROR;
429 *ret = keys[index].val;
430 return TCL_OK;
431}
432
433int MQ(Get_MqStartE_FromObj) (MK_RT_ARGS OT_ENV_T interp, OT_OBJ_T enumE, enum MqStartE *ret) {
434 const static struct LookupEnumE keys[] = {
435 { "FORK" , MQ_START_FORK },
436 { "SPAWN" , MQ_START_SPAWN },
437 { "THREAD" , MQ_START_THREAD },
438 { "DEFAULT" , MQ_START_DEFAULT },
439 { "START_FORK" , MQ_START_FORK },
440 { "START_SPAWN" , MQ_START_SPAWN },
441 { "START_THREAD" , MQ_START_THREAD },
442 { "MQ_START_FORK" , MQ_START_FORK },
443 { "START_DEFAULT" , MQ_START_DEFAULT },
444 { "MQ_START_SPAWN" , MQ_START_SPAWN },
445 { "MQ_START_THREAD" , MQ_START_THREAD },
446 { "MQ_START_DEFAULT" , MQ_START_DEFAULT },
447 { NULL , 0 },
448 };
449
450 int index;
451 check_LNG(Tcl_GetIndexFromObjStruct (interp, enumE, &keys,
452 sizeof(struct LookupClassS), "enum", TCL_EXACT, &index)) return TCL_ERROR;
453 *ret = keys[index].val;
454 return TCL_OK;
455}
456
457int MQ(Get_MqStatusIsEF_FromObj) (MK_RT_ARGS OT_ENV_T interp, OT_OBJ_T enumE, enum MqStatusIsEF *ret) {
458 const static struct LookupEnumE keys[] = {
459 { "DUP" , MQ_STATUS_IS_DUP },
460 { "FORK" , MQ_STATUS_IS_FORK },
461 { "SPAWN" , MQ_STATUS_IS_SPAWN },
462 { "THREAD" , MQ_STATUS_IS_THREAD },
463 { "IS_DUP" , MQ_STATUS_IS_DUP },
464 { "INITIAL" , MQ_STATUS_IS_INITIAL },
465 { "IS_FORK" , MQ_STATUS_IS_FORK },
466 { "IS_SPAWN" , MQ_STATUS_IS_SPAWN },
467 { "IS_THREAD" , MQ_STATUS_IS_THREAD },
468 { "IS_INITIAL" , MQ_STATUS_IS_INITIAL },
469 { "STATUS_IS_DUP" , MQ_STATUS_IS_DUP },
470 { "STATUS_IS_FORK" , MQ_STATUS_IS_FORK },
471 { "STATUS_IS_SPAWN" , MQ_STATUS_IS_SPAWN },
472 { "MQ_STATUS_IS_DUP" , MQ_STATUS_IS_DUP },
473 { "STATUS_IS_THREAD" , MQ_STATUS_IS_THREAD },
474 { "STATUS_IS_INITIAL" , MQ_STATUS_IS_INITIAL },
475 { "MQ_STATUS_IS_FORK" , MQ_STATUS_IS_FORK },
476 { "MQ_STATUS_IS_SPAWN" , MQ_STATUS_IS_SPAWN },
477 { "MQ_STATUS_IS_THREAD" , MQ_STATUS_IS_THREAD },
478 { "MQ_STATUS_IS_INITIAL" , MQ_STATUS_IS_INITIAL },
479 { NULL , 0 },
480 };
481
482 int index;
483 check_LNG(MK(EnumFlagWorker)(MK_RT_CALL interp,keys,enumE,&index)) return TCL_ERROR;
484 *ret = (enum MqStatusIsEF) index;
485 return TCL_OK;
486}
487
488int MQ(Get_MqWaitOnEventE_FromObj) (MK_RT_ARGS OT_ENV_T interp, OT_OBJ_T enumE, enum MqWaitOnEventE *ret) {
489 const static struct LookupEnumE keys[] = {
490 { "NO" , MQ_WAIT_NO },
491 { "OWN" , MQ_WAIT_OWN },
492 { "ONCE" , MQ_WAIT_ONCE },
493 { "FOREVER" , MQ_WAIT_FOREVER },
494 { "WAIT_NO" , MQ_WAIT_NO },
495 { "WAIT_OWN" , MQ_WAIT_OWN },
496 { "WAIT_ONCE" , MQ_WAIT_ONCE },
497 { "MQ_WAIT_NO" , MQ_WAIT_NO },
498 { "MQ_WAIT_OWN" , MQ_WAIT_OWN },
499 { "WAIT_FOREVER" , MQ_WAIT_FOREVER },
500 { "MQ_WAIT_ONCE" , MQ_WAIT_ONCE },
501 { "MQ_WAIT_FOREVER" , MQ_WAIT_FOREVER },
502 { NULL , 0 },
503 };
504
505 int index;
506 check_LNG(Tcl_GetIndexFromObjStruct (interp, enumE, &keys,
507 sizeof(struct LookupClassS), "enum", TCL_EXACT, &index)) return TCL_ERROR;
508 *ret = keys[index].val;
509 return TCL_OK;
510}
513
514// END-enum - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
515
516/*****************************************************************************/
517/* */
518/* Check */
519/* */
520/*****************************************************************************/
521
523
525{
527 if ((*skipP) >= objc) {
528 WrongNumArgs(hdl,(*skipP), objc, -999, +999, arg);
529 goto error;
530 }
531 OT_OBJ_T classO = OT_LNG_OBJV((*skipP)++);
532
533 if (MoxClsIsN(classO)) {
534 OT_REF_INCR(classO); // OT_REF_DECR in: sFactoryDataFree
535 *constrP = classO;
536 } else {
537 WrongTypeOfArgError("Class",VAL2STR(classO));
538 }
539
540 return MK_OK;
541error:
542 return MkErrorStack_0E();
543}
544
545/*****************************************************************************/
546/* */
547/* subcommands */
548/* */
549/*****************************************************************************/
550
553
555static OT_ProcRet NS(MqMsgque_Main) (OtClass_ARGS)
556{
558 WNA(1,1,"code")
559
560 if (Tcl_GetVar2Ex(interp,"MQ_STARTUP_IS_THREAD",NULL,TCL_GLOBAL_ONLY) == NULL) {
561 NS(inMain) = true;
562 int ret = Tcl_EvalObjEx (interp, objv[__skip], TCL_EVAL_GLOBAL);
563 NS(inMain) = false;
564 check_LNG (ret) return TCL_ERROR;
565 }
566 return TCL_OK;
567}
568
570
571// BEGIN-MqMsgque - created by 'atl_MqC.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
572
576
577// doc-key: MqMsgque,MqMsgque-Enum,sco
578
580static OT_ProcRet NS(MqMsgque_IdentE_FromInt) (OtClass_ARGS) {
583 MK_I32 value = 0;
586 enum MqIdentE value_out;
588 OT_retObj_SET(OT_NEW_Mq_enum_OBJ(IdentE,value_out));
589 goto end;
590 error:
592 end:
594}
595
597static OT_ProcRet NS(MqMsgque_SlaveE_FromInt) (OtClass_ARGS) {
600 MK_I32 value = 0;
603 enum MqSlaveE value_out;
605 OT_retObj_SET(OT_NEW_Mq_enum_OBJ(SlaveE,value_out));
606 goto end;
607 error:
609 end:
611}
612
614static OT_ProcRet NS(MqMsgque_StartE_FromInt) (OtClass_ARGS) {
617 MK_I32 value = 0;
620 enum MqStartE value_out;
622 OT_retObj_SET(OT_NEW_Mq_enum_OBJ(StartE,value_out));
623 goto end;
624 error:
626 end:
628}
629
631static OT_ProcRet NS(MqMsgque_StatusIsEF_FromInt) (OtClass_ARGS) {
634 MK_I32 value = 0;
637 enum MqStatusIsEF value_out;
639 OT_retObj_SET(OT_NEW_Mq_enum_OBJ(StatusIsEF,value_out));
640 goto end;
641 error:
643 end:
645}
646
648static OT_ProcRet NS(MqMsgque_WaitOnEventE_FromInt) (OtClass_ARGS) {
651 MK_I32 value = 0;
654 enum MqWaitOnEventE value_out;
656 OT_retObj_SET(OT_NEW_Mq_enum_OBJ(WaitOnEventE,value_out));
657 goto end;
658 error:
660 end:
662}
663
664// doc-key: MqMsgque,MqMsgque-Enum,sm_
665
667static OT_ProcRet NS(MqMsgque_IdentE_ToInt) (OtClass_ARGS) {
670 enum MqIdentE value = 0;
674 goto end;
675 error:
677 end:
679}
680
682static OT_ProcRet NS(MqMsgque_IdentE_ToString) (OtClass_ARGS) {
685 enum MqIdentE value = 0;
689 goto end;
690 error:
692 end:
694}
695
697static OT_ProcRet NS(MqMsgque_SlaveE_ToInt) (OtClass_ARGS) {
700 enum MqSlaveE value = 0;
704 goto end;
705 error:
707 end:
709}
710
712static OT_ProcRet NS(MqMsgque_SlaveE_ToString) (OtClass_ARGS) {
715 enum MqSlaveE value = 0;
719 goto end;
720 error:
722 end:
724}
725
727static OT_ProcRet NS(MqMsgque_StartE_ToInt) (OtClass_ARGS) {
730 enum MqStartE value = 0;
734 goto end;
735 error:
737 end:
739}
740
742static OT_ProcRet NS(MqMsgque_StartE_ToString) (OtClass_ARGS) {
745 enum MqStartE value = 0;
749 goto end;
750 error:
752 end:
754}
755
757static OT_ProcRet NS(MqMsgque_StatusIsEF_ToInt) (OtClass_ARGS) {
760 enum MqStatusIsEF value = 0;
764 goto end;
765 error:
767 end:
769}
770
772static OT_ProcRet NS(MqMsgque_StatusIsEF_ToString) (OtClass_ARGS) {
775 enum MqStatusIsEF value = 0;
779 goto end;
780 error:
782 end:
784}
785
787static OT_ProcRet NS(MqMsgque_WaitOnEventE_ToInt) (OtClass_ARGS) {
790 enum MqWaitOnEventE value = 0;
794 goto end;
795 error:
797 end:
799}
800
802static OT_ProcRet NS(MqMsgque_WaitOnEventE_ToString) (OtClass_ARGS) {
805 enum MqWaitOnEventE value = 0;
809 goto end;
810 error:
812 end:
814}
815
817// MqMsgque_Enum_ATL_API
818
822
823// doc-key: MqMsgque,MqMsgque-Help,sm_
824
826static OT_ProcRet NS(MqMsgque_Help) (OtClass_ARGS) {
829 MK_STRN tool = 0;
833 goto end;
834 error:
836 end:
838}
839
841static OT_ProcRet NS(MqMsgque_HelpMsgque) (OtClass_ARGS) {
846 goto end;
847 error:
849 end:
851}
852
854// MqMsgque_Help_ATL_API
855
859
860// doc-key: MqMsgque,MqMsgque-Init,sm_
861
863static OT_ProcRet NS(MqMsgque_InitGetArg0) (OtClass_ARGS) {
868 goto end;
869 error:
871 end:
873}
874
876static OT_ProcRet NS(MqMsgque_InitResetArg0) (OtClass_ARGS) {
881 goto end;
882 error:
884 end:
886}
887
889static OT_ProcRet NS(MqMsgque_InitSetArg0) (OtClass_ARGS) {
895 MqInitSetArg0 (bfl);
897 goto end;
898 error:
900 end:
902}
903
905// MqMsgque_Init_ATL_API
906
910
911// doc-key: MqMsgque,MqMsgque-Main,sm_
912
914static OT_ProcRet NS(MqMsgque_Main) (OtClass_ARGS) ; // skip template-required
915
917// MqMsgque_Main_ATL_API
918
922
923// doc-key: MqMsgque,MqMsgque-Setup,sm_
924
926static OT_ProcRet NS(MqMsgque_Cleanup) (OtClass_ARGS) {
930 MqCleanupTmpl ();
932 goto end;
933 error:
935 end:
937}
938
940static OT_ProcRet NS(MqMsgque_Setup) (OtClass_ARGS) {
944 MqSetupTmpl ();
946 goto end;
947 error:
949 end:
951}
952
954// MqMsgque_Setup_ATL_API
955
956// END-MqMsgque - created by 'atl_MqC.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
957
958
959// ---------------------------------------------------------------------------------------
960
961__attribute__((unused)) const static OtObjProcDefS NS(sOtClassDef)[] = {
962 // BEGIN-CLASS - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
963
964 // doc-key: MqMsgque,EnumFunc,sco
965 { "::MqMsgque::IdentE_FromInt" , NS(MqMsgque_IdentE_FromInt) },
966 { "::MqMsgque::SlaveE_FromInt" , NS(MqMsgque_SlaveE_FromInt) },
967 { "::MqMsgque::StartE_FromInt" , NS(MqMsgque_StartE_FromInt) },
968 { "::MqMsgque::StatusIsEF_FromInt" , NS(MqMsgque_StatusIsEF_FromInt) },
969 { "::MqMsgque::WaitOnEventE_FromInt" , NS(MqMsgque_WaitOnEventE_FromInt) },
970
971 // doc-key: MqMsgque,EnumFunc,sm_
972 { "::MqMsgque::IdentE_ToInt" , NS(MqMsgque_IdentE_ToInt) },
973 { "::MqMsgque::IdentE_ToString" , NS(MqMsgque_IdentE_ToString) },
974 { "::MqMsgque::SlaveE_ToInt" , NS(MqMsgque_SlaveE_ToInt) },
975 { "::MqMsgque::SlaveE_ToString" , NS(MqMsgque_SlaveE_ToString) },
976 { "::MqMsgque::StartE_ToInt" , NS(MqMsgque_StartE_ToInt) },
977 { "::MqMsgque::StartE_ToString" , NS(MqMsgque_StartE_ToString) },
978 { "::MqMsgque::StatusIsEF_ToInt" , NS(MqMsgque_StatusIsEF_ToInt) },
979 { "::MqMsgque::StatusIsEF_ToString" , NS(MqMsgque_StatusIsEF_ToString) },
980 { "::MqMsgque::WaitOnEventE_ToInt" , NS(MqMsgque_WaitOnEventE_ToInt) },
981 { "::MqMsgque::WaitOnEventE_ToString" , NS(MqMsgque_WaitOnEventE_ToString) },
982
983 // doc-key: MqMsgque,MqHelp,sm_
984 { "::MqMsgque::Help" , NS(MqMsgque_Help) },
985 { "::MqMsgque::HelpMsgque" , NS(MqMsgque_HelpMsgque) },
986
987 // doc-key: MqMsgque,MqInit,sm_
988 { "::MqMsgque::InitGetArg0" , NS(MqMsgque_InitGetArg0) },
989 { "::MqMsgque::InitResetArg0" , NS(MqMsgque_InitResetArg0) },
990 { "::MqMsgque::InitSetArg0" , NS(MqMsgque_InitSetArg0) },
991
992 // doc-key: MqMsgque,MqMain,sm_
993 { "::MqMsgque::Main" , NS(MqMsgque_Main) },
994
995 // doc-key: MqMsgque,Setup,sm_
996 { "::MqMsgque::Cleanup" , NS(MqMsgque_Cleanup) },
997 { "::MqMsgque::Setup" , NS(MqMsgque_Setup) },
998
999 // END-CLASS - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
1000 { NULL }
1001};
1002
1003// ---------------------------------------------------------------------------------------
1004// not used.
1005
1006__attribute__((unused)) const static OtObjProcDefS NS(sInstanceDef)[] = {
1007 // BEGIN-OBJ - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
1008
1009 // → no data
1010
1011 // END-OBJ - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
1012 { NULL }
1013};
1014
1015// ---------------------------------------------------------------------------------------
1016
1017static Tcl_ThreadCreateType
1018NS(ThreadMain) ( ClientData clientData ) {
1019 MqSysServerThreadMain(clientData);
1020 TCL_THREAD_CREATE_RETURN;
1021}
1022
1023// MqSysServerThreadF
1024static enum MkErrorE NS(MqSysServerThreadCB) (
1026 MQ_CTX const ctx,
1027 struct MqSysServerThreadMainS * const argP,
1028 MK_STRN name,
1029 int state,
1030 struct MkIdS * idP
1031) {
1032 Tcl_ThreadId id;
1033
1034 if (idP->ioIsPipe) {
1035 check_LNG( Tcl_CreateThread(&id, NS(ThreadMain), argP, TCL_THREAD_STACK_DEFAULT,TCL_THREAD_JOINABLE)) {
1036 return MkErrorSetV_2M(ctx,"[ThreadError] start pipe thread '%s' failed", name);
1037 }
1038
1039 idP->type = MK_ID_THREAD;
1040 idP->val = (MK_IDNT) id;
1041 idP->setByExtern = true;
1042
1043 } else {
1044 check_LNG( Tcl_CreateThread(&id, NS(ThreadMain), argP, TCL_THREAD_STACK_DEFAULT,0)) {
1045 return MkErrorSetV_2M(ctx,"[ThreadError] start server thread '%s' failed", name);
1046 }
1047
1048 idP->type = MK_ID_THREAD;
1049 idP->val = (MK_IDNT) 0x1;
1050 }
1051
1052 return MkErrorStack_1M_Check(ctx);
1053}
1054
1055void NS(MqMsgque_ns_delete)(ClientData clientData)
1056{
1057 OT_MQ_RT_T amqrt = clientData;
1058 assert(amqrt != NULL);
1059 MkRtSetup_RT(amqrt->mkrt);
1060
1061#ifdef OT_DEBUG_NAMESPACE_DELETE
1062 OT_DEBUG_NAMESPACE_DELETE(MK_COLOR_YELLOW,"::MqMsgque with amqrt<%p>","MQ",amqrt);
1063#endif
1064 OT_ENV_T interp = amqrt->interp;
1065
1066 // BEGIN-CLASS-delete-2 - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
1067
1068 OT_NS_T ns;
1069 ns = Tcl_FindNamespace(interp,"::MqDumpC",NULL,TCL_GLOBAL_ONLY);
1070 if (ns) Tcl_DeleteNamespace(ns);
1071 ns = Tcl_FindNamespace(interp,"::MqContextC",NULL,TCL_GLOBAL_ONLY);
1072 if (ns) Tcl_DeleteNamespace(ns);
1073 ns = Tcl_FindNamespace(interp,"::MqFactoryC",NULL,TCL_GLOBAL_ONLY);
1074 if (ns) Tcl_DeleteNamespace(ns);
1075
1076 // END-CLASS-delete-2 - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
1077
1078 #define AtlRtFree(tok) if (amqrt->tok) { Tcl_DecrRefCount(amqrt->tok); amqrt->tok = NULL; }
1079 #define regTclObj2(t,v) AtlRtFree(t)
1080 #define regTclObj(t) AtlRtFree(t)
1081 #define regTclCmd(t) AtlRtFree(t)
1083 #undef regTclCmd
1084 #undef regTclObj
1085 #undef regTclObj2
1086
1087 // BEGIN-CLASS-delete - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
1088
1089 if (amqrt->AtlMqDumpC) Tcl_DecrRefCount(amqrt->AtlMqDumpC) ;
1090 if (amqrt->AtlMqDumpC_MK_NULL) Tcl_DecrRefCount(amqrt->AtlMqDumpC_MK_NULL) ;
1091 if (amqrt->AtlMqContextC) Tcl_DecrRefCount(amqrt->AtlMqContextC) ;
1092 if (amqrt->AtlMqContextC_MK_NULL) Tcl_DecrRefCount(amqrt->AtlMqContextC_MK_NULL) ;
1093 if (amqrt->AtlMqFactoryC) Tcl_DecrRefCount(amqrt->AtlMqFactoryC) ;
1094 if (amqrt->AtlMqFactoryC_MK_NULL) Tcl_DecrRefCount(amqrt->AtlMqFactoryC_MK_NULL) ;
1095
1096 // END-CLASS-delete - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
1097
1098 amqrt->signature = 0x0;
1099}
1100
1102
1110OT_ATL_EXTERN int
1111Atlmqmsgque_Init (
1112 Tcl_Interp * interp
1113)
1114{
1115 // check for the right tcl version
1116 if (Tcl_InitStubs (interp, "8.5", 0) == NULL) {
1117 return TCL_ERROR;
1118 }
1119
1120//colorYELLOW("interp<%p>", interp);
1121
1122 // setup libmqmsgque
1123 MqSetup();
1126
1127 // announce my package
1128 check_LNG (Tcl_PkgProvide (interp, "atlmqmsgque", META_VERSION)) return TCL_ERROR;
1129
1130 // pkg_mkIndex hack → only "Tcl_PkgProvide" is required
1131 if (Tcl_GetVar(interp,"::tcl::newPkgs", TCL_GLOBAL_ONLY) != NULL) return TCL_OK;
1132
1133 // dependency.
1134 OT_MK_RT_T amkrt = NULL;
1135 MK_STRN ver = Tcl_PkgRequireEx(interp, "atlmkkernel", META_VERSION, 1, (ClientData*) &amkrt);
1136 check_NULL(ver) return TCL_ERROR;
1137
1138 // create local runtime
1139 OT_MQ_RT_T amqrt = &amqrtR;
1140 amqrt->amkrt = amkrt;
1141 if (amqrt->signature && amqrt->signature != OT_MQ_RT_SIG) {
1142 Tcl_SetErrorCode(interp, "ATLMQ", "INIT", "SIGNATURE", "INVALID", NULL);
1143 Tcl_SetResult(interp,"error: ATLMQ setup failed with INVALID signature", TCL_STATIC);
1144 return TCL_ERROR;
1145 } else {
1146 amqrt->signature = OT_MQ_RT_SIG;
1147 }
1148 if (amqrt->interp && amqrt->interp != interp) {
1149 Tcl_SetErrorCode(interp, "ATLMQ", "INIT", "INTERPRETER", "INVALID", NULL);
1150 Tcl_SetResult(interp,"error: ATLMQ setup failed with INVALID interpreter", TCL_STATIC);
1151 return TCL_ERROR;
1152 } else {
1153 amqrt->interp = interp;
1154 }
1155 if (amqrt->mkrt && amqrt->mkrt != MK_RT_PTR) {
1156 Tcl_SetErrorCode(interp, "ATLMQ", "INIT", "MK_RT", "INVALID", NULL);
1157 Tcl_SetResult(interp,"error: ATLMQ setup failed with INVALID MkRuntimeS", TCL_STATIC);
1158 return TCL_ERROR;
1159 } else {
1160 amqrt->mkrt = MK_RT_PTR;
1161 }
1162 if (amqrt->mqrt && amqrt->mqrt != MQ_RT_PTR) {
1163 Tcl_SetErrorCode(interp, "ATLMQ", "INIT", "MQ_RT", "INVALID", NULL);
1164 Tcl_SetResult(interp,"error: ATLMQ setup failed with INVALID MqRuntimeS", TCL_STATIC);
1165 return TCL_ERROR;
1166 } else {
1167 amqrt->mqrt = MQ_RT_PTR;
1168 }
1169
1170 // cleanup "access" objects
1171 #define regTclObj2(t,v) if (amqrt->t) OT_REF_DECR(amqrt->t)
1172 #define regTclObj(t) regTclObj2(t,#t)
1173 #define regTclCmd(t) regTclObj2(t,#t)
1175 #undef regTclCmd
1176 #undef regTclObj
1177 #undef regTclObj2
1178
1179 // register "access" objects
1180 #define regTclObj2(t,v) amqrt->t = amqrt->t ? amqrt->t : ({ OT_OBJ_T val=STR2VAL(v); OT_REF_INCR(val); val;})
1181 #define regTclObj(t) regTclObj2(t,#t)
1182 #define regTclCmd(t) regTclObj2(t,#t)
1184 #undef regTclCmd
1185 #undef regTclObj
1186 #undef regTclObj2
1187
1188 // create ::MqMsgque
1189 OT_NS_T ns = Tcl_FindNamespace(interp,"::MqMsgque",NULL,TCL_GLOBAL_ONLY);
1190 if (ns == NULL) {
1191 ns = Tcl_CreateNamespace(interp,"::MqMsgque",amqrt,NS(MqMsgque_ns_delete));
1192 if (ns == NULL) return TCL_ERROR;
1193 }
1194
1195 // add PACKAGE commands
1196 check_LNG( MK(FillNamespace) (interp,MQ(sOtClassDef),amqrt)) return TCL_ERROR;
1197
1198 // BEGIN-CLASS-call-init - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
1199
1200 check_LNG( NS(pMqFactoryC_Init) (OT_MQ_CALL ns) ) return TCL_ERROR;
1201 check_LNG( NS(pMqContextC_Init) (OT_MQ_CALL ns) ) return TCL_ERROR;
1202 check_LNG( NS(pMqDumpC_Init) (OT_MQ_CALL ns) ) return TCL_ERROR;
1203
1204 // END-CLASS-call-init - created by 'atl_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
1205
1206 // init NULL object… on EVERY thread
1207 NS(inMain) = false;
1208
1209 // every new thread source the script
1210 // "package require atlmqmsgque" is calling "Atlmqmsgque_Init"
1211 // → check if we on "thread" : NULL=initial, POINTER=thread
1212 Tcl_Obj *MQ_STARTUP_IS_THREAD = Tcl_GetVar2Ex(interp,"MQ_STARTUP_IS_THREAD",NULL,TCL_GLOBAL_ONLY);
1213
1214 // only ONCE on INITIAL setup
1215 if (MQ_STARTUP_IS_THREAD == NULL) {
1216
1217 // setup MkInitGetArg0
1218 if (MqInitGetArg0() == NULL && Tcl_GetNameOfExecutable() != NULL) {
1219 Tcl_Eval(interp, "dict get [info frame 1] file");
1220 MqInitSetArg0VA(Tcl_GetNameOfExecutable(), Tcl_GetStringResult(interp), NULL);
1221 }
1222
1223 // create the default-factory
1224 check_LNG (NS(MqFactoryC_Setup) (MK_RT_CALL interp)) return TCL_ERROR;
1225 }
1226
1227 MqLal.MqSysServerThreadCB = NS(MqSysServerThreadCB);
1228
1229 return TCL_OK;
1230}
1231
1232OT_ATL_EXTERN int
1233Atlmqmsgque_Unload ( OT_ENV_T interp, int flags ) {
1234 OT_NS_T ns = Tcl_FindNamespace(interp,"::MqMsgque",NULL,TCL_GLOBAL_ONLY);
1235 if (ns) Tcl_DeleteNamespace(ns);
1236
1237 MqCleanup();
1238
1239 return TCL_OK;
1240}
#define check_NULL(code)
#define MK(n)
#define OT_SETUP_VARARGS(min, max, d)
#define OT_SETUP_NOARG(d)
#define OT_SETUP_ONEARG(d)
#define OT_DEBUG_NAMESPACE_DELETE(...)
#define SETUP_moxrt
MOX_ENV_T OT_ENV_T
#define OT_CHECK_NI4(val)
MOX_NS_T OT_NS_T
#define OT_retObj_SET_Error
#define ot_enum_append(_o, _s)
#define OT_CHECK_REQUIRED(val)
#define OT_retObj_SET_None
#define OT_retObj_SET_I32(nat)
#define OT_LNG_OBJV(__skip)
#define OT_Check_ARGS
#define WNA(min, max, txt)
#define OT_retObj_SET_BFL(nat)
#define OT_CHECK_ENUM(ename, val)
#define VAL2STR(val)
#define ot_fixstrobj(_s)
#define OT_retObj_RETURN
#define check_LNG(code)
#define OT_retObj_SET_STR(nat)
#define OT_CHECK_OPTIONAL(val)
#define OT_retObj_SET(val)
#define OT_REF_INCR(_obj)
#define OT_CHECK_NOARGS
#define MkErrorC_Check(mng, PROC)
#define OT_ProcRet
#define OT_ATL_EXTERN
#define OT_CHECK_STRN(val)
MOX_OBJ_T OT_OBJ_T
int(* LookupObjSF)(Tcl_Interp *interp, int objc, struct Tcl_Obj *const *objv)
#define MqCleanupTmpl()
#define StartE_ToString_doc
#define WaitOnEventE_ToInt_doc
#define WaitOnEventE_ToString_doc
#define IdentE_ToInt_doc
__thread OT_MQ_RT_S amqrtR
#define IdentE_ToString_doc
#define InitGetArg0_doc
#define SlaveE_ToString_doc
#define StatusIsEF_FromInt_doc
#define StatusIsEF_ToString_doc
#define MqSetupTmpl()
OT_ATL_EXTERN int Atlmqmsgque_Unload(OT_ENV_T interp, int flags)
#define StatusIsEF_ToInt_doc
#define HelpMsgque_doc
#define Help_doc
#define OT_SETUP_hdl_static
#define InitSetArg0_doc
#define InitResetArg0_doc
#define StartE_ToInt_doc
#define Cleanup_doc
#define IdentE_FromInt_doc
#define SlaveE_ToInt_doc
#define SlaveE_FromInt_doc
#define Setup_doc
#define WaitOnEventE_FromInt_doc
#define OtClass_ARGS
#define StartE_FromInt_doc
#define OT_NEW_Mq_enum_OBJ(typ, val)
#define MQ(n)
#define NS(n)
#define OT_MQ_RT_SIG
#define OT_MQ_CALL
#define MqRtSetup_NULL
tag: nhi1-release-250425
initialize the atlmqmsgque package
#define error
Definition high_lng.h:339
#define MkBufferListCreateTLS_T(name, num)
#define MkErrorStack_1M_Check(m)
#define MkErrorStack_0E()
#define MkErrorSetV_2M(err, printfmt,...)
#define MK_ERROR_FORMAT
#define mk_bit_compare(t, f)
MkErrorE
MK_OK
const MK_STRB * MK_STRN
MK_PTRB * MK_CCP
signed int MK_I32
uintptr_t MK_IDNT
MK_ID_THREAD
#define MkThreadLocal
#define MK_RT_PTR
#define MK_RT_CALL
#define MK_RT_ARGS
#define MkRtSetup_NULL
#define MkRtSetup_RT(r)
static MK_I32 MqStartE_ToInt(enum MqStartE value)
return the MqStartE as integer …
static MK_I32 MqIdentE_ToInt(enum MqIdentE value)
return the MqIdentE as integer …
MK_STRN MqWaitOnEventE_ToString(enum MqWaitOnEventE value)
return the MqWaitOnEventE as string …
static MK_I32 MqStatusIsEF_ToInt(enum MqStatusIsEF value)
return the MqStatusIsEF as integer …
MqFactoryE
the factory is called to create an object for ...
enum MkErrorE MqStartE_FromInt(MK_I32 const value, enum MqStartE *value_out)
return the MqStartE from integer …
enum MkErrorE MqIdentE_FromInt(MK_I32 const value, enum MqIdentE *value_out)
return the MqIdentE from integer …
MqWaitOnEventE
wait for an event? …
MqSlaveE
predefined slave-id for well known slaves …
MK_STRN MqIoComE_ToString(enum MqIoComE value)
return the MqIoComE as string …
MK_STRN MqFactoryE_ToString(enum MqFactoryE value)
return the MqFactoryE as string …
MK_STRN MqStatusIsEF_ToString(enum MqStatusIsEF value)
return the MqStatusIsEF as string …
enum MkErrorE MqSlaveE_FromInt(MK_I32 const value, enum MqSlaveE *value_out)
return the MqSlaveE from integer …
MqIdentE
identify the application using prefix (default) or factory …
MK_STRN MqSlaveE_ToString(enum MqSlaveE value)
return the MqSlaveE as string …
MqStartE
User preferences on HOWTO start a new entity.
MqStatusIsEF
Information about how the context was created.
MK_STRN MqIdentE_ToString(enum MqIdentE value)
return the MqIdentE as string …
MqHandShakeE
the hand-shake of a service-call …
MK_STRN MqStartE_ToString(enum MqStartE value)
return the MqStartE as string …
enum MkErrorE MqStatusIsEF_FromInt(MK_I32 const value, enum MqStatusIsEF *value_out)
return the MqStatusIsEF from integer …
MqIoComE
what kind of socket interface to use? …
static MK_I32 MqWaitOnEventE_ToInt(enum MqWaitOnEventE value)
return the MqWaitOnEventE as integer …
MqTransTypeE
the type of the transaction …
static MK_I32 MqSlaveE_ToInt(enum MqSlaveE value)
return the MqSlaveE as integer …
MK_STRN MqHandShakeE_ToString(enum MqHandShakeE value)
return the MqHandShakeE as string …
enum MkErrorE MqWaitOnEventE_FromInt(MK_I32 const value, enum MqWaitOnEventE *value_out)
return the MqWaitOnEventE from integer …
MK_STRN MqTransTypeE_ToString(enum MqTransTypeE value)
return the MqTransTypeE as string …
@ MQ_FACTORY_NEW_FILTER
create object as a filter
@ MQ_FACTORY_NEW_FORK
create object as a fork process
@ MQ_FACTORY_NEW_THREAD
create object as a thread
@ MQ_FACTORY_NEW_INIT
initial object, nothing else is known
@ MQ_FACTORY_NEW_SLAVE
create object as a slave of an other object
@ MQ_FACTORY_NEW_CHILD
create object as a child of an other object
@ MQ_WAIT_ONCE
Wait maximum timeout seconds for one new event, doesn't matter which context the event belongs to or ...
@ MQ_WAIT_OWN
Wait maximum timeout seconds for one new event that belongs to the current context or raise an timeou...
@ MQ_WAIT_NO
Check for one event but do not wait …
@ MQ_WAIT_FOREVER
Wait maximum timeout seconds for an event or raise an timeout-error …
@ MQ_SLAVE_OTHER
internal: on the master-ctx get the slave-ctx and on the slave-ctx get the master-ctx
@ MQ_SLAVE_FILTER
internal: the filter-slave-id, (on a master get the filter-slave)
@ MQ_SLAVE_USER
internal: start of user-defined-slave-id
@ MQ_SLAVE_MASTER
internal: the master-slave-id, (on a slave get the master)
@ MQ_SLAVE_LOOPBACK
internal: the loopback-slave-id, (call my own services)
@ MQ_SLAVE_MAX
internal: the maximum slave-id …
@ MQ_IDENT_FACTORY
value from MqFactoryS::originalIdent
@ MQ_IDENT_PREFIX
value from MqConfigS::dispPrefix
@ MQ_START_SPAWN
create entity as spawn process
@ MQ_START_DEFAULT
use application-context default entity creation
@ MQ_START_THREAD
create entity as thread
@ MQ_START_FORK
create entity as fork
@ MQ_STATUS_IS_FORK
context is created as a fork
@ MQ_STATUS_IS_DUP
context is created as a duplicate of an other context
@ MQ_STATUS_IS_THREAD
context is created as a thread
@ MQ_STATUS_IS_INITIAL
context is the first context
@ MQ_STATUS_IS_SPAWN
context is created as a spawn
@ MQ_HANDSHAKE_OK
direction: server -> client
@ MQ_HANDSHAKE_START
direction: client -> server
@ MQ_HANDSHAKE_ERROR
direction: server -> client
@ MQ_IO_UDS
using a uds socket
@ MQ_IO_LOOP
using pipe socket as stdin and stdout
@ MQ_IO_PIPE
using a pipe socket (most internal usage)
@ MQ_IO_INIT
using stdin and stdout
@ MQ_IO_TCP
using a tcp socket
@ MQ_TRANS_TYPE_WAIT
'W' = MqSendEND_AND_WAIT
@ MQ_TRANS_TYPE_SUB
'S' = MqSendEND_AND_SUB
@ MQ_TRANS_TYPE_CB
'C' = MqSendEND_AND_CALLBACK
@ MQ_TRANS_TYPE_NO
'N' = MqSendEND
@ MQ_TRANS_TYPE_TRANS
'T' = MqSendEND_AND_TRANSACTION
MK_STR MqHelp(MK_STRN tool)
write atlmqmsgque specific user-help to stderr
MK_STR MqHelpMsgque(void)
return a page with the usage of all atlmqmsgque specific options
MK_BFL MqInitGetArg0(void)
get the process startup-prefix argument
MK_BFL MqInitResetArg0(void)
Reset the process-startup-prefix argument to an empty list …
void MqInitSetArg0VA(MK_STRN arg0,...)
set the process startup-prefix to a args
void MqInitSetArg0(MK_BAC bfl)
set the process startup-prefix argument to bfl
void MqCleanup(void)
cleanup atlmqmsgque internal memory …
void MqSetup(void)
setup atlmqmsgque internal memory …
void MqSysServerThreadMain(struct MqSysServerThreadMainS *data)
initialize a new thread …
struct MqLalS MqLal
Language Abstraction Layer in duty.
#define MQ_RT_PTR
#define WrongNumArgs(...)
#define OT_CHECK_BAC(val)
#define WrongTypeOfArgError(exp, got)
tag: nhi1-release-250425
MQ_EXTERN enum MkErrorE MK_DECL MQ CheckConstructor(OT_Check_ARGS, MK_CBP *)
const char * key
LookupObjSF keyF
PUBLIC data structure for the atlmqmsgque-specific-data
MqSysServerThreadF MqSysServerThreadCB
thread server create syscall with atlmqmsgque error plugin
data used to initialize a new created thread …
OT_CLS_T AtlMqDumpC
OT_OBJ_T AtlMqDumpC_MK_NULL
OT_CLS_T AtlMqContextC
OT_OBJ_T AtlMqFactoryC_MK_NULL
OT_ENV_T interp
OT_MK_RT_T amkrt
OT_CLS_T AtlMqFactoryC
OT_OBJ_T AtlMqContextC_MK_NULL