diff options
author | Paul Pogonyshev <pogonyshev@gmx.net> | 2008-08-11 22:05:06 +0000 |
---|---|---|
committer | Paul Pogonyshev <paulp@src.gnome.org> | 2008-08-11 22:05:06 +0000 |
commit | b33d25d72bb0eeeafeedb0e03755e9eab40ab9ba (patch) | |
tree | b6eb04d4f90e09e0e62da259b99b10bc26151f38 /gio/ginputstream.override | |
parent | 35092e66e988321abd9b55b9f693090b7b15bad3 (diff) | |
download | pygobject-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.override | 34 |
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 */ |