Starts asynchronous initialization of the object implementing the interface. This must be done before any real use of the object after initial construction. If the object also implements GInitable you can optionally call g_initable_init() instead. When the initialization is finished, callback will be called. You can then call g_async_initable_init_finish() to get the result of the initialization. Implementations may also support cancellation. If cancellable is not NULL, then initialization can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error G_IO_ERROR_CANCELLED will be returned. If cancellable is not NULL, and the object doesn't support cancellable initialization, the error G_IO_ERROR_NOT_SUPPORTED will be returned. As with GInitable, if the object is not initialized, or initialization Since 2.22
Finishes asynchronous initialization and returns the result. See g_async_initable_init_async(). Since 2.22
Finishes the async construction for the various g_async_initable_new calls, returning the created object or NULL on error. Since 2.22
Helper function for constructing GAsyncInitable object. This is similar to g_object_new_valist() but also initializes the object asynchronously. When the initialization is finished, callback will be called. You can then call g_async_initable_new_finish() to get the new object and check for any errors. Since 2.22
Helper function for constructing GAsyncInitable object. This is similar to g_object_newv() but also initializes the object asynchronously. When the initialization is finished, callback will be called. You can then call g_async_initable_new_finish() to get the new object and check for any errors. Since 2.22
the main Gtk struct
This is the asynchronous version of GInitable; it behaves the same in all ways except that initialization is asynchronous. For more details see the descriptions on GInitable.
A class may implement both the GInitable and GAsyncInitable interfaces.
Users of objects implementing this are not intended to use the interface method directly; instead it will be used automatically in various ways. For C applications you generally just call g_async_initable_new_async() directly, or indirectly via a foo_thing_new_async() wrapper. This will call g_async_initable_init_async() under the cover, calling back with NULL and a set GError on failure.
A typical implementation might look something like this: