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