diff options
Diffstat (limited to 'gio/src/asyncresult.hg')
-rw-r--r-- | gio/src/asyncresult.hg | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/gio/src/asyncresult.hg b/gio/src/asyncresult.hg index fa1a809e..133d1859 100644 --- a/gio/src/asyncresult.hg +++ b/gio/src/asyncresult.hg @@ -45,57 +45,57 @@ class AsyncResult; typedef sigc::slot<void, Glib::RefPtr<AsyncResult>& > SlotAsyncReady; /** Provides a base class for implementing asynchronous function results. - * Asynchronous operations are broken up into two separate operations which are chained together by a SlotAsyncReady. - * To begin an asynchronous operation, provide a SlotAsyncReady to the asynchronous function. This callback will be triggered - * when the operation has completed, and will be passed an AsyncResult instance filled with the details of the operation's success or - * failure, the object the asynchronous function was started for and any error codes returned. The asynchronous callback function is then + * Asynchronous operations are broken up into two separate operations which are chained together by a SlotAsyncReady. + * To begin an asynchronous operation, provide a SlotAsyncReady to the asynchronous function. This callback will be triggered + * when the operation has completed, and will be passed an AsyncResult instance filled with the details of the operation's success or + * failure, the object the asynchronous function was started for and any error codes returned. The asynchronous callback function is then * expected to call the corresponding "_finish()" function with the object the function was called for, and the AsyncResult instance. * - * The purpose of the "_finish()" function is to take the generic result of type AsyncResult and return the specific result that the operation - * in question yields (e.g. a FileEnumerator for an "enumerate children" operation). If the result or error status of the operation is not needed, - * there is no need to call the "_finish()" function and GIO will take care of cleaning up the result and error information after the + * The purpose of the "_finish()" function is to take the generic result of type AsyncResult and return the specific result that the operation + * in question yields (e.g. a FileEnumerator for an "enumerate children" operation). If the result or error status of the operation is not needed, + * there is no need to call the "_finish()" function and GIO will take care of cleaning up the result and error information after the * SlotAsyncReady returns. You may also store the AsyncResult and call "_finish()" later. * * Example of a typical asynchronous operation flow: * @code - * void _theoretical_frobnitz_async(const Glib::RefPtr<Theoretical>& t, + * void _theoretical_frobnitz_async(const Glib::RefPtr<Theoretical>& t, * const SlotAsyncReady& slot); - * + * * gboolean _theoretical_frobnitz_finish(const Glib::RefPtr<Theoretical>& t, * const Glib::RefPtr<AsyncResult>& result); - * - * static void + * + * static void * on_frobnitz_result(Glib::RefPtr<AsyncResult>& result) * { - * + * * Glib::RefPtr<Glib::Object> source_object = result->get_source_object(); * bool success = _theoretical_frobnitz_finish(source_object, res); - * + * * if (success) * std::cout << "Hurray" << std::endl; - * else + * else * std::cout << "Uh oh!" << std::endl; - * + * * ... * } - * + * * int main (int argc, void *argv[]) * { * ... - * - * _theoretical_frobnitz_async (theoretical_data, + * + * _theoretical_frobnitz_async (theoretical_data, * sigc::ptr_fun(&on_frobnitz_result) ); - * + * * ... * } * @endcode * * The async function could also take an optional Glib::Cancellable object, allowing the calling function to cancel the asynchronous operation. * - * The callback for an asynchronous operation is called only once, and is always called, even in the case of a cancelled operation. + * The callback for an asynchronous operation is called only once, and is always called, even in the case of a cancelled operation. * On cancellation the result is a ERROR_CANCELLED error. * - * Some ascynchronous operations are implemented using synchronous calls. These are run in a separate GThread, but otherwise they are sent + * Some ascynchronous operations are implemented using synchronous calls. These are run in a separate GThread, but otherwise they are sent * to the Main Event Loop and processed in an idle function. So, if you truly need asynchronous operations, make sure to initialize GThread. * * @newin{2,16} |