1 /* ctrlproxy: A modular IRC proxy
2 * (c) 2002-2009 Jelmer Vernooij <jelmer@nl.linux.org>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 #ifndef __LIBIRC_PYTHON_H__
21 #define __LIBIRC_PYTHON_H__
26 PyTypeObject PyNetworkNickType;
30 struct network_nick *nick;
31 } PyNetworkNickObject;
35 PyTypeObject PyNetworkInfoType;
38 struct irc_network_info *info;
40 } PyNetworkInfoObject;
43 PyTypeObject PyNetworkChannelDictType;
44 PyTypeObject PyChannelNickDictType;
45 PyTypeObject PyChannelModeDictType;
51 struct irc_transport *transport;
54 PyTypeObject PyTransportType;
55 struct irc_transport *wrap_py_transport(PyObject *obj);
56 struct irc_transport_ops py_transport_ops;
62 struct linestack_context *linestack;
65 PyTypeObject PyLinestackType;
66 PyTypeObject PyLinestackIterType;
69 PyObject *py_g_list_iter(GList *list, PyObject *parent, PyObject *(*converter) (PyObject *parent, void *));
74 PyObject *(*converter) (PyObject *parent, void *);
79 PyTypeObject PyLineType;
82 const struct irc_line *line;
85 struct irc_line *PyObject_AsLine(PyObject *obj);
88 PyTypeObject PyNetworkStateType;
91 struct irc_network_state *state;
93 } PyNetworkStateObject;
95 struct irc_network_state *PyObject_AsNetworkState(PyObject *obj);
97 PyTypeObject PyChannelStateType;
101 struct irc_channel_state *state;
103 } PyChannelStateObject;
105 void g_error_set_python(GError **error);
108 PyTypeObject PyNetworkType;
111 struct irc_network *network;
117 struct query_stack *stack;
119 void *(*export_userdata) (PyObject *);
120 PyObject *(*import_userdata) (void *);
121 } PyQueryStackObject;
122 PyTypeObject PyQueryStackType;
125 struct irc_client *PyObject_AsClient(PyObject *obj);