theConfig 10.0 NHI1 - theKernel - theLink - theConfig - theSq3Lite - theCompiler - theBrain - theGuard
c - tcl - cs - py - rb - jv - cc
Loading...
Searching...
No Matches
LcConfigC_def_lc.h
Go to the documentation of this file.
1
12/* LABEL-START */
13#pragma once
14
15#include "LibLcConfig_lc.h"
16/* LABEL-END */
17
19
20// BEGIN-Class-Doc-Order - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
21
22// external
28
29// END-Class-Doc-Order - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
30
33
34__parser__(type=ME_PAX_LC_CBP:"generic pointer to libconfig call-back data")
35typedef MK_PTRB * LC_CBP;
36
37// [LcConfigIncludeCall]
38#define LcConfigIncludeCallF_ARGS \
39 MK_RT_ARGS struct LcConfigS* const cfg, MK_STRN incDir, MK_STRN path, MK_BFL ret_inout
41
42#define LcConfigIncludeFreeF_ARGS MK_RT_ARGS struct LcConfigS* const cfg
44// [LcConfigIncludeCall]
45
46#define LcConfigIncludeCallF_CHECK do { \
47 assert (cfg->fConfigIncludeData != NULL); \
48 if (LcCfgCheck(cfg) == false || MkOBJ_R(cfg).self == NULL) return MK_OK; \
49} while (0)
50
51// [LcSettingDeleteCall]
52#define LcSettingDeleteCallF_ARGS \
53 MK_RT_ARGS struct LcConfigS* const cfg, struct LcSettingS* const cfs
55
56#define LcSettingDeleteFreeF_ARGS MK_RT_ARGS struct LcConfigS* const cfg
58// [LcSettingDeleteCall]
59
60#define LcSettingDeleteCallF_CHECK do { \
61 assert (cfg->fSettingDeleteData != NULL); \
62 if (LcCfgCheck(cfg) == false || MkOBJ_R(cfg).self == NULL) return MK_OK; \
63} while (0)
64
66// LcConfigC_C_API
67
68// MARK_C ==================================================================
69
73
75struct LcConfigS {
76 // BEGIN-LcConfigS-super - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
77
78 union {
79 struct MkObjectS obj; // instance-base MkObjectS
81
82 // END-LcConfigS-super - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
83
84 // BEGIN-LcConfigS-native - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
85
87
88 // END-LcConfigS-native - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
89
91 //config_t *nat ; ///< \b internal - link between \e LcConfigS and \libconfig
92
93 // include function
97 //MK_PTR fConfigIncludeHook ; ///< \b internal - link between \e LcConfigS and \e target-programming-language ("my" in TCL)
98
99 // setting delete hook function
103 // MK_PTR fSettingDeleteHook ; ///< \b internal - link between \e LcConfigS and \e target-programming-language ("my" in TCL)
104};
105
106// MARK_D ==================================================================
107// BEGIN-LcConfigS-Definition - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
108
112 __parser__push__(prefix=Class, doc-group=Define, doc-index=Class);
113
114// Signature --------------------------------------------------------------
117
118 #define LcConfigC_SIGNATURE (MkObjectC_SIGNATURE ^ (15u<<10))
119 #define LcConfigC_MASK (((1u<<22)-1)<<10)
120
122
123// CompileTimeCast --------------------------------------------------------------
126
127 #define LcConfigC_X2cfg(x) (x)
128 #define LcConfigC_X2obj(x) MkOBJ(x)
129
131
132// TypeDef --------------------------------------------------------------
135
137 __parser__(ignore) typedef struct LcConfigS LcConfigCR;
139 __parser__(ignore) typedef const struct LcConfigS LcConfigCNR;
143 #define LcConfigC_T ( (struct MkSuperTypeS *) (LcConfigC_TT) )
145 #define LcConfigST LcConfigC_T
147 #define LcConfigSTT (MkTYP(LcConfigST))
149 #define LcConfigC_type LC_CFG
151 #define LcConfigCT_X(instance) ( (struct MkSuperTypeS *) (MkOBJ_R(instance).type) )
153 #define LcConfigCTT_X(instance) (MkOBJ_R(instance).type)
155 #define LcConfigCT_TT(typ) ( (struct MkSuperTypeS *) (typ) )
157 #define LcConfigC_NS LC
159 #define LcConfigCTT LcConfigCTT
161 #define LcConfigCT ( (struct MkSuperTypeS *) LcConfigCTT )
162
164
165// TypeCheck --------------------------------------------------------------
168
169 #pragma GCC diagnostic push
170 #pragma GCC diagnostic ignored "-Wattributes"
171
174 __parser__(class=LcConfigC,static,hide)
177 return MkSanitizeCheck(LcConfigC,mng);
178 }
179
182 __parser__(class=LcConfigC,static,hide)
185 return MkSanitizeCheckO(LcConfigC,obj);
186 }
187
188 #pragma GCC diagnostic pop
189 #define LcConfigC_Check(mng) LcCfgCheck(mng)
190
192
193// RunTimeCast --------------------------------------------------------------
196
198 __parser__(class=LcConfigC,hide,static)
199 META_ATTRIBUTE_SANITIZE
202 return (LcCfgCheck(mng) ? (LC_CFG)mng : NULL);
203 }
204
206 __parser__(class=LcConfigC,hide,static)
207 META_ATTRIBUTE_SANITIZE
210 return (LcCfgCheck(mng) ? (LC_CFGN)mng : NULL);
211 }
212
214 #define LcCfgRaise(_cfg) if (!_MkCheckX(LcConfigC,_cfg)) { \
215 MkErrorSetC_1E("'LcConfigC' hdl is NULL"); \
216 goto error ; \
217 }
218
220 #define LcCFG_R(x) (*(x)).super.cfg
222 #define LcCFG(x) (&LcCFG_R(x))
223
225
228// LcConfigC_Class_Define_C_API
229
230// END-LcConfigS-Definition - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
231
233
234// MARK_C ==================================================================
235
238#define LcGetCfgFromNat(_nat) LC_SET_T(LcConfigC,config_get_hook,_nat)
239
240// =========================================================================
241// BEGIN-LcConfigS-Export - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
242
245
248
249__parser__push__(doc-group=_ignore_,doc-index=Class,doc-name=Export,class=LcConfigC);
250
253__parser__(internal)
256 return LcGetCfgFromNat(hdl);
257}
258
260__parser__(internal)
263 return LcGetCfgFromNat(hdl);
264}
265
281__parser__(class-overload=MkObjectHandleGet)
285 LC_CFG const cfg __parser__(null-allowed)
286) {
287 return MkObjectHandleGet(cfg?MkOBJ(cfg):NULL);
288}
289
298__parser__(flags=new)
302 MK_HDL const netHdl
303) {
304 return LcCfg(MkObjectHandleResolve(netHdl));
305}
306
316#define LcConfigHandleResolve_e(netHdl) ({ \
317 MK_HDL tmpHdl=netHdl; \
318 LC_CFG tmp; \
319 if (tmpHdl==0) { \
320 tmp=NULL; \
321 } else { \
322 tmp=LcConfigHandleResolve(tmpHdl); \
323 if (tmp==NULL) { \
324 MkErrorSetC_1_NULL("ERROR: 'LcConfigC' handle is 'NULL'"); \
325 goto error; \
326 }; \
327 }; \
328 tmp; \
329})
330
332
334// Class export & import
335
339 __parser__(flags=new,doc-group=_ignore_,doc-index=Class,doc-name=Misc,class=LcConfigC,null-return-allow)
342 return (LC_CFG)MK_NULL;
343 }
345// LcConfigC - Misc - function
346
348// LcConfigC_Class_C_API
349
350// END-LcConfigS-Export - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
351
352// =========================================================================
353// BEGIN-Class-Introspection - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
354
359
360__parser__push__(doc-name=Introspection,doc-index=Class,class=LcConfigC,no-rpc,null-return-allow,flags=new);
361
369
373 MK_INSTANCE_HDL(cfg);
374 return (LC_CFG)LcConfigC_X2obj(cfg)->obj_protect.next;
375}
376
380 MK_INSTANCE_HDL(cfg);
381 return (LC_CFG)LcConfigC_X2obj(cfg)->obj_protect.prev;
382}
383
385
388// LcConfigC_Class_C_API
389
390// END-Class-Introspection - created by 'c_Class.tcl -i NHI1_HOME/theConfig/c/gen/c_lcconfig.meta' - DO NOT change
391
LibLcConfig_lc.h - 16 Nov 2024 - aotto1968.
#define BEGIN_LC_C_DECLS
#define END_LC_C_DECLS
MK_PTRB * LC_CBP
void(* LcConfigIncludeFreeF)(LcConfigIncludeFreeF_ARGS)
enum MkErrorE(* LcSettingDeleteCallF)(LcSettingDeleteCallF_ARGS)
#define LcSettingDeleteFreeF_ARGS
enum MkErrorE(* LcConfigIncludeCallF)(LcConfigIncludeCallF_ARGS)
void(* LcSettingDeleteFreeF)(LcSettingDeleteFreeF_ARGS)
#define LcConfigIncludeFreeF_ARGS
#define LcConfigIncludeCallF_ARGS
#define LcSettingDeleteCallF_ARGS
static MK_HDL LcConfigHandleGet_RT(MK_RT mkrt, LC_CFG const cfg)
Handle-Get-Slot - returns a export-hdl to the LcConfigC useable for external storage
static LC_CFG LcConfigHandleResolve_RT(MK_RT mkrt, MK_HDL const netHdl)
Handle-Resolve-Slot - return a LcConfigC from netHdl or MK_NULL if invalid…
static MK_ARTIFICIAL LC_CFG LcConfigC_ObjNew(config_t *hdl)
return Programming-Language-Micro-Kernel (PLMK) instance from native hdl …
#define LcGetCfgFromNat(_nat)
helper for LcConfigC_ObjNew …
static LC_CFG LcConfigInstances_RT(MK_RT mkrt)
get head-instance from linked-list of LcConfigS type …
static LC_CFG LcConfigPrev(LC_CFG const cfg)
get previous instance from linked-list of LcConfigS type
static LC_CFG LcConfigC_ObjCreate(config_t *hdl)
return Programming-Language-Micro-Kernel (PLMK) instance from native hdl …
static LC_CFG LcConfigNext(LC_CFG const cfg)
get next instance from linked-list of LcConfigS type
static LC_CFG LcConfigGetNull(void)
Null-Slot - return a LcConfigC typed NULL instance …
static bool LcCfgCheckO(MK_OBJN obj)
check LcConfigS -> MkObjectS::signature …
#define LcConfigC_X2obj(x)
static bool LcCfgCheck(MK_MNGN mng)
check LcConfigS -> MkObjectS::signature …
static LC_CFG LcCfg(MK_MNG mng)
cast a unknown-object into an LcConfigS pointer or NULL if not possible
__thread MK_TYP LcConfigC_TT
class as MkSuperTypeS-class-type …
static LC_CFGN LcCfgN(MK_MNGN mng)
(const) cast a unknown-object into an LcConfigS pointer or NULL if not possible
#define LC_EXTERN_DATA
#define LC_STATIC_RT
#define MK_DECL
#define mk_inline
#define MK_ARTIFICIAL
#define MK_NULL
MkErrorE
#define __parser__pop__
#define __parser__push__(...)
#define __parser__(...)
const MK_PTRB * MK_MNGN
MK_PTRB * MK_MNG
void MK_PTRB
int32_t MK_HDL
#define MkSanitizeCheck(_root, _m)
#define MkSanitizeCheckO(_root, _o)
#define MkObjectHandleResolve(...)
#define MkObjectHandleGet(...)
#define MkOBJ(x)
#define MK_ATTR_STATIC
#define MK_ATTR_RT_INSTANCE
#define MK_ATTR_INSTANCE
#define MkThreadLocal
#define MK_PARSER_RT
#define MK_PARSER_RT_ONLY
#define MK_ATTR_RT_STATIC
#define MkRtSetup_NULL
#define MK_INSTANCE_HDL(x)
Struct to represent the data from the LcConfigC …
LcConfigIncludeCallF fConfigIncludeCall
internal - callback call function
LC_CBP fConfigIncludeData
callback data - internal used for config_include_fn_t callback
LcSettingDeleteFreeF fSettingDeleteFree
internal - callback data-free function
LC_CBP fSettingDeleteData
callback data - internal used for config_include_fn_t callback
LcConfigIncludeFreeF fConfigIncludeFree
internal - callback data-free function
config_t * nat
internal - link between LcConfigS and native library
config_t natdata
internal - predefined storage used for 'nat' pointer
union LcConfigS::@1 super
LcSettingDeleteCallF fSettingDeleteCall
internal - callback call function
struct MkObjectS obj
MK_OBJ instances