theSq3Lite 10.0
Loading...
Searching...
No Matches
Sq3ValueC_py.c
Go to the documentation of this file.
1
9/* LABEL-START */
10
11#define META_FILE_NAME "Sq3ValueC_py.c"
12
14
15// PY class
16#define OT_CLASS (&NS(Sq3ValueCR))
17#define OT_CLASS_NAME "Sq3ValueC"
18
19#define OT_LNG2META(O) Sq3Val(VAL2MNG(O))
20
21#define OT_retObj_CONSTR(mng) OT_retObj_SET(NS(Sq3ValueC_CTOR)(MK_RT_CALL (PyTypeObject*)class,mng))
22
23#define OT_SETUP_hdl OT_SETUP_hdl_tmpl(Sq3ValueC)
24#define OT_SETUP_hdl__null_allow OT_SETUP_hdl_tmpl__null_allow(Sq3ValueC)
25#define OT_SETUP_hdl_constr MK_RT_UNUSED AllRtSetup_NULL; \
26 SQ3_VAL hdl = (SQ3_VAL) OT_CLASS;
27#define OT_SETUP_hdl_destr OT_SETUP_hdl_tmpl__null_allow(Sq3ValueC)
28#define OT_SETUP_hdl_static MK_RT_UNUSED AllRtSetup_NULL; \
29 __attribute__((unused)) MK_TYP hdl = Sq3ValueC##_TT;
30
31#define OT_SETUP_hdl_static_constr OT_SETUP_hdl_static
32
33#if !defined(SetupRtFromObj_X)
34 #define SetupRtFromObj_X(hdl) AllRtSetup_X(hdl)
35 #define SetupRtFromObj_XN(hdl) AllRtSetup_XN(hdl)
36#endif
37
38// MO class
39#undef Sq3ValueCTT
40#define Sq3ValueCTT SQ3(Sq3LiteThreadState).Sq3ValueCTT
41/* Sq3ValueC_MK_NULL defined in LibSq3Lite_py.h */
42
43__attribute__((unused)) mk_inline
44OT_OBJ_T NS(Sq3ValueC_CTOR) (MK_RT_ARGS OT_CLS_T type, SQ3_VAL hdl) {
45 return MK(AtomCreate)(MK_RT_CALL type,Sq3ValueC_X2obj(hdl));
46}
47
48// helper: mk_dbg_color_ln(MK_COLOR_YELLOW,"hdl<%p>, self<%p>", obj, self);
49
50// META: ObjNew feature: selfCreate will be called from "ObjNew->MkSelfNew" if MkObj need a SELF pointer
51static MK_PTR NS(Sq3ValueC_selfCreate) (MK_RT_ARGS MK_OBJ const obj, MK_PTR const env) {
52 return MK(AtomCreate) (MK_RT_CALL OT_CLASS,obj);
53}
54// META: called if MkObj must be destroyed and if the SELF is still alive → goal: destroy the SELF
55static void NS(Sq3ValueC_selfDelete) (MK_RT_ARGS MK_PTR self, MK_PTR const env) {
56 MK(AtomDeleteHard) (MK_RT_CALL OT_SELF);
57}
58// META: called to destroy link from SELF to META
59static void NS(Sq3ValueC_selfUnlink) (MK_RT_ARGS MK_PTR self, MK_PTR const env) {
60 MkObjectC_Obj *selfO = (MkObjectC_Obj*) self;
61 selfO->hdl = NULL;
62}
63
64// initialize the PY and MO class specific object
65#define ClassInit \
66 /* if not already done, initialize NEW META type */ \
67 if (Sq3ValueCTT == NULL) Sq3ValueCTT = Sq3ValueSTT; \
68 \
69 /* protect against double call */ \
70 if (Sq3ValueCTT->selfCreate == NS(Sq3ValueC_selfCreate)) return MK_OK; \
71 \
72 /* add "selfCreate" and "selfDelete" feature to the META-Class */ \
73 Sq3ValueCTT->selfCreate = NS(Sq3ValueC_selfCreate); \
74 Sq3ValueCTT->selfDelete = NS(Sq3ValueC_selfDelete); \
75 Sq3ValueCTT->selfUnlink = NS(Sq3ValueC_selfUnlink); \
76 \
77 if (!PyType_HasFeature(OT_CLASS,Py_TPFLAGS_READY)) { \
78 NS(Sq3ValueCR).tp_base = Sq3ValueC_base; \
79 OtErrorCheckLng (PyType_Ready(OT_CLASS)); \
80 } \
81 OtErrorCheckLng(PyModule_AddObjectRef(m, "Sq3ValueC", (PyObject *)OT_CLASS)); \
82 \
83 /* define the "NULL" object */ \
84 Sq3ValueC_MK_NULL = Py_NewRef(MK(AtomCreate) (MK_RT_CALL OT_CLASS, NULL /*obj*/));
85
86/* LABEL-END */
87
88#define META_CONTEXT_S MK_ERROR_DEFAULT
89
90// MARK_D
96
97// BEGIN-DOC - created by 'py_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
98
99// doc-key: Sq3ValueC,Sq3Value,sc_,func
100#define GetNull_doc "Sq3ValueC Sq3ValueC.GetNull()"
101#define HandleResolve_doc "Sq3ValueC Sq3ValueC.HandleResolve(netHdl:MK_HDL)"
102#define Instances_doc "Sq3ValueC Sq3ValueC.Instances()"
103
104// doc-key: Sq3ValueC,Sq3Value,oCx,func
105#define Dup_doc "Sq3ValueC sq3val.Dup() (const)"
106
107// doc-key: Sq3ValueC,Sq3Value,oc_,func
108#define BUF_doc "MkBufferC val.BUF() (const)"
109#define Blob_doc "MkBufferC sq3val.Blob() (const)"
110#define Next_doc "Sq3ValueC val.Next()"
111#define Prev_doc "Sq3ValueC val.Prev()"
112
113// doc-key: Sq3ValueC,Sq3Value,oco,func
114#define VtabInFirst_doc "Sq3ValueC pVal.VtabInFirst()"
115#define VtabInNext_doc "Sq3ValueC pVal.VtabInNext()"
116
117// doc-key: Sq3ValueC,Sq3Value,om_,func
118#define BinaryR_doc "binary sq3val.BinaryR() (const)"
119#define Bytes_doc "Sq3TextE sq3val.Bytes() (const)"
120#define Double_doc "double sq3val.Double() (const)"
121#define Encoding_doc "Sq3TextE sq3val.Encoding() (const)"
122#define FromBind_doc "bool sq3val.FromBind() (const)"
123// skip class-overload: HandleGet → MkObjectHandleGet
124#define Int_doc "int32 sq3val.Int() (const)"
125#define Int64_doc "int64 sq3val.Int64() (const)"
126// skip class-overload: Log → MkObjectLog
127#define NoChange_doc "bool sq3val.NoChange() (const)"
128#define NumericType_doc "Sq3TypeE sq3val.NumericType() (const)"
129#define StringR_doc "string sq3val.StringR() (const)"
130#define SubType_doc "int32 sq3val.SubType() (const)"
131#define Text_doc "string sq3val.Text() (const)"
132#define Type_doc "Sq3TypeE sq3val.Type() (const)"
133
134// END-DOC - created by 'py_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
135
136// MARK_M
142
143// BEGIN-Sq3ValueC - created by 'py_MqC.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
144
148
149// doc-key: Sq3ValueC,Sq3ValueC-Class-Export,sc_
150
152static OT_ProcRet NS(Sq3ValueC_HandleResolve) (OtClass_ARGS) {
155 MK_HDL netHdl = 0;
158 SQ3_VAL retVal = Sq3ValueHandleResolve (netHdl);
159 OT_retObj_SET_VAL(retVal);
160 goto end;
161 error:
163 end:
165}
166
167// doc-key: Sq3ValueC,Sq3ValueC-Class-Export,om_
168
169// skip on class-overload: Sq3ValueHandleGet → MkObjectHandleGet
171static OT_ProcRet NS(Sq3ValueC_HandleGet) (Sq3ValueC_ARGS) {OT_ERROR_LNG_RETURN;}
172
174// Sq3ValueC_Class_PY_API
175
179
180// doc-key: Sq3ValueC,Sq3ValueC-Class-Introspection,oc_
181
183static OT_ProcRet NS(Sq3ValueC_Next) (Sq3ValueC_ARGS) {
187 SQ3_VAL retVal = Sq3ValueNext (hdl);
188 OT_retObj_SET_VAL(retVal);
189 goto end;
190 error:
192 end:
194}
195
197static OT_ProcRet NS(Sq3ValueC_Prev) (Sq3ValueC_ARGS) {
201 SQ3_VAL retVal = Sq3ValuePrev (hdl);
202 OT_retObj_SET_VAL(retVal);
203 goto end;
204 error:
206 end:
208}
209
210// doc-key: Sq3ValueC,Sq3ValueC-Class-Introspection,sc_
211
213static OT_ProcRet NS(Sq3ValueC_Instances) (OtClass_ARGS) {
217 SQ3_VAL retVal = Sq3ValueInstances ();
218 OT_retObj_SET_VAL(retVal);
219 goto end;
220 error:
222 end:
224}
225
227// Sq3ValueC_Class_PY_API
228
232
233// doc-key: Sq3ValueC,Sq3ValueC-Class-Misc,sc_
234
236static OT_ProcRet NS(Sq3ValueC_GetNull) (OtClass_ARGS) {
240 SQ3_VAL retVal = Sq3ValueGetNull ();
241 OT_retObj_SET_VAL(retVal);
242 goto end;
243 error:
245 end:
247}
248
250// Sq3ValueC_Class_PY_API
251
255
256// doc-key: Sq3ValueC,Sq3ValueC-Info,om_
257
259static OT_ProcRet NS(Sq3ValueC_Bytes) (Sq3ValueC_ARGS) {
264 goto end;
265 error:
267 end:
269}
270
272static OT_ProcRet NS(Sq3ValueC_Encoding) (Sq3ValueC_ARGS) {
277 goto end;
278 error:
280 end:
282}
283
285static OT_ProcRet NS(Sq3ValueC_FromBind) (Sq3ValueC_ARGS) {
290 goto end;
291 error:
293 end:
295}
296
297// skip on class-overload: Sq3ValueLog → MkObjectLog
300
302static OT_ProcRet NS(Sq3ValueC_NoChange) (Sq3ValueC_ARGS) {
307 goto end;
308 error:
310 end:
312}
313
315static OT_ProcRet NS(Sq3ValueC_NumericType) (Sq3ValueC_ARGS) {
320 goto end;
321 error:
323 end:
325}
326
328static OT_ProcRet NS(Sq3ValueC_SubType) (Sq3ValueC_ARGS) {
333 goto end;
334 error:
336 end:
338}
339
341static OT_ProcRet NS(Sq3ValueC_Type) (Sq3ValueC_ARGS) {
346 goto end;
347 error:
349 end:
351}
352
354// Sq3ValueC_Info_PY_API
355
359
360// doc-key: Sq3ValueC,Sq3ValueC-TOR,oCx
361
363static OT_ProcRet NS(Sq3ValueC_Dup) (Sq3ValueC_ARGS) {
367 SQ3_VAL retVal = Sq3ValueDup (hdl);
368 if (retVal == NULL) {
369 OT_ERROR_CONSTRUCTOR(Sq3ValueC);
370 goto error;
371 }
372 OT_retObj_SET_VAL(retVal);
373 goto end;
374 error:
376 end:
378}
379
381// Sq3ValueC_TOR_PY_API
382
386
387// doc-key: Sq3ValueC,Sq3ValueC-Types,oc_
388
390static OT_ProcRet NS(Sq3ValueC_BUF) (Sq3ValueC_ARGS) {
394 MK_BUF retVal = Sq3ValueBUF (hdl);
395 OT_retObj_SET_BUF(retVal);
396 goto end;
397 error:
399 end:
401}
402
404static OT_ProcRet NS(Sq3ValueC_Blob) (Sq3ValueC_ARGS) {
408 MK_BUF retVal = Sq3ValueBlob (hdl);
409 OT_retObj_SET_BUF(retVal);
410 goto end;
411 error:
413 end:
415}
416
417// doc-key: Sq3ValueC,Sq3ValueC-Types,om_
418
420static OT_ProcRet NS(Sq3ValueC_BinaryR) (Sq3ValueC_ARGS) {
424 MkBinaryR retVal = Sq3ValueBinaryR (hdl);
426 goto end;
427 error:
429 end:
431}
432
434static OT_ProcRet NS(Sq3ValueC_Double) (Sq3ValueC_ARGS) {
439 goto end;
440 error:
442 end:
444}
445
447static OT_ProcRet NS(Sq3ValueC_Int) (Sq3ValueC_ARGS) {
452 goto end;
453 error:
455 end:
457}
458
460static OT_ProcRet NS(Sq3ValueC_Int64) (Sq3ValueC_ARGS) {
465 goto end;
466 error:
468 end:
470}
471
473static OT_ProcRet NS(Sq3ValueC_StringR) (Sq3ValueC_ARGS) {
477 MkStringR retVal = Sq3ValueStringR (hdl);
479 goto end;
480 error:
482 end:
484}
485
487static OT_ProcRet NS(Sq3ValueC_Text) (Sq3ValueC_ARGS) {
492 goto end;
493 error:
495 end:
497}
498
500// Sq3ValueC_Types_PY_API
501
505
506// doc-key: Sq3ValueC,Sq3ValueC-Vtab,oco
507
509static OT_ProcRet NS(Sq3ValueC_VtabInFirst) (Sq3ValueC_ARGS) {
513 SQ3_VAL ppOut;
514 MkErrorC_Check(hdl,Sq3ValueVtabInFirst (hdl, &ppOut));
515 OT_retObj_SET_VAL(ppOut);
516 goto end;
517 error:
519 end:
521}
522
524static OT_ProcRet NS(Sq3ValueC_VtabInNext) (Sq3ValueC_ARGS) {
528 SQ3_VAL ppOut;
529 MkErrorC_Check(hdl,Sq3ValueVtabInNext (hdl, &ppOut));
530 OT_retObj_SET_VAL(ppOut);
531 goto end;
532 error:
534 end:
536}
537
539// Sq3ValueC_Vtab_PY_API
540
541// END-Sq3ValueC - created by 'py_MqC.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
542
543// MARK_T
549
550static PyMethodDef Sq3ValueC_Methods[] = {
551
552 // BEGIN-CLASS - created by 'py_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
553
554 // doc-key: Sq3ValueC,Sq3Value,sc_
555 { "GetNull" , (PyCFunction) NS(Sq3ValueC_GetNull) , METH_NOARGS|METH_CLASS , GetNull_doc },
556 { "HandleResolve" , (PyCFunction) NS(Sq3ValueC_HandleResolve) , METH_O|METH_CLASS , HandleResolve_doc },
557 { "Instances" , (PyCFunction) NS(Sq3ValueC_Instances) , METH_NOARGS|METH_CLASS , Instances_doc },
558
559 // END-CLASS - created by 'py_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
560
561 // BEGIN-OBJ - created by 'py_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
562
563 // doc-key: Sq3ValueC,Sq3Value,oCx
564 { "Dup" , (PyCFunction) NS(Sq3ValueC_Dup) , METH_NOARGS , Dup_doc },
565
566 // doc-key: Sq3ValueC,Sq3Value,oc_
567 { "BUF" , (PyCFunction) NS(Sq3ValueC_BUF) , METH_NOARGS , BUF_doc },
568 { "Blob" , (PyCFunction) NS(Sq3ValueC_Blob) , METH_NOARGS , Blob_doc },
569 { "Next" , (PyCFunction) NS(Sq3ValueC_Next) , METH_NOARGS , Next_doc },
570 { "Prev" , (PyCFunction) NS(Sq3ValueC_Prev) , METH_NOARGS , Prev_doc },
571
572 // doc-key: Sq3ValueC,Sq3Value,oco
573 { "VtabInFirst" , (PyCFunction) NS(Sq3ValueC_VtabInFirst) , METH_NOARGS , VtabInFirst_doc },
574 { "VtabInNext" , (PyCFunction) NS(Sq3ValueC_VtabInNext) , METH_NOARGS , VtabInNext_doc },
575
576 // doc-key: Sq3ValueC,Sq3Value,om_
577 { "BinaryR" , (PyCFunction) NS(Sq3ValueC_BinaryR) , METH_NOARGS , BinaryR_doc },
578 { "Bytes" , (PyCFunction) NS(Sq3ValueC_Bytes) , METH_NOARGS , Bytes_doc },
579 { "Double" , (PyCFunction) NS(Sq3ValueC_Double) , METH_NOARGS , Double_doc },
580 { "Encoding" , (PyCFunction) NS(Sq3ValueC_Encoding) , METH_NOARGS , Encoding_doc },
581 { "FromBind" , (PyCFunction) NS(Sq3ValueC_FromBind) , METH_NOARGS , FromBind_doc },
582 // skip class-overload: Sq3ValueHandleGet → HandleGet, NS(Sq3ValueC_HandleGet)
583 { "Int" , (PyCFunction) NS(Sq3ValueC_Int) , METH_NOARGS , Int_doc },
584 { "Int64" , (PyCFunction) NS(Sq3ValueC_Int64) , METH_NOARGS , Int64_doc },
585 // skip class-overload: Sq3ValueLog → Log, NS(Sq3ValueC_Log)
586 { "NoChange" , (PyCFunction) NS(Sq3ValueC_NoChange) , METH_NOARGS , NoChange_doc },
587 { "NumericType" , (PyCFunction) NS(Sq3ValueC_NumericType) , METH_NOARGS , NumericType_doc },
588 { "StringR" , (PyCFunction) NS(Sq3ValueC_StringR) , METH_NOARGS , StringR_doc },
589 { "SubType" , (PyCFunction) NS(Sq3ValueC_SubType) , METH_NOARGS , SubType_doc },
590 { "Text" , (PyCFunction) NS(Sq3ValueC_Text) , METH_NOARGS , Text_doc },
591 { "Type" , (PyCFunction) NS(Sq3ValueC_Type) , METH_NOARGS , Type_doc },
592
593 // END-OBJ - created by 'py_MqS.tcl -i NHI1_HOME/theSq3Lite/c/gen/c_sq3lite.meta' - DO NOT change
594
595 {NULL, NULL, 0, NULL} /* Sentinel */
596};
597
603
605 PyVarObject_HEAD_INIT(NULL, 0)
606 .tp_name = "pymsgque.Sq3ValueC",
607 .tp_doc = "PyMsgque Sq3ValueC Type",
608 .tp_basicsize = sizeof(Sq3ValueC_Obj),
609 .tp_itemsize = 0,
610// .tp_new = (newfunc) NS(Sq3ValueC_new),
611 .tp_flags = Py_TPFLAGS_DEFAULT,
612 .tp_methods = Sq3ValueC_Methods,
613 .tp_base = NULL
614};
615
616int NS(pSq3ValueC_Init) ( MK_RT_ARGS PyObject* m)
617{
619
620 return 0;
621error:
622 return -1;
623}
624
625// vim: nowrap
#define OT_SELF
#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 OT_retObj_SET_Error
#define OT_retObj_SET_BUF(nat)
#define OT_ERROR_CONSTRUCTOR(class)
#define OT_retObj_SET_DBL(nat)
#define OT_retObj_SET_I64(nat)
#define OT_CHECK_REQUIRED(val)
#define OT_retObj_SET_I32(nat)
PyTypeObject * OT_CLS_T
#define OT_GET__ME_REF_MkBinaryR(b)
#define OT_retObj_RETURN
PyObject * OT_OBJ_T
#define OT_retObj_SET_STR(nat)
#define OT_CLASS_TYPE_REF
#define OT_retObj_SET(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
struct Sq3ValueC_Obj Sq3ValueC_Obj
#define OT_NEW_Sq3_enum_OBJ(typ, val)
#define NS(n)
#define OT_retObj_SET_VAL(nat)
#define Sq3ValueC_ARGS
#define Instances_doc
#define Int64_doc
#define BinaryR_doc
#define Blob_doc
#define OT_SETUP_hdl
#define Int_doc
static PyMethodDef Sq3ValueC_Methods[]
#define Text_doc
#define Dup_doc
#define NumericType_doc
#define GetNull_doc
#define Next_doc
#define HandleResolve_doc
#define VtabInFirst_doc
#define Prev_doc
#define OT_CLASS
#define OT_SETUP_hdl_static
#define Type_doc
#define BUF_doc
#define StringR_doc
#define SubType_doc
#define FromBind_doc
#define VtabInNext_doc
#define Double_doc
#define ClassInit
#define NoChange_doc
#define Bytes_doc
#define Encoding_doc
#define mk_inline
#define MK_UNUSED
#define MK_DEPRECATED
MK_PTRB * MK_PTR
int32_t MK_HDL
#define MK_RT_CALL
#define MK_RT_ARGS
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
#define Sq3ValueC_X2obj(x)
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)
PyObject_HEAD MK_OBJ hdl
Struct to represent the data of the Sq3ValueC …