theSq3Lite 10.0
Loading...
Searching...
No Matches
Sq3ValueC_rb.c
Go to the documentation of this file.
1
9/* LABEL-START */
10#define META_FILE_NAME "Sq3ValueC_rb.c"
11
13
14#define OT_CLASS NS(Sq3ValueC)
15#define OT_CLASS_NAME "Sq3ValueC"
16
17#define OT_LNG2META(O) Sq3Val(VAL2MNG(O))
18
20
21// new Class type object
22static MK_TYP Sq3ValueCTT = NULL;
24
25// GS marker in "Data_Wrap_Struct"
26static void NS(sMark) (MK_PTR);
27
28// ruby datatype of the wrapped struct
29static rb_data_type_t NS(Sq3ValueC_T) = {
30 "Sq3ValueC",
31 {
32 NS(sMark),
33 MK(AtomDeleteSoft),
34 0, /* dsize */
35 0, /* reserved[1] */
36 },
37 NULL, /* parent */
38 NULL, /* data */
39 RUBY_TYPED_FREE_IMMEDIATELY
40};
41
42// >>THIS<< is a Phase-1-CONSTRUCTOR: a constructor which create the SELF object
43// A Phase-2-CONSTRUCTOR is a constructor which configure an already existing object
44// DO: create a new SELF and link this SELF with the MQ-Object "mng"
45// clazz is the toplevel "subclass" or "Sq3ValueC"
46mk_inline OT_OBJ_T NS(LNG_CONSTR) (OT_CLS_T clazz, MK_MNG mng, int objc, VALUE* objv) {
47 return MK(AtomObjCrt)(clazz,&NS(Sq3ValueC_T),mng,objc,objv);
48}
49// MQ: ObjNew feature: called to return a new or an already existing RUBY-SELF-Object
50// -> moved to: msgque_rb.h
51// OT_OBJ_T NS(Sq3ValueC_ObjNew) (MK_VAL hdl) {
52// return MK(AtomObjNew) (Sq3ValueC_X2obj(hdl));
53// }
54// MQ: ObjNew feature: selfCreate will be called from "ObjNew->MkSelfNew" if MkObj need a SELF pointer
55static MK_PTR NS(Sq3ValueC_selfCreate) (MK_RT_ARGS MK_OBJ obj, MK_PTR envP) {
56 OT_OBJ_T self = NS(LNG_CONSTR) (OT_CLASS, obj, 0, NULL);
57 return VAL2PTR(self);
58}
59// MQ: called on instance-destruction for a "selfCreate" instance → goal: destroy the SELF
60static void NS(Sq3ValueC_selfDelete) (MK_RT_ARGS MK_PTR ptr, MK_PTR envP) {
62}
63// MQ: called to destroy link from SELF to META
64static void NS(Sq3ValueC_selfUnlink) (MK_RT_ARGS MK_PTR ptr, MK_PTR envP) {
65 OT_OBJ_T self = PTR2VAL(ptr);
66 RDATA(self)->data = NULL;
67}
68// initialize the RUBY and MO class specific object
69#define S_INIT NS(sInit)(MK_RT_CALL_ONLY)
70static void NS(sInit)(MK_RT_ARGS_ONLY) {
71
72 // add "selfCreate" and "selfDelete" feature to the MQ-Sq3ValueC-Type
73 Sq3ValueCTT->selfCreate = NS(Sq3ValueC_selfCreate);
74 Sq3ValueCTT->selfDelete = NS(Sq3ValueC_selfDelete);
75 Sq3ValueCTT->selfUnlink = NS(Sq3ValueC_selfUnlink);
76
77 // create the RUBY class
78 OT_CLASS = rb_define_class_under(OT_PKG, "Sq3ValueC", MK_BASE_CLASS);
79 rb_undef_alloc_func(OT_CLASS);
80
81 /* define the "NULL" object */
82 VALUE nullO = TypedData_Wrap_Struct (OT_CLASS, &NS(Sq3ValueC_T), MK_NULL);
83 NS(Sq3ValueC_MK_NULL) = nullO;
85}
86
87#define OT_SETUP_hdl OT_SETUP_hdl_tmpl(Sq3ValueC);
88#define OT_SETUP_hdl__null_allow OT_SETUP_hdl_tmpl__null_allow(Sq3ValueC);
89#define OT_SETUP_hdl_constr AllRtSetup_NULL; \
90 OT_OBJ_T clazz = self; \
91 Sq3ValueC_type hdl = (Sq3ValueC_type) &MkERROR;
92#define OT_SETUP_hdl_destr OT_SETUP_hdl_tmpl__null_allow(Sq3ValueC);
93#define OT_SETUP_hdl_static AllRtSetup_NULL; \
94 __attribute__((unused)) MK_TYP hdl = Sq3ValueC##_TT;
95#define OT_SETUP_hdl_static_constr OT_SETUP_hdl_static
96
97#if !defined(SetupRtFromObj_X)
98 #define SetupRtFromObj_X(hdl) AllRtSetup_X(hdl)
99 #define SetupRtFromObj_XN(hdl) AllRtSetup_XN(hdl)
100#endif
101
102/* LABEL-END */
103
104// BEGIN-DOC - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
105
106// doc-key: Sq3ValueC,Sq3Value,sc_,func
107#define GetNull_doc "Sq3ValueC Sq3ValueC.GetNull()"
108#define HandleResolve_doc "Sq3ValueC Sq3ValueC.HandleResolve(netHdl:MK_HDL)"
109#define Instances_doc "Sq3ValueC Sq3ValueC.Instances()"
110
111// doc-key: Sq3ValueC,Sq3Value,oCx,func
112#define Dup_doc "Sq3ValueC sq3val.Dup() (const)"
113
114// doc-key: Sq3ValueC,Sq3Value,oc_,func
115#define BUF_doc "MkBufferC val.BUF() (const)"
116#define Blob_doc "MkBufferC sq3val.Blob() (const)"
117#define Next_doc "Sq3ValueC val.Next()"
118#define Prev_doc "Sq3ValueC val.Prev()"
119
120// doc-key: Sq3ValueC,Sq3Value,oco,func
121#define VtabInFirst_doc "Sq3ValueC pVal.VtabInFirst()"
122#define VtabInNext_doc "Sq3ValueC pVal.VtabInNext()"
123
124// doc-key: Sq3ValueC,Sq3Value,om_,func
125#define BinaryR_doc "binary sq3val.BinaryR() (const)"
126#define Bytes_doc "Sq3TextE sq3val.Bytes() (const)"
127#define Double_doc "double sq3val.Double() (const)"
128#define Encoding_doc "Sq3TextE sq3val.Encoding() (const)"
129#define FromBind_doc "bool sq3val.FromBind() (const)"
130// skip class-overload: HandleGet → MkObjectHandleGet
131#define Int_doc "int32 sq3val.Int() (const)"
132#define Int64_doc "int64 sq3val.Int64() (const)"
133// skip class-overload: Log → MkObjectLog
134#define NoChange_doc "bool sq3val.NoChange() (const)"
135#define NumericType_doc "Sq3TypeE sq3val.NumericType() (const)"
136#define StringR_doc "string sq3val.StringR() (const)"
137#define SubType_doc "int32 sq3val.SubType() (const)"
138#define Text_doc "string sq3val.Text() (const)"
139#define Type_doc "Sq3TypeE sq3val.Type() (const)"
140
141// END-DOC - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
142
143/*****************************************************************************/
144/* */
145/* O B J E C T */
146/* */
147/*****************************************************************************/
148
149// BEGIN-Sq3ValueC - created by 'rb_MqC.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
150
154
155// doc-key: Sq3ValueC,Sq3ValueC-Class-Export,sc_
156
158static OT_ProcRet NS(Sq3ValueC_HandleResolve) (OtClass_ARGS) {
161 MK_HDL netHdl = 0;
164 SQ3_VAL retVal = Sq3ValueHandleResolve (netHdl);
165 OT_retObj_SET_VAL(retVal);
166 end: MK_UNUSED /* LONG JUMP on error */
168}
169
170// doc-key: Sq3ValueC,Sq3ValueC-Class-Export,om_
171
172// skip on class-overload: Sq3ValueHandleGet → MkObjectHandleGet
174static OT_ProcRet NS(Sq3ValueC_HandleGet) (Sq3ValueC_ARGS) {OT_ERROR_LNG_RETURN;}
175
177// Sq3ValueC_Class_RB_API
178
182
183// doc-key: Sq3ValueC,Sq3ValueC-Class-Introspection,oc_
184
186static OT_ProcRet NS(Sq3ValueC_Next) (Sq3ValueC_ARGS) {
190 SQ3_VAL retVal = Sq3ValueNext (hdl);
191 OT_retObj_SET_VAL(retVal);
192 end: MK_UNUSED /* LONG JUMP on error */
194}
195
197static OT_ProcRet NS(Sq3ValueC_Prev) (Sq3ValueC_ARGS) {
201 SQ3_VAL retVal = Sq3ValuePrev (hdl);
202 OT_retObj_SET_VAL(retVal);
203 end: MK_UNUSED /* LONG JUMP on error */
205}
206
207// doc-key: Sq3ValueC,Sq3ValueC-Class-Introspection,sc_
208
210static OT_ProcRet NS(Sq3ValueC_Instances) (OtClass_ARGS) {
214 SQ3_VAL retVal = Sq3ValueInstances ();
215 OT_retObj_SET_VAL(retVal);
216 end: MK_UNUSED /* LONG JUMP on error */
218}
219
221// Sq3ValueC_Class_RB_API
222
226
227// doc-key: Sq3ValueC,Sq3ValueC-Class-Misc,sc_
228
230static OT_ProcRet NS(Sq3ValueC_GetNull) (OtClass_ARGS) {
234 SQ3_VAL retVal = Sq3ValueGetNull ();
235 OT_retObj_SET_VAL(retVal);
236 end: MK_UNUSED /* LONG JUMP on error */
238}
239
241// Sq3ValueC_Class_RB_API
242
246
247// doc-key: Sq3ValueC,Sq3ValueC-Info,om_
248
250static OT_ProcRet NS(Sq3ValueC_Bytes) (Sq3ValueC_ARGS) {
255 end: MK_UNUSED /* LONG JUMP on error */
257}
258
260static OT_ProcRet NS(Sq3ValueC_Encoding) (Sq3ValueC_ARGS) {
265 end: MK_UNUSED /* LONG JUMP on error */
267}
268
270static OT_ProcRet NS(Sq3ValueC_FromBind) (Sq3ValueC_ARGS) {
275 end: MK_UNUSED /* LONG JUMP on error */
277}
278
279// skip on class-overload: Sq3ValueLog → MkObjectLog
282
284static OT_ProcRet NS(Sq3ValueC_NoChange) (Sq3ValueC_ARGS) {
289 end: MK_UNUSED /* LONG JUMP on error */
291}
292
294static OT_ProcRet NS(Sq3ValueC_NumericType) (Sq3ValueC_ARGS) {
299 end: MK_UNUSED /* LONG JUMP on error */
301}
302
304static OT_ProcRet NS(Sq3ValueC_SubType) (Sq3ValueC_ARGS) {
309 end: MK_UNUSED /* LONG JUMP on error */
311}
312
314static OT_ProcRet NS(Sq3ValueC_Type) (Sq3ValueC_ARGS) {
319 end: MK_UNUSED /* LONG JUMP on error */
321}
322
324// Sq3ValueC_Info_RB_API
325
329
330// doc-key: Sq3ValueC,Sq3ValueC-TOR,oCx
331
333static OT_ProcRet NS(Sq3ValueC_Dup) (Sq3ValueC_ARGS) {
337 SQ3_VAL retVal = Sq3ValueDup (hdl);
338 if (retVal == NULL) {
339 OT_ERROR_CONSTRUCTOR(Sq3ValueC);
340 }
341 OT_retObj_SET_VAL(retVal);
342 end: MK_UNUSED /* LONG JUMP on error */
344}
345
347// Sq3ValueC_TOR_RB_API
348
352
353// doc-key: Sq3ValueC,Sq3ValueC-Types,oc_
354
356static OT_ProcRet NS(Sq3ValueC_BUF) (Sq3ValueC_ARGS) {
360 MK_BUF retVal = Sq3ValueBUF (hdl);
361 OT_retObj_SET_BUF(retVal);
362 end: MK_UNUSED /* LONG JUMP on error */
364}
365
367static OT_ProcRet NS(Sq3ValueC_Blob) (Sq3ValueC_ARGS) {
371 MK_BUF retVal = Sq3ValueBlob (hdl);
372 OT_retObj_SET_BUF(retVal);
373 end: MK_UNUSED /* LONG JUMP on error */
375}
376
377// doc-key: Sq3ValueC,Sq3ValueC-Types,om_
378
380static OT_ProcRet NS(Sq3ValueC_BinaryR) (Sq3ValueC_ARGS) {
384 MkBinaryR retVal = Sq3ValueBinaryR (hdl);
386 end: MK_UNUSED /* LONG JUMP on error */
388}
389
391static OT_ProcRet NS(Sq3ValueC_Double) (Sq3ValueC_ARGS) {
396 end: MK_UNUSED /* LONG JUMP on error */
398}
399
401static OT_ProcRet NS(Sq3ValueC_Int) (Sq3ValueC_ARGS) {
406 end: MK_UNUSED /* LONG JUMP on error */
408}
409
411static OT_ProcRet NS(Sq3ValueC_Int64) (Sq3ValueC_ARGS) {
416 end: MK_UNUSED /* LONG JUMP on error */
418}
419
421static OT_ProcRet NS(Sq3ValueC_StringR) (Sq3ValueC_ARGS) {
425 MkStringR retVal = Sq3ValueStringR (hdl);
427 end: MK_UNUSED /* LONG JUMP on error */
429}
430
432static OT_ProcRet NS(Sq3ValueC_Text) (Sq3ValueC_ARGS) {
437 end: MK_UNUSED /* LONG JUMP on error */
439}
440
442// Sq3ValueC_Types_RB_API
443
447
448// doc-key: Sq3ValueC,Sq3ValueC-Vtab,oco
449
451static OT_ProcRet NS(Sq3ValueC_VtabInFirst) (Sq3ValueC_ARGS) {
455 SQ3_VAL ppOut;
456 MkErrorC_Check(hdl,Sq3ValueVtabInFirst (hdl, &ppOut));
457 OT_retObj_SET_VAL(ppOut);
458 end: MK_UNUSED /* LONG JUMP on error */
460}
461
463static OT_ProcRet NS(Sq3ValueC_VtabInNext) (Sq3ValueC_ARGS) {
467 SQ3_VAL ppOut;
468 MkErrorC_Check(hdl,Sq3ValueVtabInNext (hdl, &ppOut));
469 OT_retObj_SET_VAL(ppOut);
470 end: MK_UNUSED /* LONG JUMP on error */
472}
473
475// Sq3ValueC_Vtab_RB_API
476
477// END-Sq3ValueC - created by 'rb_MqC.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
478
479/*****************************************************************************/
480/* */
481/* public */
482/* */
483/*****************************************************************************/
484
485void NS(sMark) (MK_PTR ptr) {
486}
487
488void NS(Sq3ValueC_Init) (MK_RT_ARGS_ONLY) {
489
490 // init type
492 S_INIT;
493
494 // BEGIN-CLASS - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
495
496 // doc-key: Sq3ValueC,Sq3Value,sc_
497 OT_METH_O ( Sq3ValueC, GetNull, Sq3ValueC_GetNull )
498 OT_METH_S ( Sq3ValueC, GetNull, Sq3ValueC_GetNull )
499 OT_METH_O ( Sq3ValueC, HandleResolve, Sq3ValueC_HandleResolve )
500 OT_METH_S ( Sq3ValueC, HandleResolve, Sq3ValueC_HandleResolve )
501 OT_METH_O ( Sq3ValueC, Instances, Sq3ValueC_Instances )
502 OT_METH_S ( Sq3ValueC, Instances, Sq3ValueC_Instances )
503
504 // END-CLASS - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
505
506 // BEGIN-OBJ - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
507
508 // doc-key: Sq3ValueC,Sq3Value,oCx
509 OT_METH_O ( Sq3ValueC, Dup, Sq3ValueC_Dup )
510
511 // doc-key: Sq3ValueC,Sq3Value,oc_
512 OT_METH_O ( Sq3ValueC, BUF, Sq3ValueC_BUF )
513 OT_METH_O ( Sq3ValueC, Blob, Sq3ValueC_Blob )
514 OT_METH_O ( Sq3ValueC, Next, Sq3ValueC_Next )
515 OT_METH_O ( Sq3ValueC, Prev, Sq3ValueC_Prev )
516
517 // doc-key: Sq3ValueC,Sq3Value,oco
518 OT_METH_O ( Sq3ValueC, VtabInFirst, Sq3ValueC_VtabInFirst )
519 OT_METH_O ( Sq3ValueC, VtabInNext, Sq3ValueC_VtabInNext )
520
521 // doc-key: Sq3ValueC,Sq3Value,om_
522 OT_METH_O ( Sq3ValueC, BinaryR, Sq3ValueC_BinaryR )
523 OT_METH_O ( Sq3ValueC, Bytes, Sq3ValueC_Bytes )
524 OT_METH_O ( Sq3ValueC, Double, Sq3ValueC_Double )
525 OT_METH_O ( Sq3ValueC, Encoding, Sq3ValueC_Encoding )
526 OT_METH_O ( Sq3ValueC, FromBind, Sq3ValueC_FromBind )
527 // skip class-overload: Sq3ValueHandleGet → HandleGet, Sq3ValueC_HandleGet
528 OT_METH_O ( Sq3ValueC, Int, Sq3ValueC_Int )
529 OT_METH_O ( Sq3ValueC, Int64, Sq3ValueC_Int64 )
530 // skip class-overload: Sq3ValueLog → Log, Sq3ValueC_Log
531 OT_METH_O ( Sq3ValueC, NoChange, Sq3ValueC_NoChange )
532 OT_METH_O ( Sq3ValueC, NumericType, Sq3ValueC_NumericType )
533 OT_METH_O ( Sq3ValueC, StringR, Sq3ValueC_StringR )
534 OT_METH_O ( Sq3ValueC, SubType, Sq3ValueC_SubType )
535 OT_METH_O ( Sq3ValueC, Text, Sq3ValueC_Text )
536 OT_METH_O ( Sq3ValueC, Type, Sq3ValueC_Type )
537
538 // END-OBJ - created by 'rb_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
539
540}
#define MK(n)
#define OT_retObj_SET_BOL(nat)
#define OT_SETUP_NOARG(d)
#define OT_SETUP_ONEARG(d)
#define OT_ERROR_LNG_RETURN
#define PTR2VAL(nat)
#define OT_METH_S(c, s, f)
#define MK_BASE_CLASS
#define OT_CLS_T
#define OT_retObj_SET_BUF(nat)
#define OT_retObj_SET_DBL(nat)
#define OT_retObj_SET_I64(nat)
#define OT_CHECK_REQUIRED(val)
#define OT_retObj_SET_I32(nat)
#define OT_METH_O(c, s, f)
#define INCR_REF(valP)
#define OT_OBJ_T
#define OT_GET__ME_REF_MkBinaryR(b)
#define OT_retObj_RETURN
#define OT_OBJECT_DELETE_HARD(obj)
#define OT_retObj_SET_STR(nat)
#define OT_ERROR_CONSTRUCTOR(clazz)
#define OT_retObj_SET(val)
#define VAL2PTR(val)
#define OT_CHECK_NOARGS
#define MkErrorC_Check(mng, PROC)
#define OT_ProcRet
#define OT_GET__ME_REF_MkStringR(b)
#define OtClass_ARGS
tag: nhi1-release-250425
#define SQ3(n)
#define Sq3ValueC_MK_NULL
#define OT_PKG
#define NS(n)
#define OT_retObj_SET_VAL(nat)
#define OT_NEW_Sq3_enum_OBJ(typ, i)
#define Sq3ValueC_ARGS
#define Instances_doc
#define Int64_doc
#define BinaryR_doc
#define Blob_doc
#define OT_SETUP_hdl
#define Int_doc
#define Text_doc
#define Dup_doc
#define NumericType_doc
#define GetNull_doc
#define Next_doc
#define HandleResolve_doc
#define VtabInFirst_doc
#define Prev_doc
static MK_TYP Sq3ValueCTT
#define OT_CLASS
#define OT_SETUP_hdl_static
#define Type_doc
#define BUF_doc
#define StringR_doc
#define SubType_doc
#define FromBind_doc
#define S_INIT
#define VtabInNext_doc
#define Double_doc
#define NoChange_doc
#define Bytes_doc
#define Encoding_doc
#define mk_inline
#define MK_UNUSED
#define MK_NULL
#define MK_DEPRECATED
MK_PTRB * MK_PTR
MK_PTRB * MK_MNG
int32_t MK_HDL
#define MK_RT_ARGS
#define MK_RT_ARGS_ONLY
static SQ3_VAL Sq3ValueGetNull(void)
Null-Slot - return a Sq3ValueC typed NULL instance …
#define Sq3ValueInstances()
#define Sq3ValueHandleResolve(...)
static SQ3_VAL Sq3ValueNext(SQ3_VAL const val)
get next instance from linked-list of Sq3ValueS type
static SQ3_VAL Sq3ValuePrev(SQ3_VAL const val)
get previous instance from linked-list of Sq3ValueS type
__thread MK_TYP Sq3ValueC_TT
class as MkTypeDefS-class-type …
#define Sq3ValueC_T
class as MkTypeDefS-class-type (cast from Sq3ValueC_TT into MkTypeS) …
static enum Sq3TextE Sq3ValueEncoding(SQ3_VALN sq3val)
Report the internal text encoding state of an sqlite3_value object …
static enum Sq3TypeE Sq3ValueType(SQ3_VALN sq3val)
Obtaining SQL Values …
static enum Sq3TextE Sq3ValueBytes(SQ3_VALN sq3val)
Obtaining SQL Values …
static MK_I32 Sq3ValueSubType(SQ3_VALN sq3val)
Finding The Subtype Of SQL Values …
static MK_BOOL Sq3ValueFromBind(SQ3_VALN sq3val)
Obtaining SQL Values …
static MK_BOOL Sq3ValueNoChange(SQ3_VALN sq3val)
Obtaining SQL Values …
static enum Sq3TypeE Sq3ValueNumericType(SQ3_VALN sq3val)
Obtaining SQL Values …
static SQ3_VAL Sq3ValueDup(SQ3_VALN sq3val)
Copy And Free SQL Values …
static MkStringR Sq3ValueStringR(SQ3_VALN sq3val)
Obtaining SQL Values …
#define Sq3ValueBUF(...)
static MkBinaryR Sq3ValueBinaryR(SQ3_VALN sq3val)
Obtaining SQL Values …
#define Sq3ValueBlob(...)
static MK_I64 Sq3ValueInt64(SQ3_VALN sq3val)
Obtaining SQL Values …
static MK_STRN Sq3ValueText(SQ3_VALN sq3val)
Obtaining SQL Values …
static MK_DBL Sq3ValueDouble(SQ3_VALN sq3val)
Obtaining SQL Values …
static MK_I32 Sq3ValueInt(SQ3_VALN sq3val)
Obtaining SQL Values …
static enum MkErrorE Sq3ValueVtabInNext(SQ3_VAL pVal, SQ3_VAL *ppOut)
Find all elements on the right-hand side of an IN constraint …
static enum MkErrorE Sq3ValueVtabInFirst(SQ3_VAL pVal, SQ3_VAL *ppOut)
Find all elements on the right-hand side of an IN constraint …
#define OT_CHECK_NIH(val)
MkSelfUnlinkF selfUnlink
MkSelfDeleteF selfDelete
MkSelfCreateF selfCreate
Struct to represent the data of the Sq3ValueC …