theLink 10.0
Loading...
Searching...
No Matches
LibMqMsgque_py.h
Go to the documentation of this file.
1
9#pragma once
10
11#include "LibMkKernel_py.h"
12#include "LibMqMsgque_mq.h"
13/*****************************************************************************/
14/* */
15/* Macro_API */
16/* */
17/*****************************************************************************/
18
19// BEGIN-HEADER - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
20
21#undef HEADER
22#define HEADER
23
24// If the source of libmqmsgque is direct used in an external library
25// (without dynamic linking) and this library should *not* export
26// the symbol's of libmqmsgque then the flag META_IGNORE_EXTERN have
27// to be set
28#undef MQ_PY_EXTERN
29#if defined(META_IGNORE_EXTERN)
30# define MQ_PY_EXTERN
31#elif defined(PIC)
32 // does we build a DLL ?
33# if defined(DLL_EXPORT)
34 // does we build the libmqmsgque library ?
35# if defined(MQ_PY_BUILD_DLL)
36# define MQ_PY_EXTERN __declspec(dllexport)
37# else
38# define MQ_PY_EXTERN __declspec(dllimport)
39# endif
40# else
41 // no DLL - architecture specific extern specifier
42# define MQ_PY_EXTERN __attribute__ ((visibility("default")))
43# endif
44#else
46# define MQ_PY_EXTERN
47#endif
48
49// external data lookup
50#undef MQ_PY_EXTERN_DATA
51#if defined(META_PRIVATE)
52# define MQ_PY_EXTERN_DATA extern
53#elif defined(META_IGNORE_EXTERN)
54# define MQ_PY_EXTERN_DATA extern
55#elif defined(PIC)
56 // does we build a DLL ?
57# if defined(DLL_EXPORT)
58 // does we build the libmqmsgque library ?
59# if defined(MQ_PY_BUILD_DLL)
60# define MQ_PY_EXTERN_DATA __declspec(dllexport)
61# else
62# define MQ_PY_EXTERN_DATA __declspec(dllimport)
63# endif
64# else
65 // no DLL - architecture specific extern specifier
66# define MQ_PY_EXTERN_DATA __attribute__ ((visibility("default"))) extern
67# endif
68#else
69# define MQ_PY_EXTERN_DATA extern
70#endif
71
72#undef MQ
73#define MQ(n) pymqmsgque_ ## n
74#undef NS
75#define NS(n) pymqmsgque_ ## n
76
77// END-HEADER - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
78
79/*****************************************************************************/
80/* */
81/* Module API */
82/* */
83/*****************************************************************************/
84
85// BEGIN-CLASS-DEC - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
86
87int NS(pMqFactoryC_Init) (MK_RT_ARGS OT_OBJ_T) ;
88int NS(pMqDumpC_Init) (MK_RT_ARGS OT_OBJ_T) ;
89int NS(pMqContextC_Init) (MK_RT_ARGS OT_OBJ_T) ;
90
91// END-CLASS-DEC - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
92
93typedef struct {
94 // BEGIN-EnumThreadState - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
95
96 PyTypeObject* MqIdentE;
97 PyTypeObject* MqSlaveE;
98 PyTypeObject* MqStartE;
99 PyTypeObject* MqStatusIsEF;
100 PyTypeObject* MqWaitOnEventE;
101
102 // END-EnumThreadState - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
103 // BEGIN-ClassThreadState - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
104
108
109 // END-ClassThreadState - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
110 // BEGIN-ClassThreadStateNull - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
111
115
116 // END-ClassThreadStateNull - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
117
119
121
122/*****************************************************************************/
123/* */
124/* Class_API */
125/* */
126/*****************************************************************************/
127
128// BEGIN-CLASS - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
129
130// ----------------------------------------------------------------------
131// class: MqContextC
132
133 // class struct
134 typedef struct MqContextC_Obj {
135 PyObject_HEAD
138
140 #define MqContextC_lngO (&MQ(MqContextCR))
141 #define MqContextC_base (&MK(MkObjectCR))
142
143 // MK_NULL singelton
144 #define MqContextC_MK_NULL MQ(MqMsgqueThreadState).MqContextC_MK_NULL
145
146 // arguments
147 #define MqContextC_ARGS MqContextC_Obj *self, PyObject *objv
148 #define MqContextC_ARGS_CALL self, objv
149
150 // return object
151 #define OT_retObj_SET_CTX(nat) retObj = MQ(MqContextC_ObjNew) (MK_RT_CALL &MQ(MqContextCR),nat)
152
153 // new objec
154 #define OT_TMP_CTX_OBJ(val) MQ(MqContextC_ObjNew)(MK_RT_CALL &MQ(MqContextCR),val)
156 mk_inline OT_OBJ_T MQ(MqContextC_ObjNew) ( MK_RT_ARGS OT_CLS_T type, MQ_CTX hdl ) {
157 return hdl ? MK(AtomObjNew)(MK_RT_CALL type,MqContextC_X2obj(hdl)) : Py_NewRef(MqContextC_MK_NULL);
158 }
159
160 // cast from LNG to MQ
161 #define VAL2CTX(val) ((MqContextC_Obj*) (val))->hdl
162
163// ----------------------------------------------------------------------
164// class: MqDumpC
165
166 // class struct
167 typedef struct MqDumpC_Obj {
168 PyObject_HEAD
171
173 #define MqDumpC_lngO (&MQ(MqDumpCR))
174 #define MqDumpC_base (&MK(MkObjectCR))
175
176 // MK_NULL singelton
177 #define MqDumpC_MK_NULL MQ(MqMsgqueThreadState).MqDumpC_MK_NULL
178
179 // arguments
180 #define MqDumpC_ARGS MqDumpC_Obj *self, PyObject *objv
181 #define MqDumpC_ARGS_CALL self, objv
182
183 // return object
184 #define OT_retObj_SET_DMP(nat) retObj = MQ(MqDumpC_ObjNew) (MK_RT_CALL &MQ(MqDumpCR),nat)
185
186 // new objec
187 #define OT_TMP_DMP_OBJ(val) MQ(MqDumpC_ObjNew)(MK_RT_CALL &MQ(MqDumpCR),val)
189 mk_inline OT_OBJ_T MQ(MqDumpC_ObjNew) ( MK_RT_ARGS OT_CLS_T type, MQ_DMP hdl ) {
190 return hdl ? MK(AtomObjNew)(MK_RT_CALL type,MqDumpC_X2obj(hdl)) : Py_NewRef(MqDumpC_MK_NULL);
191 }
192
193 // cast from LNG to MQ
194 #define VAL2DMP(val) ((MqDumpC_Obj*) (val))->hdl
195
196// ----------------------------------------------------------------------
197// class: MqFactoryC
198
199 // class struct
200 typedef struct MqFactoryC_Obj {
201 PyObject_HEAD
204
206 #define MqFactoryC_lngO (&MQ(MqFactoryCR))
207 #define MqFactoryC_base (&MK(MkObjectCR))
208
209 // MK_NULL singelton
210 #define MqFactoryC_MK_NULL MQ(MqMsgqueThreadState).MqFactoryC_MK_NULL
211
212 // arguments
213 #define MqFactoryC_ARGS MqFactoryC_Obj *self, PyObject *objv
214 #define MqFactoryC_ARGS_CALL self, objv
215
216 // return object
217 #define OT_retObj_SET_FCT(nat) retObj = MQ(MqFactoryC_ObjNew) (MK_RT_CALL &MQ(MqFactoryCR),nat)
218
219 // new objec
220 #define OT_TMP_FCT_OBJ(val) MQ(MqFactoryC_ObjNew)(MK_RT_CALL &MQ(MqFactoryCR),val)
222 mk_inline OT_OBJ_T MQ(MqFactoryC_ObjNew) ( MK_RT_ARGS OT_CLS_T type, MQ_FCT hdl ) {
223 return hdl ? MK(AtomObjNew)(MK_RT_CALL type,MqFactoryC_X2obj(hdl)) : Py_NewRef(MqFactoryC_MK_NULL);
224 }
225
226 // cast from LNG to MQ
227 #define VAL2FCT(val) ((MqFactoryC_Obj*) (val))->hdl
228
229// END-CLASS - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
230
231/*****************************************************************************/
232/* */
233/* check */
234/* */
235/*****************************************************************************/
236
237#include "tmpl/mq_type_S_lng.h"
238
239#define OT_CTX (((MqContextC_Obj*)self)->hdl)
240#define OT_SETUP_self MqContextC_Obj* self = OT_MqCFromMqS(META_CONTEXT_S);
241#define OT_MqCFromMqS(ctx) ((MqContextC_Obj*)(MkOBJ_R(ctx).self))
242
243// check *********************************************************************************
244
246
247// enum ******************************************************************************
248
249#define OT_NEW_Mq_enum_OBJ(typ,val) PyObject_CallFunction((PyObject*)(Mq ## typ ## _lngO),"i",val)
250
251// BEGIN-EnumExtern - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
252
253#define MqIdentE_lngO (MQ(MqMsgqueThreadState).MqIdentE)
254#define MqSlaveE_lngO (MQ(MqMsgqueThreadState).MqSlaveE)
255#define MqStartE_lngO (MQ(MqMsgqueThreadState).MqStartE)
256#define MqStatusIsEF_lngO (MQ(MqMsgqueThreadState).MqStatusIsEF)
257#define MqWaitOnEventE_lngO (MQ(MqMsgqueThreadState).MqWaitOnEventE)
258
259// END-EnumExtern - created by 'py_MqS.tcl -i NHI1_HOME/theLink/c/gen/c_mqmsgque.meta' - DO NOT change
260
261/*****************************************************************************/
262/* */
263/* debugging */
264/* */
265/*****************************************************************************/
266
267#define printSelf(o) printXSObj(((MqContextC_Obj*)o)->ctx,#o,(o!=NULL?(PyObject*)o:(PyObject*)Py_None))
268
269#undef HEADER
tag: nhi1-release-250425
#define MK(n)
#define MK_PY_EXTERN_DATA
PyTypeObject * OT_CLS_T
PyObject * OT_OBJ_T
#define OT_CLASS_TYPE_REF
#define MqContextC_MK_NULL
struct MqContextC_Obj MqContextC_Obj
#define MQ_PY_EXTERN_DATA
struct MqDumpC_Obj MqDumpC_Obj
#define MQ(n)
#define NS(n)
struct MqFactoryC_Obj MqFactoryC_Obj
#define MqDumpC_MK_NULL
#define MqFactoryC_MK_NULL
#define mk_inline
#define MK_ARTIFICIAL
#define MkThreadLocal
#define MK_RT_CALL
#define MK_RT_ARGS
#define MqContextC_X2obj(x)
#define MqDumpC_X2obj(x)
#define MqFactoryC_X2obj(x)
tag: nhi1-release-250425
tag: nhi1-release-250425
PyObject_HEAD MQ_CTX hdl
PUBLIC data structure for the pymqmsgque-specific-data
PyObject_HEAD MQ_DMP hdl
MqDumpC - the class known as dmp or dump is used to export a pymqmsgque data package as binary …
PyObject_HEAD MQ_FCT hdl
data used to define a factory
PyTypeObject * MqSlaveE
PyTypeObject * MqIdentE
PyTypeObject * MqStatusIsEF
PyTypeObject * MqStartE
PyObject * MqFactoryC_MK_NULL
PyTypeObject * MqWaitOnEventE
PyObject * MqContextC_MK_NULL