blob: 1d9e49cec6f928bd799f9fa3fbb6bb044ac0ccfe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#ifndef __PYGI_INVOKE_STATE_STRUCT_H__
#define __PYGI_INVOKE_STATE_STRUCT_H__
#include <Python.h>
#include <girepository.h>
G_BEGIN_DECLS
typedef struct _PyGIInvokeState
{
PyObject *py_in_args;
gssize n_py_in_args;
gssize current_arg;
GType implementor_gtype;
GIArgument **args;
GIArgument *in_args;
/* Generic array allocated to the same length as args
* for use as extra per-arg state data. */
gpointer *args_data;
/* Out args and out values
* In order to pass a parameter and get something back out in C
* we need to pass a pointer to the value, e.g.
* int *out_integer;
*
* so while out_args == out_integer, out_value == *out_integer
* or in other words out_args = &out_values
*
* We do all of our processing on out_values but we pass out_args to
* the actual function.
*/
GIArgument *out_args;
GIArgument *out_values;
GIArgument return_arg;
GError *error;
gboolean failed;
gpointer user_data;
} PyGIInvokeState;
G_END_DECLS
#endif
|