1 <!-- ##### SECTION Title ##### -->
2 Asynchronous File Operations
4 <!-- ##### SECTION Short_Description ##### -->
6 POSIX-style file operations that run outside your main loop
8 <!-- ##### SECTION Long_Description ##### -->
10 When executing an asynchornous operation on a file the program does not
11 block waiting for the operation to finish, instead it keeps on running,
12 which means that the process and the I/O operation can be both running
13 concurrently. Once the I/O operation has been completed the process is
14 notified using a callback.
18 Asynchronous operations are particularly good when long I/O operations
19 are expected, in this case the program can continue normaly, the I/O
20 will be performed in the background. On the other hand when operations
21 are expected to be short (creating a file, writing/reading small amounts
22 of data, etc.) synchronous operations are prefered.
26 Within a graphical desktop asynchornous I/O operations can be used to
27 avoid blocking the UI (User Interface) during a long operation, and
28 to be able to provide some kind of feedback to the user.
31 <!-- ##### SECTION See_Also ##### -->
36 <!-- ##### MACRO GNOME_VFS_PRIORITY_MIN ##### -->
43 <!-- ##### MACRO GNOME_VFS_PRIORITY_MAX ##### -->
50 <!-- ##### MACRO GNOME_VFS_PRIORITY_DEFAULT ##### -->
57 <!-- ##### USER_FUNCTION GnomeVFSAsyncCallback ##### -->
67 <!-- ##### TYPEDEF GnomeVFSAsyncOpenCallback ##### -->
73 <!-- ##### TYPEDEF GnomeVFSAsyncCreateCallback ##### -->
79 <!-- ##### TYPEDEF GnomeVFSAsyncCreateAsChannelCallback ##### -->
85 <!-- ##### TYPEDEF GnomeVFSAsyncCloseCallback ##### -->
91 <!-- ##### USER_FUNCTION GnomeVFSAsyncReadCallback ##### -->
104 <!-- ##### USER_FUNCTION GnomeVFSAsyncWriteCallback ##### -->
117 <!-- ##### TYPEDEF GnomeVFSFindDirectoryResult ##### -->
123 <!-- ##### FUNCTION gnome_vfs_async_set_job_limit ##### -->
131 <!-- ##### FUNCTION gnome_vfs_async_get_job_limit ##### -->
139 <!-- ##### FUNCTION gnome_vfs_async_cancel ##### -->
147 <!-- ##### FUNCTION gnome_vfs_async_open ##### -->
160 <!-- ##### FUNCTION gnome_vfs_async_open_uri ##### -->
173 <!-- ##### FUNCTION gnome_vfs_async_open_as_channel ##### -->
187 <!-- ##### FUNCTION gnome_vfs_async_open_uri_as_channel ##### -->
201 <!-- ##### FUNCTION gnome_vfs_async_create ##### -->
216 <!-- ##### FUNCTION gnome_vfs_async_create_uri ##### -->
231 <!-- ##### FUNCTION gnome_vfs_async_create_symbolic_link ##### -->
244 <!-- ##### FUNCTION gnome_vfs_async_create_as_channel ##### -->
259 <!-- ##### FUNCTION gnome_vfs_async_create_uri_as_channel ##### -->
274 <!-- ##### FUNCTION gnome_vfs_async_close ##### -->
284 <!-- ##### FUNCTION gnome_vfs_async_read ##### -->
296 <!-- ##### FUNCTION gnome_vfs_async_write ##### -->
308 <!-- ##### FUNCTION gnome_vfs_async_get_file_info ##### -->
321 <!-- ##### FUNCTION gnome_vfs_async_set_file_info ##### -->
336 <!-- ##### FUNCTION gnome_vfs_async_load_directory ##### -->
344 @items_per_notification:
350 <!-- ##### FUNCTION gnome_vfs_async_load_directory_uri ##### -->
358 @items_per_notification:
364 <!-- ##### FUNCTION gnome_vfs_async_xfer ##### -->
376 @progress_update_callback:
377 @update_callback_data:
378 @progress_sync_callback:
383 <!-- ##### FUNCTION gnome_vfs_async_find_directory ##### -->
399 <!-- ##### FUNCTION gnome_vfs_async_file_control ##### -->
407 @operation_data_destroy_func: