theLink 10.0 NHI1 - theKernel - theLink - theConfig - theSq3Lite - theCompiler - theBrain - theGuard
c - tcl - py - rb - jv - cc
Loading...
Searching...
No Matches
MqContextC_Class_C_API

MqContextC - define the class … More...

+ Collaboration diagram for MqContextC_Class_C_API:

Topics

 MqContextC_Class_Define_C_API
 MqContextC - low level definition, access and cast …
 

Typedefs

typedef struct MqContextSMQ_CTX
 class-shortcut for struct MqContextS *, all shortcut using the XX_YYY syntax (only for public API) …
 
typedef const struct MqContextSMQ_CTXN
 class-shortcut for const struct MqContextS *, all const shortcut using the XX_YYYC syntax (only for public API) …
 
typedef struct MqContextS MQ_CTXR
 reference-shortcut for struct MqContextS, all shortcut using the XX_YYYR syntax (only for public API) …
 

MqContextC - Export - inline - interact with an external software

MK_HDL MqContextHandleGet_RT (MK_RT mkrt, MQ_CTX const ctx)
 Handle-Get-Slot - returns a export-hdl to the MqContextC useable for external storage
 
MQ_CTX MqContextHandleResolve_RT (MK_RT mkrt, MK_HDL const netHdl)
 Handle-Resolve-Slot - return a MqContextC from netHdl or MK_NULL if invalid…
 
#define MqContextHandleResolve_e(netHdl)
 wrapper for MqContextHandleResolve with error-handline
 

MqContextC - Misc - function - unspecified functions to perform different tasks

MQ_CTX MqContextGetNull (void)
 Null-Slot - return a MqContextC typed NULL instance …
 

MqContextC - Introspection - inline - access to all instances created by class starting with the last one

MQ_CTX MqContextInstances_RT (MK_PARSER_RT_ONLY)
 get head-instance from linked-list of MqContextS type …
 
MQ_CTX MqContextNext (MQ_CTX const ctx)
 get next instance from linked-list of MqContextS type
 
MQ_CTX MqContextPrev (MQ_CTX const ctx)
 get previous instance from linked-list of MqContextS type
 

MqContextC - Export - function

MQ_EXTERN MQ_CTX MqContextHandleResolveP (MK_RT mkrt, MK_HDL const netHdl)
 Non-inline replacement for MqContextHandleResolve
 
MQ_EXTERN MK_HDL MqContextHandleGetP (MK_RT mkrt, MQ_CTX const ctx)
 Non-inline replacement for MqContextHandleGet
 

MqContextC - Introspection - function

MQ_EXTERN MQ_CTX MqContextNextP (MQ_CTX const ctx)
 Non-inline replacement for MqContextNext
 
MQ_EXTERN MQ_CTX MqContextPrevP (MQ_CTX const ctx)
 Non-inline replacement for MqContextPrev
 
MQ_EXTERN MQ_CTX MqContextInstancesP (MK_PARSER_RT_ONLY)
 Non-inline replacement for MqContextInstances
 

MqContextC - Misc - function

MQ_EXTERN MQ_CTX MqContextGetNullP (void)
 Non-inline replacement for MqContextGetNull
 

MqContextC - Export - overload

#define MqContextHandleResolve_NULL(...)
 
#define MqContextHandleResolve(...)
 
#define MqContextHandleGet_NULL(...)
 
#define MqContextHandleGet(...)
 

MqContextC - Introspection - overload

#define MqContextInstances_NULL()
 
#define MqContextInstances()
 

Detailed Description

MqContextC - define the class …

Macro Definition Documentation

◆ MqContextHandleGet

#define MqContextHandleGet ( ...)
Value:
#define MK_RT_CALL
MK_HDL MqContextHandleGet_RT(MK_RT mkrt, MQ_CTX const ctx)
Handle-Get-Slot - returns a export-hdl to the MqContextC useable for external storage

Definition at line 27 of file msgque_overload_mq.h.

◆ MqContextHandleGet_NULL

#define MqContextHandleGet_NULL ( ...)
Value:
#define MK_RT_CALL_NULL

Definition at line 26 of file msgque_overload_mq.h.

◆ MqContextHandleResolve

#define MqContextHandleResolve ( ...)
Value:
MQ_CTX MqContextHandleResolve_RT(MK_RT mkrt, MK_HDL const netHdl)
Handle-Resolve-Slot - return a MqContextC from netHdl or MK_NULL if invalid…

Definition at line 23 of file msgque_overload_mq.h.

◆ MqContextHandleResolve_e

#define MqContextHandleResolve_e ( netHdl)
Value:
({ \
MK_HDL tmpHdl=netHdl; \
MQ_CTX tmp; \
if (tmpHdl==0) { \
tmp=NULL; \
} else { \
tmp=MqContextHandleResolve(tmpHdl); \
if (tmp==NULL) { \
MkErrorSetC_1_NULL("ERROR: 'MqContextC' handle is 'NULL'"); \
goto error; \
}; \
}; \
tmp; \
})
int32_t MK_HDL
#define MqContextHandleResolve(...)
PUBLIC data structure for the libmqmsgque-specific-data

wrapper for MqContextHandleResolve with error-handline

Parameters
[in]netHdlThe handle previously returned by MkObjectHandleGet.
Returns
Return an valid MQ_CTX or MK_NULL with an error set.
  • If netHdl is 0 than MK_NULL is returned and the upper-code decide how to deal with it.
  • MqContextHandleResolve return an valid MQ_CTX or MK_NULL if the netHdl is invalid or the underlying object has already been deleted.
    • If a MK_NULL is returned than an error-message is created and a jump to the label error is done.
    • If a MQ_CTX is returned than the netHdl is valid.

Definition at line 4231 of file LibMqMsgque_mq.h.

4231#define MqContextHandleResolve_e(netHdl) ({ \
4232 MK_HDL tmpHdl=netHdl; \
4233 MQ_CTX tmp; \
4234 if (tmpHdl==0) { \
4235 tmp=NULL; \
4236 } else { \
4237 tmp=MqContextHandleResolve(tmpHdl); \
4238 if (tmp==NULL) { \
4239 MkErrorSetC_1_NULL("ERROR: 'MqContextC' handle is 'NULL'"); \
4240 goto error; \
4241 }; \
4242 }; \
4243 tmp; \
4244})

◆ MqContextHandleResolve_NULL

#define MqContextHandleResolve_NULL ( ...)
Value:

Definition at line 22 of file msgque_overload_mq.h.

◆ MqContextInstances

#define MqContextInstances ( )
Value:
#define MK_RT_CALL_ONLY
MQ_CTX MqContextInstances_RT(MK_PARSER_RT_ONLY)
get head-instance from linked-list of MqContextS type …

Definition at line 38 of file msgque_overload_mq.h.

◆ MqContextInstances_NULL

#define MqContextInstances_NULL ( )
Value:

Definition at line 37 of file msgque_overload_mq.h.

Typedef Documentation

◆ MQ_CTX

typedef struct MqContextS* MQ_CTX

class-shortcut for struct MqContextS *, all shortcut using the XX_YYY syntax (only for public API) …

Definition at line 520 of file LibMqMsgque_mq.h.

◆ MQ_CTXN

typedef const struct MqContextS* MQ_CTXN

class-shortcut for const struct MqContextS *, all const shortcut using the XX_YYYC syntax (only for public API) …

Definition at line 523 of file LibMqMsgque_mq.h.

◆ MQ_CTXR

typedef struct MqContextS MQ_CTXR

reference-shortcut for struct MqContextS, all shortcut using the XX_YYYR syntax (only for public API) …

Definition at line 526 of file LibMqMsgque_mq.h.

Function Documentation

◆ MqContextGetNull()

MQ_CTX MqContextGetNull ( void )
inline

Null-Slot - return a MqContextC typed NULL instance …

Definition at line 4256 of file LibMqMsgque_mq.h.

4256 {
4257 return (MQ_CTX)MK_NULL;
4258 }
#define MK_NULL

◆ MqContextGetNullP()

MQ_EXTERN MQ_CTX MqContextGetNullP ( void )

Non-inline replacement for MqContextGetNull

◆ MqContextHandleGet_RT()

MK_HDL MqContextHandleGet_RT ( MK_RT mkrt,
MQ_CTX const ctx )
inline

Handle-Get-Slot - returns a export-hdl to the MqContextC useable for external storage

The export-hdl is a reference to an instance that can be stored in software and converted back into an instance using the MqContextHandleResolve.

The export-hdl is only valid until the Programming-Language-Micro-Kernel (PLMK) ends.

example: The export-hdl is used in rpc to identify an object across the network.

Parameters
[in]mkrtthe MkRuntimeS instance to work on - the runtime argument, used by MK_RT_CALL (C-only)
[in]ctxthe MqContextS instance to work on
Returns
the required export-hdl

Definition at line 4198 of file LibMqMsgque_mq.h.

4201 {
4202 return MkObjectHandleGet(ctx?MkOBJ(ctx):NULL);
4203}
#define MkObjectHandleGet(...)
#define MkOBJ(x)

◆ MqContextHandleGetP()

MQ_EXTERN MK_HDL MqContextHandleGetP ( MK_RT mkrt,
MQ_CTX const ctx )

Non-inline replacement for MqContextHandleGet

◆ MqContextHandleResolve_RT()

MQ_CTX MqContextHandleResolve_RT ( MK_RT mkrt,
MK_HDL const netHdl )
inline

Handle-Resolve-Slot - return a MqContextC from netHdl or MK_NULL if invalid…

The MqContextHandleResolve undo the MqContextHandleGet and is intended to export a unique identifer into external code not belonging to the Programming-Language-Micro-Kernel (PLMK).

Parameters
[in]mkrtthe MkRuntimeS instance to work on - the runtime argument, used by MK_RT_CALL (C-only)
[in]netHdlhandle former exported with MqContextHandleGet
Returns
the required handle or MK_NULL if netHdl is invalid

Definition at line 4215 of file LibMqMsgque_mq.h.

4218 {
4219 return MqCtx(MkObjectHandleResolve(netHdl));
4220}
#define MkObjectHandleResolve(...)
MQ_CTX MqCtx(MK_MNG mng)
cast a unknown-object into an MqContextS pointer or NULL if not possible

◆ MqContextHandleResolveP()

MQ_EXTERN MQ_CTX MqContextHandleResolveP ( MK_RT mkrt,
MK_HDL const netHdl )

Non-inline replacement for MqContextHandleResolve

◆ MqContextInstances_RT()

MQ_CTX MqContextInstances_RT ( MK_PARSER_RT_ONLY )
inline

get head-instance from linked-list of MqContextS type …

The head-instance is the last instance created.

Definition at line 9634 of file LibMqMsgque_mq.h.

9634 {
9636 return (MQ_CTX)MqContextC_TT->instances;
9637}
#define MqContextC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
#define MQ_STATIC_RT

◆ MqContextInstancesP()

MQ_EXTERN MQ_CTX MqContextInstancesP ( MK_PARSER_RT_ONLY )

Non-inline replacement for MqContextInstances

◆ MqContextNext()

MQ_CTX MqContextNext ( MQ_CTX const ctx)
inline

get next instance from linked-list of MqContextS type

Definition at line 9641 of file LibMqMsgque_mq.h.

9641 {
9642 MK_INSTANCE_HDL(ctx);
9643 return (MQ_CTX)MqContextC_X2obj(ctx)->obj_protect.next;
9644}
#define MK_INSTANCE_HDL(x)
#define MqContextC_X2obj(x)

◆ MqContextNextP()

MQ_EXTERN MQ_CTX MqContextNextP ( MQ_CTX const ctx)

Non-inline replacement for MqContextNext

◆ MqContextPrev()

MQ_CTX MqContextPrev ( MQ_CTX const ctx)
inline

get previous instance from linked-list of MqContextS type

Definition at line 9648 of file LibMqMsgque_mq.h.

9648 {
9649 MK_INSTANCE_HDL(ctx);
9650 return (MQ_CTX)MqContextC_X2obj(ctx)->obj_protect.prev;
9651}

◆ MqContextPrevP()

MQ_EXTERN MQ_CTX MqContextPrevP ( MQ_CTX const ctx)

Non-inline replacement for MqContextPrev