From c4b8a3d1228ac04ba7bef92e63f3d9253cf87897 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Sun, 6 Apr 2008 16:26:32 +0000 Subject: Add wrappers. 2008-04-06 Johan Dahlin * gio/goutputstream.override: (_wrap_g_output_stream_write_asyn,_wrap_g_output_stream_close_async): * gio/ginputstream.override (async_result_callback_marshal_read): Add wrappers. svn path=/trunk/; revision=761 --- gio/ginputstream.override | 54 ++++++++++++++++++++++ gio/goutputstream.override | 112 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 166 insertions(+) (limited to 'gio') diff --git a/gio/ginputstream.override b/gio/ginputstream.override index 6a9cb6a..37f0225 100644 --- a/gio/ginputstream.override +++ b/gio/ginputstream.override @@ -234,3 +234,57 @@ _wrap_g_input_stream_read_finish(PyGObject *self, PyObject *args, PyObject *kwar /* FIXME: Should we refcount the buffer here? */ return buffer; } +%% +override g_input_stream_close_async kwargs +static PyObject * +_wrap_g_input_stream_close_async(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "io_priority", "cancellable", + "callback", "user_data", NULL }; + int io_priority = G_PRIORITY_DEFAULT; + PyGObject *pycancellable; + GCancellable *cancellable; + PyGAsyncRequestNotify *notify; + + notify = g_slice_new0(PyGAsyncRequestNotify); + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "iOO|O:InputStream.close_async", + kwlist, + &io_priority, + &pycancellable, + ¬ify->callback, + ¬ify->data)) + { + g_slice_free(PyGAsyncRequestNotify, notify); + return NULL; + } + + if ((PyObject*)pycancellable == Py_None) + cancellable = NULL; + else if (pygobject_check(pycancellable, &PyGCancellable_Type)) + cancellable = G_CANCELLABLE(pycancellable->obj); + else + { + PyErr_SetString(PyExc_TypeError, "cancellable should be a gio.Cancellable"); + return NULL; + } + + if (!PyCallable_Check(notify->callback)) + { + PyErr_SetString(PyExc_TypeError, "callback argument not callable"); + g_slice_free(PyGAsyncRequestNotify, notify); + return NULL; + } + Py_INCREF(notify->callback); + Py_XINCREF(notify->data); + + g_input_stream_close_async(G_INPUT_STREAM(self->obj), + io_priority, + cancellable, + (GAsyncReadyCallback)async_result_callback_marshal, + notify); + + Py_INCREF(Py_None); + return Py_None; +} diff --git a/gio/goutputstream.override b/gio/goutputstream.override index 6969d7f..cbf4efc 100644 --- a/gio/goutputstream.override +++ b/gio/goutputstream.override @@ -58,3 +58,115 @@ _wrap_g_output_stream_write(PyGObject *self, PyObject *args, PyObject *kwargs) return PyInt_FromLong(written); } +%% +override g_output_stream_write_async kwargs +static PyObject * +_wrap_g_output_stream_write_async(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "buffer", "io_priority", "cancellable", + "callback", "user_data", NULL }; + gchar *buffer; + long count = -1; + int io_priority = G_PRIORITY_DEFAULT; + PyGObject *pycancellable; + GCancellable *cancellable; + PyGAsyncRequestNotify *notify; + + notify = g_slice_new0(PyGAsyncRequestNotify); + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "s#iOO|O:OutputStream.write_async", + kwlist, &buffer, &count, + &io_priority, + &pycancellable, + ¬ify->callback, + ¬ify->data)) + { + g_slice_free(PyGAsyncRequestNotify, notify); + return NULL; + } + + if ((PyObject*)pycancellable == Py_None) + cancellable = NULL; + else if (pygobject_check(pycancellable, &PyGCancellable_Type)) + cancellable = G_CANCELLABLE(pycancellable->obj); + else + { + PyErr_SetString(PyExc_TypeError, "cancellable should be a gio.Cancellable"); + return NULL; + } + + if (!PyCallable_Check(notify->callback)) + { + PyErr_SetString(PyExc_TypeError, "callback argument not callable"); + g_slice_free(PyGAsyncRequestNotify, notify); + return NULL; + } + Py_INCREF(notify->callback); + Py_XINCREF(notify->data); + + g_output_stream_write_async(G_OUTPUT_STREAM(self->obj), + buffer, + count, + io_priority, + cancellable, + (GAsyncReadyCallback)async_result_callback_marshal, + notify); + + Py_INCREF(Py_None); + return Py_None; +} +%% +override g_output_stream_close_async kwargs +static PyObject * +_wrap_g_output_stream_close_async(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "io_priority", "cancellable", + "callback", "user_data", NULL }; + int io_priority = G_PRIORITY_DEFAULT; + PyGObject *pycancellable; + GCancellable *cancellable; + PyGAsyncRequestNotify *notify; + + notify = g_slice_new0(PyGAsyncRequestNotify); + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "iOO|O:OutputStream.close_async", + kwlist, + &io_priority, + &pycancellable, + ¬ify->callback, + ¬ify->data)) + { + g_slice_free(PyGAsyncRequestNotify, notify); + return NULL; + } + + if ((PyObject*)pycancellable == Py_None) + cancellable = NULL; + else if (pygobject_check(pycancellable, &PyGCancellable_Type)) + cancellable = G_CANCELLABLE(pycancellable->obj); + else + { + PyErr_SetString(PyExc_TypeError, "cancellable should be a gio.Cancellable"); + return NULL; + } + + if (!PyCallable_Check(notify->callback)) + { + PyErr_SetString(PyExc_TypeError, "callback argument not callable"); + g_slice_free(PyGAsyncRequestNotify, notify); + return NULL; + } + Py_INCREF(notify->callback); + Py_XINCREF(notify->data); + + g_output_stream_close_async(G_OUTPUT_STREAM(self->obj), + io_priority, + cancellable, + (GAsyncReadyCallback)async_result_callback_marshal, + notify); + + Py_INCREF(Py_None); + return Py_None; +} -- cgit