86#define MkBufferListS_bls_size 32
102 #define MkBufferListC_SIGNATURE (MkObjectC_SIGNATURE ^ (2u<<10))
103 #define MkBufferListC_MASK (((1u<<22)-1)<<10)
111 #define MkBufferListC_X2bfl(x) (x)
112 #define MkBufferListC_X2obj(x) MkOBJ(x)
125 #define MkBufferListC_T (&MK_RT_REF._MkBufferListC_T)
127 #define MkBufferListC_TT (MkTYP(MkBufferListC_T))
129 #define MkBufferListST MkBufferListC_T
131 #define MkBufferListSTT (MkTYP(MkBufferListST))
133 #define MkBufferListC_type MK_BFL
135 #define MkBufferListCT_X(instance) ( (struct MkTypeDefS *) (MkOBJ_R(instance).type) )
137 #define MkBufferListCTT_X(instance) (MkOBJ_R(instance).type)
139 #define MkBufferListCT_TT(typ) ( (struct MkTypeDefS *) (typ) )
141 #define MkBufferListC_NS MK
143 #define MkBufferListCTT MkBufferListCTT
145 #define MkBufferListCT ( (struct MkTypeDefS *) MkBufferListCTT )
153 #pragma GCC diagnostic push
154 #pragma GCC diagnostic ignored "-Wattributes"
172 #pragma GCC diagnostic pop
173 #define MkBufferListC_Check(mng) MkBflCheck(mng)
183 META_ATTRIBUTE_SANITIZE
191 META_ATTRIBUTE_SANITIZE
198 #define MkBflRaise(_bfl) if (!_MkCheckX(MkBufferListC,_bfl)) { \
199 MkErrorSetC_1E("'MkBufferListC' hdl is NULL"); \
204 #define MkBFL_R(x) (*(x)).super.bfl
206 #define MkBFL(x) (&MkBFL_R(x))
229__parser__push__(doc-group=_ignore_,doc-index=Class,doc-name=Export,
class=MkBufferListC);
281#define MkBufferListHandleResolve_e(netHdl) ({ \
282 MK_HDL tmpHdl=netHdl; \
287 tmp=MkBufferListHandleResolve(tmpHdl); \
289 MkErrorSetC_1_NULL("ERROR: 'MkBufferListC' handle is 'NULL'"); \
304 __parser__(flags=
new,doc-group=_ignore_,doc-index=Class,doc-name=Misc,
class=MkBufferListC,null-
return-allow)
382#define MkBufferListCreateTLS_T(name,num) \
383 static MkThreadLocal struct MkBufferListS name##R = {0}; \
384 MK_BFL name = &name##R; \
385 if (likely(__MkCheckX(MkBufferListC,&name##R))) { \
386 MkBufferListReserve_RT(MK_RT_CALL name,num); \
388 MkBufferListInit_RT(MK_RT_CALL name,num); \
389 MkRefIncr_1X(name); \
408#define MkBufferListCreateSTATIC_T(name,num) \
409 static struct MkBufferListS name##R = {0}; \
410 struct MkBufferListS * const name = &name##R; \
411 if (__MkCheckX(MkBufferListC,&name##R)) { \
412 MkBufferListReset_RT(MK_RT_CALL name); \
414 MkBufferListInit_RT(MK_RT_CALL name,num); \
429#define MkBufferListCreateLOCAL_T(name,num) \
430 struct MkBufferListS name##R = {0}; \
431 struct MkBufferListS * const name = &name##R; \
432 MkBufferListInit_RT(MK_RT_CALL name, num)
454#define MkBufferListCreateTLS_inout_T(name,num,inout) \
455 static MkThreadLocal struct MkBufferListS __hidden_##name##R = {0}; \
456 MK_BFL name = *inout != NULL ? *inout : &__hidden_##name##R; \
457 if (likely(__MkCheckX(MkBufferListC,name))) { \
458 MkBufferListReserve_RT(MK_RT_CALL name,num); \
460 MkBufferListInit_RT(MK_RT_CALL name,num); \
461 MkRefIncr_1X(name); \
722__parser__(template-required,no-rpc,keep,no-static)
817#define MkBufferListSizeI(bfl) (bfl)->cursize
915MkBufferListAppendI8_RT (
923MkBufferListAppendBOL_RT (
931MkBufferListAppendI16_RT (
939MkBufferListAppendI32_RT (
947MkBufferListAppendFLT_RT (
955MkBufferListAppendI64_RT (
963MkBufferListAppendG_RT (
971MkBufferListAppendDBL_RT (
980MkBufferListAppendSTR_RT (
988MkBufferListAppendBIN_RT (
997MkBufferListAppendBUF_RT (
1041MkBufferListAppendV_RT (
1050MkBufferListAppendStringR_RT (
1091 bool const onlyFirst
__parser__(default=false)
1102 bool const onlyFirst
__parser__(default=true),
1103 bool * const val_out
1107#define MkBufferListCheckOptionO_3E(bfl,opt,val_out) MkErrorCheck(MkBufferListCheckOptionBOL(bfl,opt,false,true,val_out))
1128 bool const onlyFirst
__parser__(
default=
true),
1129 MK_I8 *
const val_out
1138 bool const onlyFirst
__parser__(
default=
true),
1148 bool const onlyFirst
__parser__(
default=
true),
1152#define MkBufferListCheckOptionI_3E(bfl,opt,val_out) MkErrorCheck(MkBufferListCheckOptionI32(bfl,opt,0,true,val_out))
1160 bool const onlyFirst
__parser__(
default=
true),
1170 bool const onlyFirst
__parser__(
default=
true),
1180 bool const onlyFirst
__parser__(
default=
true),
1196 bool const onlyFirst
__parser__(
default=
true),
1208 bool const onlyFirst
__parser__(
default=
true),
#define MkBufferListS_bls_size
ILS size
enum MkErrorE MkBufferListCheckOptionI32_RT(MK_RT mkrt, MK_BFL const bfl, MK_STRN const opt, MK_I32 const defval, bool const onlyFirst, MK_I32 *const val_out)
search for opt in MkBufferListS list and fill var with opt_argument or the defval value …
enum MkErrorE MkBufferListCheckOptionSTR_RT(MK_RT mkrt, MK_BFL const bfl, MK_STRN const opt, MK_STRN const defval, bool const onlyFirst, MK_STRN *const val_out)
search for opt in MkBufferListS list and fill var with opt_argument or the defval value …
enum MkErrorE MkBufferListCheckOptionDBL_RT(MK_RT mkrt, MK_BFL const bfl, MK_STRN const opt, MK_DBL const defval, bool const onlyFirst, MK_DBL *const val_out)
search for opt in MkBufferListS list and fill var with opt_argument or the defval value …
enum MkErrorE MkBufferListCheckOptionFLT_RT(MK_RT mkrt, MK_BFL const bfl, MK_STRN const opt, MK_FLT const defval, bool const onlyFirst, MK_FLT *const val_out)
search for opt in MkBufferListS list and fill var with opt_argument or the defval value …
enum MkErrorE MkBufferListCheckOptionI16_RT(MK_RT mkrt, MK_BFL const bfl, MK_STRN const opt, MK_I16 const defval, bool const onlyFirst, MK_I16 *const val_out)
search for opt in MkBufferListS list and fill var with opt_argument or the defval value …
enum MkErrorE MkBufferListCheckOptionI64_RT(MK_RT mkrt, MK_BFL const bfl, MK_STRN const opt, MK_I64 const defval, bool const onlyFirst, MK_I64 *const val_out)
search for opt in MkBufferListS list and fill var with opt_argument or the defval value …
enum MkErrorE MkBufferListCheckOptionBUF_RT(MK_RT mkrt, MK_BFL const bfl, MK_STRN const opt, MK_BUF const defval, bool const onlyFirst, MK_BUF *const val_out)
search for opt in MkBufferListS list and fill var with opt_argument or the defval value …
enum MkErrorE MkBufferListCheckOptionI8_RT(MK_RT mkrt, MK_BFL const bfl, MK_STRN const opt, MK_I8 const defval, bool const onlyFirst, MK_I8 *const val_out)
search for opt in MkBufferListS list and fill var with opt_argument or the defval value …
static MK_BFL MkBufferListGetNull(void)
Null-Slot - return a MkBufferListC typed NULL instance …
static MK_HDL MkBufferListHandleGet_RT(MK_RT mkrt, MK_BFL const bfl)
Handle-Get-Slot - returns a export-hdl to the MkBufferListC useable for external storage
static MK_BFL MkBfl(MK_MNG mng)
cast a unknown-object into an MkBufferListS pointer or NULL if not possible
static bool MkBflCheck(MK_MNGN mng)
check MkBufferListS -> libmkkernel::MkObjectS::signature …
static bool MkBflCheckO(MK_OBJN obj)
check MkBufferListS -> libmkkernel::MkObjectS::signature …
void MkBufferListLogSS_RT(MK_RT mkrt, MK_BFLN const bfl, MK_STRN const varname, MK_OBJN fmtobj, MK_STRN const callfunc)
write the very-short-summary of the MkBufferListC to MkLogFileC (default: stderr) …
void MkBufferListLogS_RT(MK_RT mkrt, MK_BFLN const bfl, MK_STRN const varname, MK_OBJN fmtobj, MK_STRN const callfunc)
write the short-summary of the MkBufferListC to MkLogFileC (default: stderr) …
void MkBufferListLogSSS_RT(MK_RT mkrt, MK_BFLN const bfl, MK_STRN const varname, MK_OBJN fmtobj, MK_STRN const callfunc)
write the very-very-short-summary of the MkBufferListC to MkLogFileC (default: stderr) …
#define MkBufferListSizeI(bfl)
#define MkBufferListCreateTLS_inout_T(name, num, inout)
create a MkBufferListC instance as thread-local-storage OR reuse inout if possible…
#define MkBufferListCreateTLS_T(name, num)
create a MkBufferListC instance as thread-local-storage …
#define MkBufferListCreateSTATIC_T(name, num)
create a MkBufferListC instance on static-storage …
#define MkBufferListCreateLOCAL_T(name, num)
create a MkBufferListC instance on local-memory and return an pointer as instance …
#define MK_EXTERN
static library
#define MK_NULL
The Programming-Language-Micro-Kernel (PLMK) NULL value as MK_NULL in C++ …
void * MK_MACRO_TYP
helper-type used to declare a prototype for a macro
MkErrorE
collection for the different error-codes …
#define __parser__pop__
parser: stop apply a list of local attributes to a block of code …
#define __parser__push__(...)
parser: start apply a list of local attributes to a block of code …
#define __parser__(...)
parser: apply an attribute to an object in local scope …
double MK_DBL
8 byte double data-type
MK_PTRB * MK_MNG
managed object pointer, datatype will be checked at runtime
unsigned char MK_BOL
1 byte boolean data-type
signed char MK_I8
1 byte byte data-type
float MK_FLT
4 byte float data-type
signed long long MK_I64
8 byte wide integer data-type
long MK_LONG
4/8 byte long data-type
MK_STRB const * MK_FST
const format string pointer data-type
int32_t MK_HDL
4 byte int handle data-type
int32_t MK_NUM
array size data-type ('num' items in array …
signed short int MK_I16
2 byte short data-type
int MK_DBG
debug-level data-type …
signed int MK_I32
4 byte integer data-type
const MK_PTRB * MK_MNGN
const - a managed object pointer, datatype will be checked at runtime
const MK_STRB * MK_STRN
constant string pointer data-type
#define MkSanitizeCheck(_root, _m)
#define MkSanitizeCheckO(_root, _o)
#define MkObjectHandleResolve(...)
#define MkObjectHandleGet(...)
#define MkOBJ(x)
cast a known-object into an MkObjectS pointer
#define MkObjectToString(...)
#define MK_ATTR_RT_INSTANCE
#define MK_RT_ATTR_FORMAT_2
#define MK_ATTR_RT_STATIC
array of libmkkernel::MK_STRN values …
binary data default format …
The CLASS used to store a list of MkBufferS items into a flat array…
MK_BUF * data
pointer to the allocated memory (fixed position)
MK_NUM cursize
the currently used number of allocated MkBufferC objects (e.g. 0 <= cursize <= size)
MK_NUM allocsize
the maximum allocated number of elements cursize <= allocsize <= size
The ABSTRACT-CLASS used to store a native-type-data-item defined by PRIMITIVE TYPE …
string data default format …