From 29b06919c7abdc6b896a07ef11829bdeba1a4935 Mon Sep 17 00:00:00 2001 From: Gian Mario Tagliaretti Date: Sun, 22 Mar 2009 00:12:35 +0000 Subject: gio/gfileenumerator.override (_wrap_g_file_enumerator_close_async) wrap 2009-03-22 Gian Mario Tagliaretti * gio/gfileenumerator.override (_wrap_g_file_enumerator_close_async) wrap new method. * tests/test_gio.py (TestGFileEnumerator.testCloseFilesAsync): Test the above. svn path=/trunk/; revision=1027 --- ChangeLog | 8 ++++++++ gio/gfileenumerator.override | 46 ++++++++++++++++++++++++++++++++++++++++++++ tests/test_gio.py | 15 +++++++++++++++ 3 files changed, 69 insertions(+) diff --git a/ChangeLog b/ChangeLog index c5e3b00..59795bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-03-22 Gian Mario Tagliaretti + + * gio/gfileenumerator.override (_wrap_g_file_enumerator_close_async) + wrap new method. + + * tests/test_gio.py (TestGFileEnumerator.testCloseFilesAsync): + Test the above. + 2009-03-09 Gian Mario Tagliaretti * docs/reference/Changelog: Create a dedicated Changelog for the docs diff --git a/gio/gfileenumerator.override b/gio/gfileenumerator.override index 2044e44..876aca6 100644 --- a/gio/gfileenumerator.override +++ b/gio/gfileenumerator.override @@ -136,3 +136,49 @@ _wrap_g_file_enumerator_next_files_finish(PyGObject *self, PyObject *args, PyObj return ret; } +%% +override g_file_enumerator_close_async kwargs +static PyObject * +_wrap_g_file_enumerator_close_async(PyGObject *self, + PyObject *args, + PyObject *kwargs) +{ + static char *kwlist[] = { "callback", "io_priority", "cancellable", + "user_data", NULL }; + int io_priority = G_PRIORITY_DEFAULT; + PyGObject *pycancellable = NULL; + GCancellable *cancellable; + PyGIONotify *notify; + + notify = pygio_notify_new(); + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "O|iOO:GFileEnumerator.close_async", + kwlist, + ¬ify->callback, + &io_priority, + &pycancellable, + ¬ify->data)) + goto error; + + if (!pygio_notify_callback_is_valid(notify)) + goto error; + + if (!pygio_check_cancellable(pycancellable, &cancellable)) + goto error; + + pygio_notify_reference_callback(notify); + + g_file_enumerator_close_async(G_FILE_ENUMERATOR(self->obj), + io_priority, + cancellable, + (GAsyncReadyCallback)async_result_callback_marshal, + notify); + + Py_INCREF(Py_None); + return Py_None; + + error: + pygio_notify_free(notify); + return NULL; +} diff --git a/tests/test_gio.py b/tests/test_gio.py index ba05f83..a9b273b 100644 --- a/tests/test_gio.py +++ b/tests/test_gio.py @@ -500,6 +500,21 @@ class TestGFileEnumerator(unittest.TestCase): loop = glib.MainLoop() loop.run() + def testCloseFilesAsync(self): + def callback(enumerator, result): + try: + enumerator.close_finish(result) + finally: + loop.quit() + + enumerator = self.file.enumerate_children( + "standard::*", gio.FILE_QUERY_INFO_NOFOLLOW_SYMLINKS) + + enumerator.close_async(callback) + + loop = glib.MainLoop() + loop.run() + class TestInputStream(unittest.TestCase): def setUp(self): -- cgit