summaryrefslogtreecommitdiffstats
path: root/gio/ginputstream.override
diff options
context:
space:
mode:
authorPaul Pogonyshev <pogonyshev@gmx.net>2008-08-11 22:05:06 +0000
committerPaul Pogonyshev <paulp@src.gnome.org>2008-08-11 22:05:06 +0000
commitb33d25d72bb0eeeafeedb0e03755e9eab40ab9ba (patch)
treeb6eb04d4f90e09e0e62da259b99b10bc26151f38 /gio/ginputstream.override
parent35092e66e988321abd9b55b9f693090b7b15bad3 (diff)
downloadpygobject-b33d25d72bb0eeeafeedb0e03755e9eab40ab9ba.tar.gz
pygobject-b33d25d72bb0eeeafeedb0e03755e9eab40ab9ba.tar.xz
pygobject-b33d25d72bb0eeeafeedb0e03755e9eab40ab9ba.zip
Bug 547354 – wrap a few memory stream methods
2008-08-12 Paul Pogonyshev <pogonyshev@gmx.net> Bug 547354 – wrap a few memory stream methods * gio/ginputstream.override (_wrap_g_memory_input_stream_add_data): New function. * gio/gio.defs (gio.MemoryOutputStream.get_contents): Rename from get_data() to avoid name clash. * gio/goutputstream.override (_wrap_g_memory_output_stream_new) (_wrap_g_memory_output_stream_get_data): New functions. * tests/test_gio.py (TestMemoryInputStream) (TestMemoryOutputStream): New test cases. svn path=/trunk/; revision=944
Diffstat (limited to 'gio/ginputstream.override')
-rw-r--r--gio/ginputstream.override34
1 files changed, 34 insertions, 0 deletions
diff --git a/gio/ginputstream.override b/gio/ginputstream.override
index 267ae01..e5791f9 100644
--- a/gio/ginputstream.override
+++ b/gio/ginputstream.override
@@ -285,5 +285,39 @@ _wrap_g_input_stream_close_async(PyGObject *self,
Py_INCREF(Py_None);
return Py_None;
}
+%%
+override g_memory_input_stream_add_data kwargs
+static PyObject *
+_wrap_g_memory_input_stream_add_data(PyGObject *self,
+ PyObject *args,
+ PyObject *kwargs)
+{
+ static char *kwlist[] = { "data", NULL };
+ PyObject *data;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:gio.MemoryInputStream.add_data",
+ kwlist, &data))
+ return NULL;
+
+ if (data != Py_None) {
+ char *copy;
+ int length;
+
+ if (!PyString_Check(data)) {
+ PyErr_SetString(PyExc_TypeError, "data must be a string or None");
+ return NULL;
+ }
+
+ length = PyString_Size(data);
+ copy = g_malloc(length);
+ memcpy(copy, PyString_AsString(data), length);
+
+ g_memory_input_stream_add_data(G_MEMORY_INPUT_STREAM(self->obj),
+ copy, length, (GDestroyNotify) g_free);
+ }
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
/* GInputStream.read_all: No ArgType for void* */
/* GInputStream.skip_async: No ArgType for GAsyncReadyCallback */