dcd9e6b48b2624ccd3af38ab218ebc5706d726b2
[platform/upstream/pygobject2.git] / gi / pygi-ccallback.h
1 /* -*- Mode: C; c-basic-offset: 4 -*-
2  * vim: tabstop=4 shiftwidth=4 expandtab
3  *
4  * Copyright (C) 2011 John (J5) Palmieri <johnp@redhat.com>, Red Hat, Inc.
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
18  */
19
20 #ifndef __PYGI_CCLOSURE_H__
21 #define __PYGI_CCLOSURE_H__
22
23 #include <Python.h>
24 #include "pygi-cache.h"
25
26 G_BEGIN_DECLS
27
28 typedef struct {
29     PyObject_HEAD
30     GCallback callback;
31     GIFunctionInfo *info;
32     gpointer user_data;
33     GIScopeType scope;
34     GDestroyNotify destroy_notify_func;
35     PyGICCallbackCache *cache;
36 } PyGICCallback;
37
38 extern PyTypeObject PyGICCallback_Type;
39
40 PyObject * _pygi_ccallback_new (GCallback       callback,
41                                 gpointer        user_data,
42                                 GIScopeType     scope,
43                                 GIFunctionInfo *info,
44                                 GDestroyNotify  destroy_notify);
45
46 void _pygi_ccallback_register_types (PyObject *m);
47
48 G_END_DECLS
49
50 #endif /* __PYGI_CCLOSURE_H__ */