11#define SetupRtFromObj(hd) AllRtSetup_NULL
14#define META_FILE_NAME "MqFactoryC_rb.c"
18#define OT_CLASS NS(MqFactoryC)
19#define OT_CLASS_NAME "MqFactoryC"
21#define OT_LNG2META(O) MqFct(VAL2MNG(O))
43 RUBY_TYPED_FREE_IMMEDIATELY
70 RDATA(self)->data = NULL;
73#define S_INIT NS(sInit)(MK_RT_CALL_ONLY)
91#define OT_SETUP_hdl OT_SETUP_hdl_tmpl(MqFactoryC);
92#define OT_SETUP_hdl__null_allow OT_SETUP_hdl_tmpl__null_allow(MqFactoryC);
93#define OT_SETUP_hdl_constr AllRtSetup_NULL; \
94 OT_OBJ_T clazz = self; \
95 MqFactoryC_type hdl = (MqFactoryC_type) &MkERROR;
96#define OT_SETUP_hdl_destr OT_SETUP_hdl_tmpl__null_allow(MqFactoryC);
97#define OT_SETUP_hdl_static AllRtSetup_NULL; \
98 __attribute__((unused)) MK_TYP hdl = MqFactoryC##_TT;
99#define OT_SETUP_hdl_static_constr OT_SETUP_hdl_static
101#if !defined(SetupRtFromObj_X)
102 #define SetupRtFromObj_X(hdl) AllRtSetup_X(hdl)
103 #define SetupRtFromObj_XN(hdl) AllRtSetup_XN(hdl)
117#define Add_doc "MqFactoryC MqFactoryC.Add(constructor:class, ?ident:string=\"MK_NULL\"?)"
118#define new_doc "MqFactoryC MqFactoryC.new(constructor:class, ?ident:string=\"MK_NULL\"?)"
121#define Get_doc "MqFactoryC MqFactoryC.Get(?ident:string=\"\"?)"
122#define GetCalled_doc "MqFactoryC MqFactoryC.GetCalled(?ident:string=\"\"?)"
123#define GetCalledL_doc "MqFactoryC MqFactoryC.GetCalledL(largs:MkBufferListC)"
124#define GetNull_doc "MqFactoryC MqFactoryC.GetNull()"
125#define HandleResolve_doc "MqFactoryC MqFactoryC.HandleResolve(netHdl:MK_HDL)"
126#define Instances_doc "MqFactoryC MqFactoryC.Instances()"
129#define DefaultIdent_doc "string MqFactoryC.DefaultIdent()"
130#define InitialIdent_doc "string MqFactoryC.InitialIdent()"
131#define LogAll_doc "MqFactoryC.LogAll(?callfunc:string=\"MK_NULL\"?)"
134#define Dup2_doc "MqFactoryC fct.Dup2(ident:string) (const)"
137#define Default_doc "MqFactoryC fct.Default()"
138#define Initial_doc "MqFactoryC fct.Initial()"
139#define Next_doc "MqFactoryC fct.Next()"
140#define Prev_doc "MqFactoryC fct.Prev()"
143#define New_doc "MqContextC fct.New()"
146#define GetOriginalIdent_doc "string fct.GetOriginalIdent() (const)"
160static VALUE
NS(sFactoryCall) (VALUE args) {
161 const VALUE *argsP = rb_array_const_ptr(args);
163 return rb_funcall(argsP[0],
NS(id_new), 1, argsP[1]);
182 class = CLASS_OF(tmplO);
184 class =
PTR2VAL(fct->fct_ctor.data);
188 args = rb_ary_new3(2,
class, tmplO);
190 self = rb_protect(
NS(sFactoryCall), args, &status);
192 MK(MkExceptionC_Catch) (
OT_Prefix_CALL NULL, NULL, __func__,
"ProcessEvent");
196 if (NIL_P(self) || MkErrorCheckE_0E() ) {
218 mqctx->setup.Event.fCall = NULL;
233 bool doFactoryDelete,
248 if (*dataP != NULL) {
257 if (*dataP != NULL) {
524 if (retVal == NULL) {
544 MQ_FCT retVal =
MqFactoryAdd (NULL,
NS(sFactoryCTor), constructor,
NS(sFactoryDataFree),
NS(sFactoryDataCopy),
NS(sFactoryDTor), NULL, NULL, NULL, ident);
545 if (retVal == NULL) {
563 MQ_FCT retVal =
MqFactoryAdd (NULL,
NS(sFactoryCTor), constructor,
NS(sFactoryDataFree),
NS(sFactoryDataCopy),
NS(sFactoryDTor), NULL, NULL, NULL, ident);
564 if (retVal == NULL) {
587 if (fct == NULL)
return;
601 OT_METH_S ( MqFactoryC, Add, MqFactoryC_Add )
602 OT_METH_C ( MqFactoryC,
new, MqFactoryC_new )
605 OT_METH_O ( MqFactoryC, Get, MqFactoryC_Get )
606 OT_METH_S ( MqFactoryC, Get, MqFactoryC_Get )
607 OT_METH_O ( MqFactoryC, GetCalled, MqFactoryC_GetCalled )
608 OT_METH_S ( MqFactoryC, GetCalled, MqFactoryC_GetCalled )
609 OT_METH_O ( MqFactoryC, GetCalledL, MqFactoryC_GetCalledL )
610 OT_METH_S ( MqFactoryC, GetCalledL, MqFactoryC_GetCalledL )
611 OT_METH_O ( MqFactoryC, GetNull, MqFactoryC_GetNull )
612 OT_METH_S ( MqFactoryC, GetNull, MqFactoryC_GetNull )
613 OT_METH_O ( MqFactoryC, HandleResolve, MqFactoryC_HandleResolve )
614 OT_METH_S ( MqFactoryC, HandleResolve, MqFactoryC_HandleResolve )
615 OT_METH_O ( MqFactoryC, Instances, MqFactoryC_Instances )
616 OT_METH_S ( MqFactoryC, Instances, MqFactoryC_Instances )
619 OT_METH_O ( MqFactoryC, DefaultIdent, MqFactoryC_DefaultIdent )
620 OT_METH_S ( MqFactoryC, DefaultIdent, MqFactoryC_DefaultIdent )
621 OT_METH_O ( MqFactoryC, InitialIdent, MqFactoryC_InitialIdent )
622 OT_METH_S ( MqFactoryC, InitialIdent, MqFactoryC_InitialIdent )
623 OT_METH_O ( MqFactoryC, LogAll, MqFactoryC_LogAll )
624 OT_METH_S ( MqFactoryC, LogAll, MqFactoryC_LogAll )
631 OT_METH_O ( MqFactoryC, Dup2, MqFactoryC_Dup2 )
634 OT_METH_O ( MqFactoryC, Default, MqFactoryC_Default )
635 OT_METH_O ( MqFactoryC, Initial, MqFactoryC_Initial )
636 OT_METH_O ( MqFactoryC, Next, MqFactoryC_Next )
637 OT_METH_O ( MqFactoryC, Prev, MqFactoryC_Prev )
640 OT_METH_O ( MqFactoryC, New, MqFactoryC_New )
643 OT_METH_O ( MqFactoryC, GetOriginalIdent, MqFactoryC_GetOriginalIdent )
656 NS(sFactoryCTor), (
MK_PTR)
NS(MqContextC), NULL, NULL,
657 NS(sFactoryDTor), NULL, NULL, NULL,
668 NS(id_new) = rb_intern(
"new");
#define OT_ERROR_RUNTIME(clazz, str)
#define OT_SETUP_VARARGS(min, max, d)
#define OT_SETUP_NOARG(d)
#define OT_SETUP_ONEARG(d)
#define OT_ERROR_LNG_RETURN
#define OT_CONSTRUCTOR_POST(x)
#define OT_METH_S(c, s, f)
#define OT_retObj_CONSTR(mng)
#define OT_CHECK_REQUIRED(val)
#define OT_retObj_SET_None
#define OT_METH_O(c, s, f)
#define OT_SETUP_CONSTRUCTOR_ARGS(min, max, d)
#define OT_OBJECT_DELETE_HARD(obj)
#define OT_retObj_SET_STR(nat)
#define OT_ERROR_CONSTRUCTOR(clazz)
#define OT_CHECK_OPTIONAL(val)
#define OT_GET_CONSTR_NAME(ctor)
#define MkErrorC_Check(mng, PROC)
#define OT_METH_C(c, s, f)
#define OT_CHECK_STRN(val)
#define OT_retObj_SET_CTX(nat)
#define OT_retObj_SET_FCT(nat)
#define MqFactoryC_MK_NULL
#define OT_SETUP_hdl_static_constr
#define GetOriginalIdent_doc
#define HandleResolve_doc
#define OT_SETUP_hdl_static
#define OT_SETUP_hdl_constr
static MK_TYP MqFactoryCTT
#define MkBufferListCreateTLS_T(name, num)
#define MkErrorStack_0E()
static bool MkSysStringIsNULL(MK_STRN str)
void MkRuntimeSetCID(MK_OBJ const cid)
#define MqContextDelete(x)
#define MQ_CALLBACK_FACTORY_CTOR_ARGS
the MqFactoryCTorF arguments with default names
#define MqFactoryInstances()
static MQ_FCT MqFactoryPrev(MQ_FCT const fct)
get previous instance from linked-list of MqFactoryS type
#define MqFactoryHandleResolve(...)
static MQ_FCT MqFactoryGetNull(void)
Null-Slot - return a MqFactoryC typed NULL instance …
static MQ_FCT MqFactoryNext(MQ_FCT const fct)
get next instance from linked-list of MqFactoryS type
#define MqFactoryC_T
class as MkTypeDefS-class-type, useable in a class-macro as: class##_T …
static MQ_FCT MqFct(MK_MNG mng)
cast a unknown-object into an MqFactoryS pointer or NULL if not possible
#define MqFactoryC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MqFactoryGetCalledL(...)
#define MqFactoryGet(...)
MK_STRN MqFactoryGetOriginalIdent(MQ_FCTN const fct)
helper function to return MqFactoryS::originalIdent
#define MqFactoryGetCalled(...)
#define MqFactoryLogAll(...)
#define MqFactoryInitial(...)
#define MqFactoryDefaultIdent()
#define MqFactoryNew(...)
#define MqFactoryInitialIdent()
#define MqFactoryDefault(...)
#define MqFactoryDup2(...)
#define MqFactoryAdd(...)
@ MQ_FACTORY_NEW_FILTER
create object as a filter
@ MQ_FACTORY_NEW_CHILD
create object as a child of an other object
#define OT_CHECK_NIH(val)
#define OT_CHECK_BFLN(val, nullB)
#define OT_CHECK_CONSTRUCTOR(val)
PUBLIC data structure for the rbmqmsgque-specific-data
MK_PTR data
additional data pointer for the fCall
MK_PTR data
additional data pointer for the fCall
data used to define a factory
struct MqFactoryDTorS fct_dtor
instance destructor interface
struct MqFactoryCTorS fct_ctor
instance constructor interface