libdballe  8.6
python.h
1 #ifndef DBALLE_PYTHON_H
2 #define DBALLE_PYTHON_H
3 
4 #include <dballe/fwd.h>
5 #include <memory>
6 
7 #ifndef PyObject_HEAD
8 // Forward-declare PyObjetc and PyTypeObject
9 // see https://mail.python.org/pipermail/python-dev/2003-August/037601.html
10 extern "C" {
11 struct _object;
12 typedef _object PyObject;
13 struct _typeobject;
14 typedef _typeobject PyTypeObject;
15 }
16 #endif
17 
18 extern "C" {
19 
30 struct dbapy_c_api {
31 
32 // API version 1.x
33 
35  unsigned version_major;
36 
38  unsigned version_minor;
39 
41  PyTypeObject* message_type;
42 
44  PyObject* (*message_create_new)(dballe::MessageType);
45 
47  PyObject* (*message_create)(std::shared_ptr<dballe::Message>);
48 
49 #if 0
50  PyObject* (*var_create)(const wreport::Varinfo&);
52 
54  PyObject* (*var_create_i)(const wreport::Varinfo&, int);
55 
57  PyObject* (*var_create_d)(const wreport::Varinfo&, double);
58 
60  PyObject* (*var_create_c)(const wreport::Varinfo&, const char*);
61 
63  PyObject* (*var_create_s)(const wreport::Varinfo&, const std::string&);
64 
66  PyObject* (*var_create_copy)(const wreport::Var&);
67 
69  PyObject* (*var_value_to_python)(const wreport::Var&);
70 
72  int (*var_value_from_python)(PyObject* o, wreport::Var&);
73 
75  PyObject* (*varinfo_create)(wreport::Varinfo);
76 
78  PyObject* (*vartable_create)(const wreport::Vartable*);
79 
81  PyTypeObject* vartable_type;
82 
84  PyTypeObject* var_type;
85 
86 // API version 1.1
87 
89  PyObject* (*var_create_move)(wreport::Var&&);
90 
92  wreport:: Var* (*var)(PyObject* o);
93 
95  PyObject* (*var_create_v)(const wreport::Varinfo&, const wreport::Var&);
96 #endif
97 };
98 
99 }
100 
101 #endif
dbapy_c_api::version_major
unsigned version_major
C API major version (updated on incompatible changes)
Definition: python.h:35
wreport::_Varinfo
dbapy_c_api::message_type
PyTypeObject * message_type
dballe.Message type
Definition: python.h:41
wreport::Var
dbapy_c_api
C++ functions exported by the wreport python bindings, to be used by other C++ bindings.
Definition: python.h:30
dbapy_c_api::version_minor
unsigned version_minor
C API minor version (updated on backwards-compatible changes)
Definition: python.h:38
wreport::Vartable