11#define META_FILE_NAME "MqHigh_tcl.c"
15#define OT_SETUP_hdl SetupHdlFromMetaData_2(CTX,MQ_CTX);
17#define OBJECT2CTX(O) MqCtx(Tcl_ObjectGetMetadata(O, &MK(AtomMeta)))
19#if !defined(SetupRtFromHdl_XN)
20 #define SetupRtFromHdl_XN(hdl) AllRtSetup_XN(hdl)
21 #define SetupRtFromHdl_X(hdl) AllRtSetup_X(hdl)
26#define META_CONTEXT_S hdl
33#define highSELF "$ctx Send"
35#define highSKIP __skip
36#define highSKIP_SHIFT 1
39#define highSIZE_AVAILABLE 1
40#define highREAD_RETURN_LIST 1
41#define highREAD_HAS_REFERENCE 1
43#define highINITcstr OT_CHECK_STR(cstr)
44#define highCMD "%s '%s' ... '%s' ..."
45#define highFARGS(f) NS(ServiceCall),f,NS(ServiceFree)
47#define highTRAN(str) OT_CHECK_C_COPY(str,MQ_SEND_TRANSACTION_TOKEN_SIZE)
48#define highTOKEN(str) OT_CHECK_C_COPY(str,MQ_SEND_TOKEN_SIGNATURE_SIZE)
49#define highTIME(t) OT_CHECK_TIME_T(timeout)
50#define highCALL(f) OT_CHECK_CALLABLE(f)
54#define highERRORnative \
55 if (!MkErrorCheckE_0E()) OT_ERROR_LNG_2_META(mqctx);
57#define highRETerror OT_ERROR_META_2_LNG(hdl); \
60#define highRETURN highRETURN_type_S
61#define highRETok goto end;
63#define highSend(T) { \
65 OT_CHECK_REQUIRED(OT_CHECK_##T(val)); \
66 MkErrorCheck(MqSend##T(mqctx,val)); \
70#define highSendObj(T) { \
72 OT_CHECK_REQUIRED(OT_CHECK_##T(val,false)); \
73 MkErrorCheck(MqSend##T(mqctx,val)); \
88#define highSend_BOL highSend(BOL)
89#define highSend_I8 highSend(I8)
90#define highSend_I16 highSend(I16)
91#define highSend_I32 highSend(I32)
92#define highSend_I64 highSend(I64)
93#define highSend_HDL highSend(HDL)
94#define highSend_FLT highSend(FLT)
95#define highSend_DBL highSend(DBL)
96#define highSend_STR highSend(STR)
97#define highSend_BUF highSendObj(BUF)
98#define highSend_BFL { \
99 MkBufferListCreateTLS_T(bfl,5); \
100 OT_CHECK_REQUIRED(OT_CHECK_BFL(bfl,false)) \
101 MqSendBFL_E(mqctx, bfl); \
104#define highSend_BIN { \
106 OT_CHECK_REQUIRED(OT_CHECK__ME_REF_MkBinaryR(cbi)) \
107 MqSendBIN_E(mqctx, cbi); \
111#define highReadRef(T) { \
112 high_T_##T val = 0; \
113 OT_CHECK_REQUIRED(OT_CHECK_LNG_T(readVal)); \
114 MkErrorCheck(MqRead##T(mqctx,&val)); \
115 if (readVal != NULL) { \
116 OT_LNG_SET_VAR(readVal, high_C_##T (val)); \
121#define highREADprepare
122#define highREADinit readVal=NULL
124#define highReadRef_I8 highReadRef(I8);
125#define highReadRef_BOL highReadRef(BOL);
126#define highReadRef_I16 highReadRef(I16);
127#define highReadRef_I32 highReadRef(I32);
128#define highReadRef_I64 highReadRef(I64);
129#define highReadRef_HDL highReadRef(HDL);
130#define highReadRef_FLT highReadRef(FLT);
131#define highReadRef_DBL highReadRef(DBL);
132#define highReadRef_STR highReadRef(STR);
133#define highReadRef_BUF highReadRef(BUF);
134#define highReadRef_BFL highReadRef(BFL);
135#define highReadRef_ARGS highReadRef(A);
136#define highReadRef_BIN { \
138 OT_CHECK_REQUIRED(OT_CHECK_LNG_T(readVal)); \
139 MqReadBIN_E(mqctx, &cbi); \
141 OT_LNG_SET_VAR(readVal, OT_TMP_BIN_OBJ(cbi.data,(int)cbi.size)); \
158#define error high_error
#define OT_SETUP_VARARGS(min, max, d)