pygi-marshal-from-py.h 6.23 KB
Newer Older
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
/* -*- Mode: C; c-basic-offset: 4 -*-
 * vim: tabstop=4 shiftwidth=4 expandtab
 *
 * Copyright (C) 2011 John (J5) Palmieri <johnp@redhat.com>, Red Hat, Inc.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
 * USA
 */

#ifndef __PYGI_MARSHAL_from_py_PY_H__
#define __PYGI_MARSHAL_from_py_PY_H__

#include <Python.h>

#include <girepository.h>

#include "pygi-private.h"

G_BEGIN_DECLS

David Malcolm's avatar
David Malcolm committed
33 34 35
gboolean _pygi_marshal_from_py_ssize_t     (PyGIArgCache      *arg_cache,
                                            Py_ssize_t         size,
                                            GIArgument        *arg);
36 37 38 39
gboolean _pygi_marshal_from_py_interface_callback (PyGIInvokeState   *state,
                                                   PyGICallableCache *callable_cache,
                                                   PyGIArgCache      *arg_cache,
                                                   PyObject          *py_arg,
40 41
                                                   GIArgument        *arg,
                                                   gpointer          *cleanup_data);
42 43 44 45
gboolean _pygi_marshal_from_py_interface_enum     (PyGIInvokeState   *state,
                                                   PyGICallableCache *callable_cache,
                                                   PyGIArgCache      *arg_cache,
                                                   PyObject          *py_arg,
46 47
                                                   GIArgument        *arg,
                                                   gpointer          *cleanup_data);
48 49 50 51
gboolean _pygi_marshal_from_py_interface_flags    (PyGIInvokeState   *state,
                                                   PyGICallableCache *callable_cache,
                                                   PyGIArgCache      *arg_cache,
                                                   PyObject          *py_arg,
52 53
                                                   GIArgument        *arg,
                                                   gpointer          *cleanup_data);
54 55 56 57
gboolean _pygi_marshal_from_py_interface_struct_cache_adapter   (PyGIInvokeState   *state,
                                                                 PyGICallableCache *callable_cache,
                                                                 PyGIArgCache      *arg_cache,
                                                                 PyObject          *py_arg,
58 59
                                                                 GIArgument        *arg,
                                                                 gpointer          *cleanup_data);
60 61 62 63
gboolean _pygi_marshal_from_py_interface_boxed    (PyGIInvokeState   *state,
                                                   PyGICallableCache *callable_cache,
                                                   PyGIArgCache      *arg_cache,
                                                   PyObject          *py_arg,
64 65
                                                   GIArgument        *arg,
                                                   gpointer          *cleanup_data);
66 67 68 69
gboolean _pygi_marshal_from_py_interface_object   (PyGIInvokeState   *state,
                                                   PyGICallableCache *callable_cache,
                                                   PyGIArgCache      *arg_cache,
                                                   PyObject          *py_arg,
70 71
                                                   GIArgument        *arg,
                                                   gpointer          *cleanup_data);
72 73 74 75
gboolean _pygi_marshal_from_py_interface_union    (PyGIInvokeState   *state,
                                                   PyGICallableCache *callable_cache,
                                                   PyGIArgCache      *arg_cache,
                                                   PyObject          *py_arg,
76 77
                                                   GIArgument        *arg,
                                                   gpointer          *cleanup_data);
78

79
/* Simplified marshalers shared between vfunc/closure and direct function calls. */
80 81 82
gboolean _pygi_marshal_from_py_gobject (PyObject *py_arg, /*in*/
                                        GIArgument *arg,  /*out*/
                                        GITransfer transfer);
83 84 85
gboolean _pygi_marshal_from_py_gobject_out_arg (PyObject *py_arg, /*in*/
                                                GIArgument *arg,  /*out*/
                                                GITransfer transfer);
86

87 88 89 90
gboolean _pygi_marshal_from_py_gvalue (PyObject *py_arg, /*in*/
                                       GIArgument *arg,  /*out*/
                                       GITransfer transfer,
                                       gboolean is_allocated);
91

92 93
gboolean _pygi_marshal_from_py_gclosure(PyObject *py_arg, /*in*/
                                        GIArgument *arg); /*out*/
94

95 96 97 98 99 100 101
gboolean _pygi_marshal_from_py_interface_struct (PyObject *py_arg,
                                                 GIArgument *arg,
                                                 const gchar *arg_name,
                                                 GIBaseInfo *interface_info,
                                                 GType g_type,
                                                 PyObject *py_type,
                                                 GITransfer transfer,
102 103 104
                                                 gboolean is_allocated,
                                                 gboolean is_foreign,
                                                 gboolean is_pointer);
105

106 107 108
G_END_DECLS

#endif /* __PYGI_MARSHAL_from_py_PY__ */