theSq3Lite 10.0
Loading...
Searching...
No Matches
Sq3BlobC_def_sq3.h
Go to the documentation of this file.
1
9/* LABEL-START */
10#pragma once
11
12#include "LibSq3Lite_sq3.h"
13/* LABEL-END */
14
16
17// BEGIN-Class-Doc-Order - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
18
19// external
25
26// END-Class-Doc-Order - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
27
28// MARK_C ==================================================================
29
34
36struct Sq3BlobS {
37 // BEGIN-Sq3BlobS-super - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
38
39 union {
40 struct MkObjectS obj; // instance-base MkObjectS
42
43 // END-Sq3BlobS-super - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
44
45 // BEGIN-Sq3BlobS-native - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
46
48
49 // END-Sq3BlobS-native - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
50};
51
52// MARK_D ==================================================================
53// BEGIN-Sq3BlobS-Definition - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
54
58 __parser__push__(prefix=Class, doc-group=Define, doc-index=Class);
59
60// Signature --------------------------------------------------------------
63
64 #define Sq3BlobC_SIGNATURE (MkObjectC_SIGNATURE ^ (20u<<10))
65 #define Sq3BlobC_MASK (((1u<<22)-1)<<10)
66
68
69// CompileTimeCast --------------------------------------------------------------
72
73 #define Sq3BlobC_X2blob(x) (x)
74 #define Sq3BlobC_X2obj(x) MkOBJ(x)
75
77
78// TypeDef --------------------------------------------------------------
81
83 __parser__(ignore) typedef struct Sq3BlobS Sq3BlobCR;
85 __parser__(ignore) typedef const struct Sq3BlobS Sq3BlobCNR;
89 #define Sq3BlobC_T ( (struct MkTypeDefS *) (Sq3BlobC_TT) )
91 #define Sq3BlobST Sq3BlobC_T
93 #define Sq3BlobSTT (MkTYP(Sq3BlobST))
95 #define Sq3BlobC_type SQ3_BLOB
97 #define Sq3BlobCT_X(instance) ( (struct MkTypeDefS *) (MkOBJ_R(instance).type) )
99 #define Sq3BlobCTT_X(instance) (MkOBJ_R(instance).type)
101 #define Sq3BlobCT_TT(typ) ( (struct MkTypeDefS *) (typ) )
103 #define Sq3BlobC_NS SQ3
105 #define Sq3BlobCTT Sq3BlobCTT
107 #define Sq3BlobCT ( (struct MkTypeDefS *) Sq3BlobCTT )
108
110
111// TypeCheck --------------------------------------------------------------
114
115 #pragma GCC diagnostic push
116 #pragma GCC diagnostic ignored "-Wattributes"
117
120 __parser__(class=Sq3BlobC,static,hide)
123 return MkSanitizeCheck(Sq3BlobC,mng);
124 }
125
128 __parser__(class=Sq3BlobC,static,hide)
131 return MkSanitizeCheckO(Sq3BlobC,obj);
132 }
133
134 #pragma GCC diagnostic pop
135 #define Sq3BlobC_Check(mng) Sq3BlobCheck(mng)
136
138
139// RunTimeCast --------------------------------------------------------------
142
144 __parser__(class=Sq3BlobC,hide,static)
145 META_ATTRIBUTE_SANITIZE
148 return (Sq3BlobCheck(mng) ? (SQ3_BLOB)mng : NULL);
149 }
150
152 __parser__(class=Sq3BlobC,hide,static)
153 META_ATTRIBUTE_SANITIZE
156 return (Sq3BlobCheck(mng) ? (SQ3_BLOBN)mng : NULL);
157 }
158
160 #define Sq3BlobRaise(_blob) if (!_MkCheckX(Sq3BlobC,_blob)) { \
161 MkErrorSetC_1E("'Sq3BlobC' hdl is NULL"); \
162 goto error ; \
163 }
164
166 #define Sq3BLOB_R(x) (*(x)).super.blob
168 #define Sq3BLOB(x) (&Sq3BLOB_R(x))
169
171
174// Sq3BlobC_Class_Define_C_API
175
176// END-Sq3BlobS-Definition - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
177
179
180// MARK_C ==================================================================
181
184#define Sq3GetBlobFromNat(_nat) SQ3_SET_T(Sq3BlobC,some_api__hook,_nat)
185
186// =========================================================================
187// BEGIN-Sq3BlobS-Export - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
188
191
194
195__parser__push__(doc-group=_ignore_,doc-index=Class,doc-name=Export,class=Sq3BlobC);
196
199__parser__(internal)
202 return Sq3GetBlobFromNat(hdl);
203}
204
206__parser__(internal)
209 return Sq3GetBlobFromNat(hdl);
210}
211
227__parser__(class-overload=MkObjectHandleGet)
231 SQ3_BLOB const blob __parser__(null-allowed)
232) {
233 return MkObjectHandleGet(blob?MkOBJ(blob):NULL);
234}
235
244__parser__(flags=new)
248 MK_HDL const netHdl
249) {
250 return Sq3Blob(MkObjectHandleResolve(netHdl));
251}
252
262#define Sq3BlobHandleResolve_e(netHdl) ({ \
263 MK_HDL tmpHdl=netHdl; \
264 SQ3_BLOB tmp; \
265 if (tmpHdl==0) { \
266 tmp=NULL; \
267 } else { \
268 tmp=Sq3BlobHandleResolve(tmpHdl); \
269 if (tmp==NULL) { \
270 MkErrorSetC_1_NULL("ERROR: 'Sq3BlobC' handle is 'NULL'"); \
271 goto error; \
272 }; \
273 }; \
274 tmp; \
275})
276
278
280// Class export & import
281
285 __parser__(flags=new,doc-group=_ignore_,doc-index=Class,doc-name=Misc,class=Sq3BlobC,null-return-allow)
288 return (SQ3_BLOB)MK_NULL;
289 }
291// Sq3BlobC - Misc - function
292
294// Sq3BlobC_Class_C_API
295
296// END-Sq3BlobS-Export - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
297
298// =========================================================================
299// BEGIN-Class-Introspection - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
300
305
306__parser__push__(doc-name=Introspection,doc-index=Class,class=Sq3BlobC,no-rpc,null-return-allow,flags=new);
307
315
319 MK_INSTANCE_HDL(blob);
320 return (SQ3_BLOB)Sq3BlobC_X2obj(blob)->obj_protect.next;
321}
322
326 MK_INSTANCE_HDL(blob);
327 return (SQ3_BLOB)Sq3BlobC_X2obj(blob)->obj_protect.prev;
328}
329
331
334// Sq3BlobC_Class_C_API
335
336// END-Class-Introspection - created by 'c_Class.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
337
tag: nhi1-release-250425
#define BEGIN_SQ3_C_DECLS
#define END_SQ3_C_DECLS
#define MK_DECL
#define mk_inline
#define MK_ARTIFICIAL
#define MK_NULL
#define __parser__pop__
#define __parser__push__(...)
#define __parser__(...)
const MK_PTRB * MK_MNGN
MK_PTRB * MK_MNG
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)
static MK_OBJ MkTypeInstances(MK_TYP const typ)
static MK_ARTIFICIAL SQ3_BLOB Sq3BlobC_ObjNew(sqlite3_blob *hdl)
return Programming-Language-Micro-Kernel (PLMK) instance from native hdl …
static SQ3_BLOB Sq3BlobHandleResolve_RT(MK_RT mkrt, MK_HDL const netHdl)
Handle-Resolve-Slot - return a Sq3BlobC from netHdl or null if invalid…
static SQ3_BLOB Sq3BlobPrev(SQ3_BLOB const blob)
get previous instance from linked-list of Sq3BlobS type
static SQ3_BLOB Sq3BlobC_ObjCreate(sqlite3_blob *hdl)
return Programming-Language-Micro-Kernel (PLMK) instance from native hdl …
#define Sq3GetBlobFromNat(_nat)
helper for Sq3BlobC_ObjNew …
static SQ3_BLOB Sq3BlobInstances_RT(MK_RT mkrt)
get head-instance from linked-list of Sq3BlobS type …
static SQ3_BLOB Sq3BlobNext(SQ3_BLOB const blob)
get next instance from linked-list of Sq3BlobS type
static SQ3_BLOB Sq3BlobGetNull(void)
Null-Slot - return a Sq3BlobC typed NULL instance …
static MK_HDL Sq3BlobHandleGet_RT(MK_RT mkrt, SQ3_BLOB const blob)
Handle-Get-Slot - returns a export-hdl to the Sq3BlobC useable for external storage
#define Sq3BlobC_X2obj(x)
static bool Sq3BlobCheck(MK_MNGN mng)
check Sq3BlobS -> MkObjectS::signature …
static SQ3_BLOBN Sq3BlobN(MK_MNGN mng)
(const) cast a unknown-object into an Sq3BlobS pointer or NULL if not possible
static SQ3_BLOB Sq3Blob(MK_MNG mng)
cast a unknown-object into an Sq3BlobS pointer or NULL if not possible
static bool Sq3BlobCheckO(MK_OBJN obj)
check Sq3BlobS -> MkObjectS::signature …
__thread MK_TYP Sq3BlobC_TT
class as MkTypeDefS-class-type …
#define SQ3_EXTERN_DATA
#define SQ3_STATIC_RT
struct sqlite3_blob sqlite3_blob
Struct to represent the data of the Sq3BlobC …
sqlite3_blob * nat
internal - link between Sq3BlobS and native library
struct MkObjectS obj
union Sq3BlobS::@0 super