1 /* GIO - GLib Input, Output and Streaming Library 2 * 3 * Copyright (C) 2006-2007 Red Hat, Inc. 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2.1 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General 16 * Public License along with this library; if not, see <http://www.gnu.org/licenses/>. 17 * 18 * Author: Alexander Larsson <alexl@redhat.com> 19 */ 20 21 #ifndef __G_FILE_H__ 22 #define __G_FILE_H__ 23 24 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) 25 #error "Only <gio/gio.h> can be included directly." 26 #endif 27 28 #include <gio/giotypes.h> 29 30 G_BEGIN_DECLS 31 32 #define G_TYPE_FILE (g_file_get_type ()) 33 #define G_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_FILE, GFile)) 34 #define G_IS_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_FILE)) 35 #define G_FILE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_FILE, GFileIface)) 36 37 #if 0 38 /** 39 * GFile: 40 * 41 * A handle to an object implementing the #GFileIface interface. 42 * Generally stores a location within the file system. Handles do not 43 * necessarily represent files or directories that currently exist. 44 **/ 45 typedef struct _GFile GFile; /* Dummy typedef */ 46 #endif 47 typedef struct _GFileIface GFileIface; 48 49 50 /** 51 * GFileIface: 52 * @g_iface: The parent interface. 53 * @dup: Duplicates a #GFile. 54 * @hash: Creates a hash of a #GFile. 55 * @equal: Checks equality of two given #GFiles. 56 * @is_native: Checks to see if a file is native to the system. 57 * @has_uri_scheme: Checks to see if a #GFile has a given URI scheme. 58 * @get_uri_scheme: Gets the URI scheme for a #GFile. 59 * @get_basename: Gets the basename for a given #GFile. 60 * @get_path: Gets the current path within a #GFile. 61 * @get_uri: Gets a URI for the path within a #GFile. 62 * @get_parse_name: Gets the parsed name for the #GFile. 63 * @get_parent: Gets the parent directory for the #GFile. 64 * @prefix_matches: Checks whether a #GFile contains a specified file. 65 * @get_relative_path: Gets the path for a #GFile relative to a given path. 66 * @resolve_relative_path: Resolves a relative path for a #GFile to an absolute path. 67 * @get_child_for_display_name: Gets the child #GFile for a given display name. 68 * @enumerate_children: Gets a #GFileEnumerator with the children of a #GFile. 69 * @enumerate_children_async: Asynchronously gets a #GFileEnumerator with the children of a #GFile. 70 * @enumerate_children_finish: Finishes asynchronously enumerating the children. 71 * @query_info: Gets the #GFileInfo for a #GFile. 72 * @query_info_async: Asynchronously gets the #GFileInfo for a #GFile. 73 * @query_info_finish: Finishes an asynchronous query info operation. 74 * @query_filesystem_info: Gets a #GFileInfo for the file system #GFile is on. 75 * @query_filesystem_info_async: Asynchronously gets a #GFileInfo for the file system #GFile is on. 76 * @query_filesystem_info_finish: Finishes asynchronously getting the file system info. 77 * @find_enclosing_mount: Gets a #GMount for the #GFile. 78 * @find_enclosing_mount_async: Asynchronously gets the #GMount for a #GFile. 79 * @find_enclosing_mount_finish: Finishes asynchronously getting the volume. 80 * @set_display_name: Sets the display name for a #GFile. 81 * @set_display_name_async: Asynchronously sets a #GFile's display name. 82 * @set_display_name_finish: Finishes asynchronously setting a #GFile's display name. 83 * @query_settable_attributes: Returns a list of #GFileAttributeInfos that can be set. 84 * @_query_settable_attributes_async: Asynchronously gets a list of #GFileAttributeInfos that can be set. 85 * @_query_settable_attributes_finish: Finishes asynchronously querying settable attributes. 86 * @query_writable_namespaces: Returns a list of #GFileAttributeInfo namespaces that are writable. 87 * @_query_writable_namespaces_async: Asynchronously gets a list of #GFileAttributeInfo namespaces that are writable. 88 * @_query_writable_namespaces_finish: Finishes asynchronously querying the writable namespaces. 89 * @set_attribute: Sets a #GFileAttributeInfo. 90 * @set_attributes_from_info: Sets a #GFileAttributeInfo with information from a #GFileInfo. 91 * @set_attributes_async: Asynchronously sets a file's attributes. 92 * @set_attributes_finish: Finishes setting a file's attributes asynchronously. 93 * @read_fn: Reads a file asynchronously. 94 * @read_async: Asynchronously reads a file. 95 * @read_finish: Finishes asynchronously reading a file. 96 * @append_to: Writes to the end of a file. 97 * @append_to_async: Asynchronously writes to the end of a file. 98 * @append_to_finish: Finishes an asynchronous file append operation. 99 * @create: Creates a new file. 100 * @create_async: Asynchronously creates a file. 101 * @create_finish: Finishes asynchronously creating a file. 102 * @replace: Replaces the contents of a file. 103 * @replace_async: Asynchronously replaces the contents of a file. 104 * @replace_finish: Finishes asynchronously replacing a file. 105 * @delete_file: Deletes a file. 106 * @delete_file_async: Asynchronously deletes a file. 107 * @delete_file_finish: Finishes an asynchronous delete. 108 * @trash: Sends a #GFile to the Trash location. 109 * @trash_async: Asynchronously sends a #GFile to the Trash location. 110 * @trash_finish: Finishes an asynchronous file trashing operation. 111 * @make_directory: Makes a directory. 112 * @make_directory_async: Asynchronously makes a directory. 113 * @make_directory_finish: Finishes making a directory asynchronously. 114 * @make_symbolic_link: (nullable): Makes a symbolic link. %NULL if symbolic 115 * links are unsupported. 116 * @_make_symbolic_link_async: Asynchronously makes a symbolic link 117 * @_make_symbolic_link_finish: Finishes making a symbolic link asynchronously. 118 * @copy: (nullable): Copies a file. %NULL if copying is unsupported, which will 119 * cause `GFile` to use a fallback copy method where it reads from the 120 * source and writes to the destination. 121 * @copy_async: Asynchronously copies a file. 122 * @copy_finish: Finishes an asynchronous copy operation. 123 * @move: Moves a file. 124 * @_move_async: Asynchronously moves a file. 125 * @_move_finish: Finishes an asynchronous move operation. 126 * @mount_mountable: Mounts a mountable object. 127 * @mount_mountable_finish: Finishes a mounting operation. 128 * @unmount_mountable: Unmounts a mountable object. 129 * @unmount_mountable_finish: Finishes an unmount operation. 130 * @eject_mountable: Ejects a mountable. 131 * @eject_mountable_finish: Finishes an eject operation. 132 * @mount_enclosing_volume: Mounts a specified location. 133 * @mount_enclosing_volume_finish: Finishes mounting a specified location. 134 * @monitor_dir: Creates a #GFileMonitor for the location. 135 * @monitor_file: Creates a #GFileMonitor for the location. 136 * @open_readwrite: Open file read/write. Since 2.22. 137 * @open_readwrite_async: Asynchronously opens file read/write. Since 2.22. 138 * @open_readwrite_finish: Finishes an asynchronous open read/write. Since 2.22. 139 * @create_readwrite: Creates file read/write. Since 2.22. 140 * @create_readwrite_async: Asynchronously creates file read/write. Since 2.22. 141 * @create_readwrite_finish: Finishes an asynchronous creates read/write. Since 2.22. 142 * @replace_readwrite: Replaces file read/write. Since 2.22. 143 * @replace_readwrite_async: Asynchronously replaces file read/write. Since 2.22. 144 * @replace_readwrite_finish: Finishes an asynchronous replace read/write. Since 2.22. 145 * @start_mountable: Starts a mountable object. Since 2.22. 146 * @start_mountable_finish: Finishes a start operation. Since 2.22. 147 * @stop_mountable: Stops a mountable. Since 2.22. 148 * @stop_mountable_finish: Finishes a stop operation. Since 2.22. 149 * @supports_thread_contexts: a boolean that indicates whether the #GFile implementation supports thread-default contexts. Since 2.22. 150 * @unmount_mountable_with_operation: Unmounts a mountable object using a #GMountOperation. Since 2.22. 151 * @unmount_mountable_with_operation_finish: Finishes an unmount operation using a #GMountOperation. Since 2.22. 152 * @eject_mountable_with_operation: Ejects a mountable object using a #GMountOperation. Since 2.22. 153 * @eject_mountable_with_operation_finish: Finishes an eject operation using a #GMountOperation. Since 2.22. 154 * @poll_mountable: Polls a mountable object for media changes. Since 2.22. 155 * @poll_mountable_finish: Finishes a poll operation for media changes. Since 2.22. 156 * @measure_disk_usage: Recursively measures the disk usage of @file. Since 2.38 157 * @measure_disk_usage_async: Asynchronously recursively measures the disk usage of @file. Since 2.38 158 * @measure_disk_usage_finish: Finishes an asynchronous recursive measurement of the disk usage of @file. Since 2.38 159 * 160 * An interface for writing VFS file handles. 161 **/ 162 struct _GFileIface 163 { 164 GTypeInterface g_iface; 165 166 /* Virtual Table */ 167 168 GFile * (* dup) (GFile *file); 169 guint (* hash) (GFile *file); 170 gboolean (* equal) (GFile *file1, 171 GFile *file2); 172 gboolean (* is_native) (GFile *file); 173 gboolean (* has_uri_scheme) (GFile *file, 174 const char *uri_scheme); 175 char * (* get_uri_scheme) (GFile *file); 176 char * (* get_basename) (GFile *file); 177 char * (* get_path) (GFile *file); 178 char * (* get_uri) (GFile *file); 179 char * (* get_parse_name) (GFile *file); 180 GFile * (* get_parent) (GFile *file); 181 gboolean (* prefix_matches) (GFile *prefix, 182 GFile *file); 183 char * (* get_relative_path) (GFile *parent, 184 GFile *descendant); 185 GFile * (* resolve_relative_path) (GFile *file, 186 const char *relative_path); 187 GFile * (* get_child_for_display_name) (GFile *file, 188 const char *display_name, 189 GError **error); 190 191 GFileEnumerator * (* enumerate_children) (GFile *file, 192 const char *attributes, 193 GFileQueryInfoFlags flags, 194 GCancellable *cancellable, 195 GError **error); 196 void (* enumerate_children_async) (GFile *file, 197 const char *attributes, 198 GFileQueryInfoFlags flags, 199 int io_priority, 200 GCancellable *cancellable, 201 GAsyncReadyCallback callback, 202 gpointer user_data); 203 GFileEnumerator * (* enumerate_children_finish) (GFile *file, 204 GAsyncResult *res, 205 GError **error); 206 207 GFileInfo * (* query_info) (GFile *file, 208 const char *attributes, 209 GFileQueryInfoFlags flags, 210 GCancellable *cancellable, 211 GError **error); 212 void (* query_info_async) (GFile *file, 213 const char *attributes, 214 GFileQueryInfoFlags flags, 215 int io_priority, 216 GCancellable *cancellable, 217 GAsyncReadyCallback callback, 218 gpointer user_data); 219 GFileInfo * (* query_info_finish) (GFile *file, 220 GAsyncResult *res, 221 GError **error); 222 223 GFileInfo * (* query_filesystem_info) (GFile *file, 224 const char *attributes, 225 GCancellable *cancellable, 226 GError **error); 227 void (* query_filesystem_info_async) (GFile *file, 228 const char *attributes, 229 int io_priority, 230 GCancellable *cancellable, 231 GAsyncReadyCallback callback, 232 gpointer user_data); 233 GFileInfo * (* query_filesystem_info_finish)(GFile *file, 234 GAsyncResult *res, 235 GError **error); 236 237 GMount * (* find_enclosing_mount) (GFile *file, 238 GCancellable *cancellable, 239 GError **error); 240 void (* find_enclosing_mount_async) (GFile *file, 241 int io_priority, 242 GCancellable *cancellable, 243 GAsyncReadyCallback callback, 244 gpointer user_data); 245 GMount * (* find_enclosing_mount_finish) (GFile *file, 246 GAsyncResult *res, 247 GError **error); 248 249 GFile * (* set_display_name) (GFile *file, 250 const char *display_name, 251 GCancellable *cancellable, 252 GError **error); 253 void (* set_display_name_async) (GFile *file, 254 const char *display_name, 255 int io_priority, 256 GCancellable *cancellable, 257 GAsyncReadyCallback callback, 258 gpointer user_data); 259 GFile * (* set_display_name_finish) (GFile *file, 260 GAsyncResult *res, 261 GError **error); 262 263 GFileAttributeInfoList * (* query_settable_attributes) (GFile *file, 264 GCancellable *cancellable, 265 GError **error); 266 void (* _query_settable_attributes_async) (void); 267 void (* _query_settable_attributes_finish) (void); 268 269 GFileAttributeInfoList * (* query_writable_namespaces) (GFile *file, 270 GCancellable *cancellable, 271 GError **error); 272 void (* _query_writable_namespaces_async) (void); 273 void (* _query_writable_namespaces_finish) (void); 274 275 gboolean (* set_attribute) (GFile *file, 276 const char *attribute, 277 GFileAttributeType type, 278 gpointer value_p, 279 GFileQueryInfoFlags flags, 280 GCancellable *cancellable, 281 GError **error); 282 gboolean (* set_attributes_from_info) (GFile *file, 283 GFileInfo *info, 284 GFileQueryInfoFlags flags, 285 GCancellable *cancellable, 286 GError **error); 287 void (* set_attributes_async) (GFile *file, 288 GFileInfo *info, 289 GFileQueryInfoFlags flags, 290 int io_priority, 291 GCancellable *cancellable, 292 GAsyncReadyCallback callback, 293 gpointer user_data); 294 gboolean (* set_attributes_finish) (GFile *file, 295 GAsyncResult *result, 296 GFileInfo **info, 297 GError **error); 298 299 GFileInputStream * (* read_fn) (GFile *file, 300 GCancellable *cancellable, 301 GError **error); 302 void (* read_async) (GFile *file, 303 int io_priority, 304 GCancellable *cancellable, 305 GAsyncReadyCallback callback, 306 gpointer user_data); 307 GFileInputStream * (* read_finish) (GFile *file, 308 GAsyncResult *res, 309 GError **error); 310 311 GFileOutputStream * (* append_to) (GFile *file, 312 GFileCreateFlags flags, 313 GCancellable *cancellable, 314 GError **error); 315 void (* append_to_async) (GFile *file, 316 GFileCreateFlags flags, 317 int io_priority, 318 GCancellable *cancellable, 319 GAsyncReadyCallback callback, 320 gpointer user_data); 321 GFileOutputStream * (* append_to_finish) (GFile *file, 322 GAsyncResult *res, 323 GError **error); 324 325 GFileOutputStream * (* create) (GFile *file, 326 GFileCreateFlags flags, 327 GCancellable *cancellable, 328 GError **error); 329 void (* create_async) (GFile *file, 330 GFileCreateFlags flags, 331 int io_priority, 332 GCancellable *cancellable, 333 GAsyncReadyCallback callback, 334 gpointer user_data); 335 GFileOutputStream * (* create_finish) (GFile *file, 336 GAsyncResult *res, 337 GError **error); 338 339 GFileOutputStream * (* replace) (GFile *file, 340 const char *etag, 341 gboolean make_backup, 342 GFileCreateFlags flags, 343 GCancellable *cancellable, 344 GError **error); 345 void (* replace_async) (GFile *file, 346 const char *etag, 347 gboolean make_backup, 348 GFileCreateFlags flags, 349 int io_priority, 350 GCancellable *cancellable, 351 GAsyncReadyCallback callback, 352 gpointer user_data); 353 GFileOutputStream * (* replace_finish) (GFile *file, 354 GAsyncResult *res, 355 GError **error); 356 357 gboolean (* delete_file) (GFile *file, 358 GCancellable *cancellable, 359 GError **error); 360 void (* delete_file_async) (GFile *file, 361 int io_priority, 362 GCancellable *cancellable, 363 GAsyncReadyCallback callback, 364 gpointer user_data); 365 gboolean (* delete_file_finish) (GFile *file, 366 GAsyncResult *result, 367 GError **error); 368 369 gboolean (* trash) (GFile *file, 370 GCancellable *cancellable, 371 GError **error); 372 void (* trash_async) (GFile *file, 373 int io_priority, 374 GCancellable *cancellable, 375 GAsyncReadyCallback callback, 376 gpointer user_data); 377 gboolean (* trash_finish) (GFile *file, 378 GAsyncResult *result, 379 GError **error); 380 381 gboolean (* make_directory) (GFile *file, 382 GCancellable *cancellable, 383 GError **error); 384 void (* make_directory_async) (GFile *file, 385 int io_priority, 386 GCancellable *cancellable, 387 GAsyncReadyCallback callback, 388 gpointer user_data); 389 gboolean (* make_directory_finish) (GFile *file, 390 GAsyncResult *result, 391 GError **error); 392 393 gboolean (* make_symbolic_link) (GFile *file, 394 const char *symlink_value, 395 GCancellable *cancellable, 396 GError **error); 397 void (* _make_symbolic_link_async) (void); 398 void (* _make_symbolic_link_finish) (void); 399 400 gboolean (* copy) (GFile *source, 401 GFile *destination, 402 GFileCopyFlags flags, 403 GCancellable *cancellable, 404 GFileProgressCallback progress_callback, 405 gpointer progress_callback_data, 406 GError **error); 407 void (* copy_async) (GFile *source, 408 GFile *destination, 409 GFileCopyFlags flags, 410 int io_priority, 411 GCancellable *cancellable, 412 GFileProgressCallback progress_callback, 413 gpointer progress_callback_data, 414 GAsyncReadyCallback callback, 415 gpointer user_data); 416 gboolean (* copy_finish) (GFile *file, 417 GAsyncResult *res, 418 GError **error); 419 420 gboolean (* move) (GFile *source, 421 GFile *destination, 422 GFileCopyFlags flags, 423 GCancellable *cancellable, 424 GFileProgressCallback progress_callback, 425 gpointer progress_callback_data, 426 GError **error); 427 void (* _move_async) (void); 428 void (* _move_finish) (void); 429 430 void (* mount_mountable) (GFile *file, 431 GMountMountFlags flags, 432 GMountOperation *mount_operation, 433 GCancellable *cancellable, 434 GAsyncReadyCallback callback, 435 gpointer user_data); 436 GFile * (* mount_mountable_finish) (GFile *file, 437 GAsyncResult *result, 438 GError **error); 439 440 void (* unmount_mountable) (GFile *file, 441 GMountUnmountFlags flags, 442 GCancellable *cancellable, 443 GAsyncReadyCallback callback, 444 gpointer user_data); 445 gboolean (* unmount_mountable_finish) (GFile *file, 446 GAsyncResult *result, 447 GError **error); 448 449 void (* eject_mountable) (GFile *file, 450 GMountUnmountFlags flags, 451 GCancellable *cancellable, 452 GAsyncReadyCallback callback, 453 gpointer user_data); 454 gboolean (* eject_mountable_finish) (GFile *file, 455 GAsyncResult *result, 456 GError **error); 457 458 void (* mount_enclosing_volume) (GFile *location, 459 GMountMountFlags flags, 460 GMountOperation *mount_operation, 461 GCancellable *cancellable, 462 GAsyncReadyCallback callback, 463 gpointer user_data); 464 gboolean (* mount_enclosing_volume_finish) (GFile *location, 465 GAsyncResult *result, 466 GError **error); 467 468 GFileMonitor * (* monitor_dir) (GFile *file, 469 GFileMonitorFlags flags, 470 GCancellable *cancellable, 471 GError **error); 472 GFileMonitor * (* monitor_file) (GFile *file, 473 GFileMonitorFlags flags, 474 GCancellable *cancellable, 475 GError **error); 476 477 GFileIOStream * (* open_readwrite) (GFile *file, 478 GCancellable *cancellable, 479 GError **error); 480 void (* open_readwrite_async) (GFile *file, 481 int io_priority, 482 GCancellable *cancellable, 483 GAsyncReadyCallback callback, 484 gpointer user_data); 485 GFileIOStream * (* open_readwrite_finish) (GFile *file, 486 GAsyncResult *res, 487 GError **error); 488 GFileIOStream * (* create_readwrite) (GFile *file, 489 GFileCreateFlags flags, 490 GCancellable *cancellable, 491 GError **error); 492 void (* create_readwrite_async) (GFile *file, 493 GFileCreateFlags flags, 494 int io_priority, 495 GCancellable *cancellable, 496 GAsyncReadyCallback callback, 497 gpointer user_data); 498 GFileIOStream * (* create_readwrite_finish) (GFile *file, 499 GAsyncResult *res, 500 GError **error); 501 GFileIOStream * (* replace_readwrite) (GFile *file, 502 const char *etag, 503 gboolean make_backup, 504 GFileCreateFlags flags, 505 GCancellable *cancellable, 506 GError **error); 507 void (* replace_readwrite_async) (GFile *file, 508 const char *etag, 509 gboolean make_backup, 510 GFileCreateFlags flags, 511 int io_priority, 512 GCancellable *cancellable, 513 GAsyncReadyCallback callback, 514 gpointer user_data); 515 GFileIOStream * (* replace_readwrite_finish) (GFile *file, 516 GAsyncResult *res, 517 GError **error); 518 519 void (* start_mountable) (GFile *file, 520 GDriveStartFlags flags, 521 GMountOperation *start_operation, 522 GCancellable *cancellable, 523 GAsyncReadyCallback callback, 524 gpointer user_data); 525 gboolean (* start_mountable_finish) (GFile *file, 526 GAsyncResult *result, 527 GError **error); 528 529 void (* stop_mountable) (GFile *file, 530 GMountUnmountFlags flags, 531 GMountOperation *mount_operation, 532 GCancellable *cancellable, 533 GAsyncReadyCallback callback, 534 gpointer user_data); 535 gboolean (* stop_mountable_finish) (GFile *file, 536 GAsyncResult *result, 537 GError **error); 538 539 gboolean supports_thread_contexts; 540 541 void (* unmount_mountable_with_operation) (GFile *file, 542 GMountUnmountFlags flags, 543 GMountOperation *mount_operation, 544 GCancellable *cancellable, 545 GAsyncReadyCallback callback, 546 gpointer user_data); 547 gboolean (* unmount_mountable_with_operation_finish) (GFile *file, 548 GAsyncResult *result, 549 GError **error); 550 551 void (* eject_mountable_with_operation) (GFile *file, 552 GMountUnmountFlags flags, 553 GMountOperation *mount_operation, 554 GCancellable *cancellable, 555 GAsyncReadyCallback callback, 556 gpointer user_data); 557 gboolean (* eject_mountable_with_operation_finish) (GFile *file, 558 GAsyncResult *result, 559 GError **error); 560 561 void (* poll_mountable) (GFile *file, 562 GCancellable *cancellable, 563 GAsyncReadyCallback callback, 564 gpointer user_data); 565 gboolean (* poll_mountable_finish) (GFile *file, 566 GAsyncResult *result, 567 GError **error); 568 569 gboolean (* measure_disk_usage) (GFile *file, 570 GFileMeasureFlags flags, 571 GCancellable *cancellable, 572 GFileMeasureProgressCallback progress_callback, 573 gpointer progress_data, 574 guint64 *disk_usage, 575 guint64 *num_dirs, 576 guint64 *num_files, 577 GError **error); 578 void (* measure_disk_usage_async) (GFile *file, 579 GFileMeasureFlags flags, 580 gint io_priority, 581 GCancellable *cancellable, 582 GFileMeasureProgressCallback progress_callback, 583 gpointer progress_data, 584 GAsyncReadyCallback callback, 585 gpointer user_data); 586 gboolean (* measure_disk_usage_finish) (GFile *file, 587 GAsyncResult *result, 588 guint64 *disk_usage, 589 guint64 *num_dirs, 590 guint64 *num_files, 591 GError **error); 592 }; 593 594 GLIB_AVAILABLE_IN_ALL 595 GType g_file_get_type (void) G_GNUC_CONST; 596 597 GLIB_AVAILABLE_IN_ALL 598 GFile * g_file_new_for_path (const char *path); 599 GLIB_AVAILABLE_IN_ALL 600 GFile * g_file_new_for_uri (const char *uri); 601 GLIB_AVAILABLE_IN_ALL 602 GFile * g_file_new_for_commandline_arg (const char *arg); 603 GLIB_AVAILABLE_IN_2_36 604 GFile * g_file_new_for_commandline_arg_and_cwd (const gchar *arg, 605 const gchar *cwd); 606 GLIB_AVAILABLE_IN_2_32 607 GFile * g_file_new_tmp (const char *tmpl, 608 GFileIOStream **iostream, 609 GError **error); 610 GLIB_AVAILABLE_IN_ALL 611 GFile * g_file_parse_name (const char *parse_name); 612 GLIB_AVAILABLE_IN_2_56 613 GFile * g_file_new_build_filename (const gchar *first_element, 614 ...) G_GNUC_NULL_TERMINATED; 615 GLIB_AVAILABLE_IN_ALL 616 GFile * g_file_dup (GFile *file); 617 GLIB_AVAILABLE_IN_ALL 618 guint g_file_hash (gconstpointer file); 619 GLIB_AVAILABLE_IN_ALL 620 gboolean g_file_equal (GFile *file1, 621 GFile *file2); 622 GLIB_AVAILABLE_IN_ALL 623 char * g_file_get_basename (GFile *file); 624 GLIB_AVAILABLE_IN_ALL 625 char * g_file_get_path (GFile *file); 626 GLIB_AVAILABLE_IN_2_56 627 const char * g_file_peek_path (GFile *file); 628 GLIB_AVAILABLE_IN_ALL 629 char * g_file_get_uri (GFile *file); 630 GLIB_AVAILABLE_IN_ALL 631 char * g_file_get_parse_name (GFile *file); 632 GLIB_AVAILABLE_IN_ALL 633 GFile * g_file_get_parent (GFile *file); 634 GLIB_AVAILABLE_IN_ALL 635 gboolean g_file_has_parent (GFile *file, 636 GFile *parent); 637 GLIB_AVAILABLE_IN_ALL 638 GFile * g_file_get_child (GFile *file, 639 const char *name); 640 GLIB_AVAILABLE_IN_ALL 641 GFile * g_file_get_child_for_display_name (GFile *file, 642 const char *display_name, 643 GError **error); 644 GLIB_AVAILABLE_IN_ALL 645 gboolean g_file_has_prefix (GFile *file, 646 GFile *prefix); 647 GLIB_AVAILABLE_IN_ALL 648 char * g_file_get_relative_path (GFile *parent, 649 GFile *descendant); 650 GLIB_AVAILABLE_IN_ALL 651 GFile * g_file_resolve_relative_path (GFile *file, 652 const char *relative_path); 653 GLIB_AVAILABLE_IN_ALL 654 gboolean g_file_is_native (GFile *file); 655 GLIB_AVAILABLE_IN_ALL 656 gboolean g_file_has_uri_scheme (GFile *file, 657 const char *uri_scheme); 658 GLIB_AVAILABLE_IN_ALL 659 char * g_file_get_uri_scheme (GFile *file); 660 GLIB_AVAILABLE_IN_ALL 661 GFileInputStream * g_file_read (GFile *file, 662 GCancellable *cancellable, 663 GError **error); 664 GLIB_AVAILABLE_IN_ALL 665 void g_file_read_async (GFile *file, 666 int io_priority, 667 GCancellable *cancellable, 668 GAsyncReadyCallback callback, 669 gpointer user_data); 670 GLIB_AVAILABLE_IN_ALL 671 GFileInputStream * g_file_read_finish (GFile *file, 672 GAsyncResult *res, 673 GError **error); 674 GLIB_AVAILABLE_IN_ALL 675 GFileOutputStream * g_file_append_to (GFile *file, 676 GFileCreateFlags flags, 677 GCancellable *cancellable, 678 GError **error); 679 GLIB_AVAILABLE_IN_ALL 680 GFileOutputStream * g_file_create (GFile *file, 681 GFileCreateFlags flags, 682 GCancellable *cancellable, 683 GError **error); 684 GLIB_AVAILABLE_IN_ALL 685 GFileOutputStream * g_file_replace (GFile *file, 686 const char *etag, 687 gboolean make_backup, 688 GFileCreateFlags flags, 689 GCancellable *cancellable, 690 GError **error); 691 GLIB_AVAILABLE_IN_ALL 692 void g_file_append_to_async (GFile *file, 693 GFileCreateFlags flags, 694 int io_priority, 695 GCancellable *cancellable, 696 GAsyncReadyCallback callback, 697 gpointer user_data); 698 GLIB_AVAILABLE_IN_ALL 699 GFileOutputStream * g_file_append_to_finish (GFile *file, 700 GAsyncResult *res, 701 GError **error); 702 GLIB_AVAILABLE_IN_ALL 703 void g_file_create_async (GFile *file, 704 GFileCreateFlags flags, 705 int io_priority, 706 GCancellable *cancellable, 707 GAsyncReadyCallback callback, 708 gpointer user_data); 709 GLIB_AVAILABLE_IN_ALL 710 GFileOutputStream * g_file_create_finish (GFile *file, 711 GAsyncResult *res, 712 GError **error); 713 GLIB_AVAILABLE_IN_ALL 714 void g_file_replace_async (GFile *file, 715 const char *etag, 716 gboolean make_backup, 717 GFileCreateFlags flags, 718 int io_priority, 719 GCancellable *cancellable, 720 GAsyncReadyCallback callback, 721 gpointer user_data); 722 GLIB_AVAILABLE_IN_ALL 723 GFileOutputStream * g_file_replace_finish (GFile *file, 724 GAsyncResult *res, 725 GError **error); 726 GLIB_AVAILABLE_IN_ALL 727 GFileIOStream * g_file_open_readwrite (GFile *file, 728 GCancellable *cancellable, 729 GError **error); 730 GLIB_AVAILABLE_IN_ALL 731 void g_file_open_readwrite_async (GFile *file, 732 int io_priority, 733 GCancellable *cancellable, 734 GAsyncReadyCallback callback, 735 gpointer user_data); 736 GLIB_AVAILABLE_IN_ALL 737 GFileIOStream * g_file_open_readwrite_finish (GFile *file, 738 GAsyncResult *res, 739 GError **error); 740 GLIB_AVAILABLE_IN_ALL 741 GFileIOStream * g_file_create_readwrite (GFile *file, 742 GFileCreateFlags flags, 743 GCancellable *cancellable, 744 GError **error); 745 GLIB_AVAILABLE_IN_ALL 746 void g_file_create_readwrite_async (GFile *file, 747 GFileCreateFlags flags, 748 int io_priority, 749 GCancellable *cancellable, 750 GAsyncReadyCallback callback, 751 gpointer user_data); 752 GLIB_AVAILABLE_IN_ALL 753 GFileIOStream * g_file_create_readwrite_finish (GFile *file, 754 GAsyncResult *res, 755 GError **error); 756 GLIB_AVAILABLE_IN_ALL 757 GFileIOStream * g_file_replace_readwrite (GFile *file, 758 const char *etag, 759 gboolean make_backup, 760 GFileCreateFlags flags, 761 GCancellable *cancellable, 762 GError **error); 763 GLIB_AVAILABLE_IN_ALL 764 void g_file_replace_readwrite_async (GFile *file, 765 const char *etag, 766 gboolean make_backup, 767 GFileCreateFlags flags, 768 int io_priority, 769 GCancellable *cancellable, 770 GAsyncReadyCallback callback, 771 gpointer user_data); 772 GLIB_AVAILABLE_IN_ALL 773 GFileIOStream * g_file_replace_readwrite_finish (GFile *file, 774 GAsyncResult *res, 775 GError **error); 776 GLIB_AVAILABLE_IN_ALL 777 gboolean g_file_query_exists (GFile *file, 778 GCancellable *cancellable); 779 GLIB_AVAILABLE_IN_ALL 780 GFileType g_file_query_file_type (GFile *file, 781 GFileQueryInfoFlags flags, 782 GCancellable *cancellable); 783 GLIB_AVAILABLE_IN_ALL 784 GFileInfo * g_file_query_info (GFile *file, 785 const char *attributes, 786 GFileQueryInfoFlags flags, 787 GCancellable *cancellable, 788 GError **error); 789 GLIB_AVAILABLE_IN_ALL 790 void g_file_query_info_async (GFile *file, 791 const char *attributes, 792 GFileQueryInfoFlags flags, 793 int io_priority, 794 GCancellable *cancellable, 795 GAsyncReadyCallback callback, 796 gpointer user_data); 797 GLIB_AVAILABLE_IN_ALL 798 GFileInfo * g_file_query_info_finish (GFile *file, 799 GAsyncResult *res, 800 GError **error); 801 GLIB_AVAILABLE_IN_ALL 802 GFileInfo * g_file_query_filesystem_info (GFile *file, 803 const char *attributes, 804 GCancellable *cancellable, 805 GError **error); 806 GLIB_AVAILABLE_IN_ALL 807 void g_file_query_filesystem_info_async (GFile *file, 808 const char *attributes, 809 int io_priority, 810 GCancellable *cancellable, 811 GAsyncReadyCallback callback, 812 gpointer user_data); 813 GLIB_AVAILABLE_IN_ALL 814 GFileInfo * g_file_query_filesystem_info_finish (GFile *file, 815 GAsyncResult *res, 816 GError **error); 817 GLIB_AVAILABLE_IN_ALL 818 GMount * g_file_find_enclosing_mount (GFile *file, 819 GCancellable *cancellable, 820 GError **error); 821 GLIB_AVAILABLE_IN_ALL 822 void g_file_find_enclosing_mount_async (GFile *file, 823 int io_priority, 824 GCancellable *cancellable, 825 GAsyncReadyCallback callback, 826 gpointer user_data); 827 GLIB_AVAILABLE_IN_ALL 828 GMount * g_file_find_enclosing_mount_finish (GFile *file, 829 GAsyncResult *res, 830 GError **error); 831 GLIB_AVAILABLE_IN_ALL 832 GFileEnumerator * g_file_enumerate_children (GFile *file, 833 const char *attributes, 834 GFileQueryInfoFlags flags, 835 GCancellable *cancellable, 836 GError **error); 837 GLIB_AVAILABLE_IN_ALL 838 void g_file_enumerate_children_async (GFile *file, 839 const char *attributes, 840 GFileQueryInfoFlags flags, 841 int io_priority, 842 GCancellable *cancellable, 843 GAsyncReadyCallback callback, 844 gpointer user_data); 845 GLIB_AVAILABLE_IN_ALL 846 GFileEnumerator * g_file_enumerate_children_finish (GFile *file, 847 GAsyncResult *res, 848 GError **error); 849 GLIB_AVAILABLE_IN_ALL 850 GFile * g_file_set_display_name (GFile *file, 851 const char *display_name, 852 GCancellable *cancellable, 853 GError **error); 854 GLIB_AVAILABLE_IN_ALL 855 void g_file_set_display_name_async (GFile *file, 856 const char *display_name, 857 int io_priority, 858 GCancellable *cancellable, 859 GAsyncReadyCallback callback, 860 gpointer user_data); 861 GLIB_AVAILABLE_IN_ALL 862 GFile * g_file_set_display_name_finish (GFile *file, 863 GAsyncResult *res, 864 GError **error); 865 GLIB_AVAILABLE_IN_ALL 866 gboolean g_file_delete (GFile *file, 867 GCancellable *cancellable, 868 GError **error); 869 870 GLIB_AVAILABLE_IN_2_34 871 void g_file_delete_async (GFile *file, 872 int io_priority, 873 GCancellable *cancellable, 874 GAsyncReadyCallback callback, 875 gpointer user_data); 876 877 GLIB_AVAILABLE_IN_2_34 878 gboolean g_file_delete_finish (GFile *file, 879 GAsyncResult *result, 880 GError **error); 881 882 GLIB_AVAILABLE_IN_ALL 883 gboolean g_file_trash (GFile *file, 884 GCancellable *cancellable, 885 GError **error); 886 887 GLIB_AVAILABLE_IN_2_38 888 void g_file_trash_async (GFile *file, 889 int io_priority, 890 GCancellable *cancellable, 891 GAsyncReadyCallback callback, 892 gpointer user_data); 893 894 GLIB_AVAILABLE_IN_2_38 895 gboolean g_file_trash_finish (GFile *file, 896 GAsyncResult *result, 897 GError **error); 898 899 GLIB_AVAILABLE_IN_ALL 900 gboolean g_file_copy (GFile *source, 901 GFile *destination, 902 GFileCopyFlags flags, 903 GCancellable *cancellable, 904 GFileProgressCallback progress_callback, 905 gpointer progress_callback_data, 906 GError **error); 907 GLIB_AVAILABLE_IN_ALL 908 void g_file_copy_async (GFile *source, 909 GFile *destination, 910 GFileCopyFlags flags, 911 int io_priority, 912 GCancellable *cancellable, 913 GFileProgressCallback progress_callback, 914 gpointer progress_callback_data, 915 GAsyncReadyCallback callback, 916 gpointer user_data); 917 GLIB_AVAILABLE_IN_ALL 918 gboolean g_file_copy_finish (GFile *file, 919 GAsyncResult *res, 920 GError **error); 921 GLIB_AVAILABLE_IN_ALL 922 gboolean g_file_move (GFile *source, 923 GFile *destination, 924 GFileCopyFlags flags, 925 GCancellable *cancellable, 926 GFileProgressCallback progress_callback, 927 gpointer progress_callback_data, 928 GError **error); 929 GLIB_AVAILABLE_IN_ALL 930 gboolean g_file_make_directory (GFile *file, 931 GCancellable *cancellable, 932 GError **error); 933 GLIB_AVAILABLE_IN_2_38 934 void g_file_make_directory_async (GFile *file, 935 int io_priority, 936 GCancellable *cancellable, 937 GAsyncReadyCallback callback, 938 gpointer user_data); 939 GLIB_AVAILABLE_IN_2_38 940 gboolean g_file_make_directory_finish (GFile *file, 941 GAsyncResult *result, 942 GError **error); 943 944 GLIB_AVAILABLE_IN_ALL 945 gboolean g_file_make_directory_with_parents (GFile *file, 946 GCancellable *cancellable, 947 GError **error); 948 GLIB_AVAILABLE_IN_ALL 949 gboolean g_file_make_symbolic_link (GFile *file, 950 const char *symlink_value, 951 GCancellable *cancellable, 952 GError **error); 953 GLIB_AVAILABLE_IN_ALL 954 GFileAttributeInfoList *g_file_query_settable_attributes (GFile *file, 955 GCancellable *cancellable, 956 GError **error); 957 GLIB_AVAILABLE_IN_ALL 958 GFileAttributeInfoList *g_file_query_writable_namespaces (GFile *file, 959 GCancellable *cancellable, 960 GError **error); 961 GLIB_AVAILABLE_IN_ALL 962 gboolean g_file_set_attribute (GFile *file, 963 const char *attribute, 964 GFileAttributeType type, 965 gpointer value_p, 966 GFileQueryInfoFlags flags, 967 GCancellable *cancellable, 968 GError **error); 969 GLIB_AVAILABLE_IN_ALL 970 gboolean g_file_set_attributes_from_info (GFile *file, 971 GFileInfo *info, 972 GFileQueryInfoFlags flags, 973 GCancellable *cancellable, 974 GError **error); 975 GLIB_AVAILABLE_IN_ALL 976 void g_file_set_attributes_async (GFile *file, 977 GFileInfo *info, 978 GFileQueryInfoFlags flags, 979 int io_priority, 980 GCancellable *cancellable, 981 GAsyncReadyCallback callback, 982 gpointer user_data); 983 GLIB_AVAILABLE_IN_ALL 984 gboolean g_file_set_attributes_finish (GFile *file, 985 GAsyncResult *result, 986 GFileInfo **info, 987 GError **error); 988 GLIB_AVAILABLE_IN_ALL 989 gboolean g_file_set_attribute_string (GFile *file, 990 const char *attribute, 991 const char *value, 992 GFileQueryInfoFlags flags, 993 GCancellable *cancellable, 994 GError **error); 995 GLIB_AVAILABLE_IN_ALL 996 gboolean g_file_set_attribute_byte_string (GFile *file, 997 const char *attribute, 998 const char *value, 999 GFileQueryInfoFlags flags, 1000 GCancellable *cancellable, 1001 GError **error); 1002 GLIB_AVAILABLE_IN_ALL 1003 gboolean g_file_set_attribute_uint32 (GFile *file, 1004 const char *attribute, 1005 guint32 value, 1006 GFileQueryInfoFlags flags, 1007 GCancellable *cancellable, 1008 GError **error); 1009 GLIB_AVAILABLE_IN_ALL 1010 gboolean g_file_set_attribute_int32 (GFile *file, 1011 const char *attribute, 1012 gint32 value, 1013 GFileQueryInfoFlags flags, 1014 GCancellable *cancellable, 1015 GError **error); 1016 GLIB_AVAILABLE_IN_ALL 1017 gboolean g_file_set_attribute_uint64 (GFile *file, 1018 const char *attribute, 1019 guint64 value, 1020 GFileQueryInfoFlags flags, 1021 GCancellable *cancellable, 1022 GError **error); 1023 GLIB_AVAILABLE_IN_ALL 1024 gboolean g_file_set_attribute_int64 (GFile *file, 1025 const char *attribute, 1026 gint64 value, 1027 GFileQueryInfoFlags flags, 1028 GCancellable *cancellable, 1029 GError **error); 1030 GLIB_AVAILABLE_IN_ALL 1031 void g_file_mount_enclosing_volume (GFile *location, 1032 GMountMountFlags flags, 1033 GMountOperation *mount_operation, 1034 GCancellable *cancellable, 1035 GAsyncReadyCallback callback, 1036 gpointer user_data); 1037 GLIB_AVAILABLE_IN_ALL 1038 gboolean g_file_mount_enclosing_volume_finish (GFile *location, 1039 GAsyncResult *result, 1040 GError **error); 1041 GLIB_AVAILABLE_IN_ALL 1042 void g_file_mount_mountable (GFile *file, 1043 GMountMountFlags flags, 1044 GMountOperation *mount_operation, 1045 GCancellable *cancellable, 1046 GAsyncReadyCallback callback, 1047 gpointer user_data); 1048 GLIB_AVAILABLE_IN_ALL 1049 GFile * g_file_mount_mountable_finish (GFile *file, 1050 GAsyncResult *result, 1051 GError **error); 1052 GLIB_DEPRECATED_FOR(g_file_unmount_mountable_with_operation) 1053 void g_file_unmount_mountable (GFile *file, 1054 GMountUnmountFlags flags, 1055 GCancellable *cancellable, 1056 GAsyncReadyCallback callback, 1057 gpointer user_data); 1058 1059 GLIB_DEPRECATED_FOR(g_file_unmount_mountable_with_operation_finish) 1060 gboolean g_file_unmount_mountable_finish (GFile *file, 1061 GAsyncResult *result, 1062 GError **error); 1063 GLIB_AVAILABLE_IN_ALL 1064 void g_file_unmount_mountable_with_operation (GFile *file, 1065 GMountUnmountFlags flags, 1066 GMountOperation *mount_operation, 1067 GCancellable *cancellable, 1068 GAsyncReadyCallback callback, 1069 gpointer user_data); 1070 GLIB_AVAILABLE_IN_ALL 1071 gboolean g_file_unmount_mountable_with_operation_finish (GFile *file, 1072 GAsyncResult *result, 1073 GError **error); 1074 GLIB_DEPRECATED_FOR(g_file_eject_mountable_with_operation) 1075 void g_file_eject_mountable (GFile *file, 1076 GMountUnmountFlags flags, 1077 GCancellable *cancellable, 1078 GAsyncReadyCallback callback, 1079 gpointer user_data); 1080 1081 GLIB_DEPRECATED_FOR(g_file_eject_mountable_with_operation_finish) 1082 gboolean g_file_eject_mountable_finish (GFile *file, 1083 GAsyncResult *result, 1084 GError **error); 1085 GLIB_AVAILABLE_IN_ALL 1086 void g_file_eject_mountable_with_operation (GFile *file, 1087 GMountUnmountFlags flags, 1088 GMountOperation *mount_operation, 1089 GCancellable *cancellable, 1090 GAsyncReadyCallback callback, 1091 gpointer user_data); 1092 GLIB_AVAILABLE_IN_ALL 1093 gboolean g_file_eject_mountable_with_operation_finish (GFile *file, 1094 GAsyncResult *result, 1095 GError **error); 1096 1097 GLIB_AVAILABLE_IN_2_68 1098 char * g_file_build_attribute_list_for_copy (GFile *file, 1099 GFileCopyFlags flags, 1100 GCancellable *cancellable, 1101 GError **error); 1102 1103 GLIB_AVAILABLE_IN_ALL 1104 gboolean g_file_copy_attributes (GFile *source, 1105 GFile *destination, 1106 GFileCopyFlags flags, 1107 GCancellable *cancellable, 1108 GError **error); 1109 1110 1111 GLIB_AVAILABLE_IN_ALL 1112 GFileMonitor* g_file_monitor_directory (GFile *file, 1113 GFileMonitorFlags flags, 1114 GCancellable *cancellable, 1115 GError **error); 1116 GLIB_AVAILABLE_IN_ALL 1117 GFileMonitor* g_file_monitor_file (GFile *file, 1118 GFileMonitorFlags flags, 1119 GCancellable *cancellable, 1120 GError **error); 1121 GLIB_AVAILABLE_IN_ALL 1122 GFileMonitor* g_file_monitor (GFile *file, 1123 GFileMonitorFlags flags, 1124 GCancellable *cancellable, 1125 GError **error); 1126 1127 GLIB_AVAILABLE_IN_2_38 1128 gboolean g_file_measure_disk_usage (GFile *file, 1129 GFileMeasureFlags flags, 1130 GCancellable *cancellable, 1131 GFileMeasureProgressCallback progress_callback, 1132 gpointer progress_data, 1133 guint64 *disk_usage, 1134 guint64 *num_dirs, 1135 guint64 *num_files, 1136 GError **error); 1137 1138 GLIB_AVAILABLE_IN_2_38 1139 void g_file_measure_disk_usage_async (GFile *file, 1140 GFileMeasureFlags flags, 1141 gint io_priority, 1142 GCancellable *cancellable, 1143 GFileMeasureProgressCallback progress_callback, 1144 gpointer progress_data, 1145 GAsyncReadyCallback callback, 1146 gpointer user_data); 1147 1148 GLIB_AVAILABLE_IN_2_38 1149 gboolean g_file_measure_disk_usage_finish (GFile *file, 1150 GAsyncResult *result, 1151 guint64 *disk_usage, 1152 guint64 *num_dirs, 1153 guint64 *num_files, 1154 GError **error); 1155 1156 GLIB_AVAILABLE_IN_ALL 1157 void g_file_start_mountable (GFile *file, 1158 GDriveStartFlags flags, 1159 GMountOperation *start_operation, 1160 GCancellable *cancellable, 1161 GAsyncReadyCallback callback, 1162 gpointer user_data); 1163 GLIB_AVAILABLE_IN_ALL 1164 gboolean g_file_start_mountable_finish (GFile *file, 1165 GAsyncResult *result, 1166 GError **error); 1167 GLIB_AVAILABLE_IN_ALL 1168 void g_file_stop_mountable (GFile *file, 1169 GMountUnmountFlags flags, 1170 GMountOperation *mount_operation, 1171 GCancellable *cancellable, 1172 GAsyncReadyCallback callback, 1173 gpointer user_data); 1174 GLIB_AVAILABLE_IN_ALL 1175 gboolean g_file_stop_mountable_finish (GFile *file, 1176 GAsyncResult *result, 1177 GError **error); 1178 1179 GLIB_AVAILABLE_IN_ALL 1180 void g_file_poll_mountable (GFile *file, 1181 GCancellable *cancellable, 1182 GAsyncReadyCallback callback, 1183 gpointer user_data); 1184 GLIB_AVAILABLE_IN_ALL 1185 gboolean g_file_poll_mountable_finish (GFile *file, 1186 GAsyncResult *result, 1187 GError **error); 1188 1189 /* Utilities */ 1190 1191 GLIB_AVAILABLE_IN_ALL 1192 GAppInfo *g_file_query_default_handler (GFile *file, 1193 GCancellable *cancellable, 1194 GError **error); 1195 GLIB_AVAILABLE_IN_2_60 1196 void g_file_query_default_handler_async (GFile *file, 1197 int io_priority, 1198 GCancellable *cancellable, 1199 GAsyncReadyCallback callback, 1200 gpointer user_data); 1201 GLIB_AVAILABLE_IN_2_60 1202 GAppInfo *g_file_query_default_handler_finish (GFile *file, 1203 GAsyncResult *result, 1204 GError **error); 1205 1206 GLIB_AVAILABLE_IN_ALL 1207 gboolean g_file_load_contents (GFile *file, 1208 GCancellable *cancellable, 1209 char **contents, 1210 gsize *length, 1211 char **etag_out, 1212 GError **error); 1213 GLIB_AVAILABLE_IN_ALL 1214 void g_file_load_contents_async (GFile *file, 1215 GCancellable *cancellable, 1216 GAsyncReadyCallback callback, 1217 gpointer user_data); 1218 GLIB_AVAILABLE_IN_ALL 1219 gboolean g_file_load_contents_finish (GFile *file, 1220 GAsyncResult *res, 1221 char **contents, 1222 gsize *length, 1223 char **etag_out, 1224 GError **error); 1225 GLIB_AVAILABLE_IN_ALL 1226 void g_file_load_partial_contents_async (GFile *file, 1227 GCancellable *cancellable, 1228 GFileReadMoreCallback read_more_callback, 1229 GAsyncReadyCallback callback, 1230 gpointer user_data); 1231 GLIB_AVAILABLE_IN_ALL 1232 gboolean g_file_load_partial_contents_finish (GFile *file, 1233 GAsyncResult *res, 1234 char **contents, 1235 gsize *length, 1236 char **etag_out, 1237 GError **error); 1238 GLIB_AVAILABLE_IN_ALL 1239 gboolean g_file_replace_contents (GFile *file, 1240 const char *contents, 1241 gsize length, 1242 const char *etag, 1243 gboolean make_backup, 1244 GFileCreateFlags flags, 1245 char **new_etag, 1246 GCancellable *cancellable, 1247 GError **error); 1248 GLIB_AVAILABLE_IN_ALL 1249 void g_file_replace_contents_async (GFile *file, 1250 const char *contents, 1251 gsize length, 1252 const char *etag, 1253 gboolean make_backup, 1254 GFileCreateFlags flags, 1255 GCancellable *cancellable, 1256 GAsyncReadyCallback callback, 1257 gpointer user_data); 1258 GLIB_AVAILABLE_IN_2_40 1259 void g_file_replace_contents_bytes_async (GFile *file, 1260 GBytes *contents, 1261 const char *etag, 1262 gboolean make_backup, 1263 GFileCreateFlags flags, 1264 GCancellable *cancellable, 1265 GAsyncReadyCallback callback, 1266 gpointer user_data); 1267 GLIB_AVAILABLE_IN_ALL 1268 gboolean g_file_replace_contents_finish (GFile *file, 1269 GAsyncResult *res, 1270 char **new_etag, 1271 GError **error); 1272 1273 GLIB_AVAILABLE_IN_ALL 1274 gboolean g_file_supports_thread_contexts (GFile *file); 1275 1276 GLIB_AVAILABLE_IN_2_56 1277 GBytes *g_file_load_bytes (GFile *file, 1278 GCancellable *cancellable, 1279 gchar **etag_out, 1280 GError **error); 1281 GLIB_AVAILABLE_IN_2_56 1282 void g_file_load_bytes_async (GFile *file, 1283 GCancellable *cancellable, 1284 GAsyncReadyCallback callback, 1285 gpointer user_data); 1286 GLIB_AVAILABLE_IN_2_56 1287 GBytes *g_file_load_bytes_finish (GFile *file, 1288 GAsyncResult *result, 1289 gchar **etag_out, 1290 GError **error); 1291 1292 G_END_DECLS 1293 1294 #endif /* __G_FILE_H__ */ 1295