1 /* GIO - GLib Input, Output and Streaming Library 2 * 3 * Copyright (C) 2006-2007 Red Hat, Inc. 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General 16 * Public License along with this library; if not, write to the 17 * Free Software Foundation, Inc., 59 Temple Place, Suite 330, 18 * Boston, MA 02111-1307, USA. 19 * 20 * Author: Alexander Larsson <alexl (at) redhat.com> 21 */ 22 23 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) 24 #error "Only <gio/gio.h> can be included directly." 25 #endif 26 27 #ifndef __GIO_TYPES_H__ 28 #define __GIO_TYPES_H__ 29 30 #include <gio/gioenums.h> 31 32 G_BEGIN_DECLS 33 34 typedef struct _GAppLaunchContext GAppLaunchContext; 35 typedef struct _GAppInfo GAppInfo; /* Dummy typedef */ 36 typedef struct _GAsyncResult GAsyncResult; /* Dummy typedef */ 37 typedef struct _GBufferedInputStream GBufferedInputStream; 38 typedef struct _GBufferedOutputStream GBufferedOutputStream; 39 typedef struct _GCancellable GCancellable; 40 typedef struct _GDataInputStream GDataInputStream; 41 42 /** 43 * GDrive: 44 * 45 * Opaque drive object. 46 **/ 47 typedef struct _GDrive GDrive; /* Dummy typedef */ 48 typedef struct _GFileEnumerator GFileEnumerator; 49 typedef struct _GFileMonitor GFileMonitor; 50 typedef struct _GFilterInputStream GFilterInputStream; 51 typedef struct _GFilterOutputStream GFilterOutputStream; 52 53 /** 54 * GFile: 55 * 56 * A handle to an object implementing the #GFileIface interface. 57 * Generally stores a location within the file system. Handles do not 58 * necessarily represent files or directories that currently exist. 59 **/ 60 typedef struct _GFile GFile; /* Dummy typedef */ 61 typedef struct _GFileInfo GFileInfo; 62 63 /** 64 * GFileAttributeMatcher: 65 * 66 * Determines if a string matches a file attribute. 67 **/ 68 typedef struct _GFileAttributeMatcher GFileAttributeMatcher; 69 typedef struct _GFileAttributeInfo GFileAttributeInfo; 70 typedef struct _GFileAttributeInfoList GFileAttributeInfoList; 71 typedef struct _GFileInputStream GFileInputStream; 72 typedef struct _GFileOutputStream GFileOutputStream; 73 typedef struct _GFileIcon GFileIcon; 74 typedef struct _GFilenameCompleter GFilenameCompleter; 75 76 77 typedef struct _GIcon GIcon; /* Dummy typedef */ 78 typedef struct _GInputStream GInputStream; 79 typedef struct _GIOModule GIOModule; 80 typedef struct _GIOExtensionPoint GIOExtensionPoint; 81 typedef struct _GIOExtension GIOExtension; 82 83 /** 84 * GIOSchedulerJob: 85 * 86 * Opaque class for definining and scheduling IO jobs. 87 **/ 88 typedef struct _GIOSchedulerJob GIOSchedulerJob; 89 typedef struct _GLoadableIcon GLoadableIcon; /* Dummy typedef */ 90 typedef struct _GMemoryInputStream GMemoryInputStream; 91 typedef struct _GMemoryOutputStream GMemoryOutputStream; 92 93 /** 94 * GMount: 95 * 96 * A handle to an object implementing the #GMountIface interface. 97 **/ 98 typedef struct _GMount GMount; /* Dummy typedef */ 99 typedef struct _GMountOperation GMountOperation; 100 typedef struct _GOutputStream GOutputStream; 101 typedef struct _GSeekable GSeekable; 102 typedef struct _GSimpleAsyncResult GSimpleAsyncResult; 103 typedef struct _GThemedIcon GThemedIcon; 104 typedef struct _GVfs GVfs; /* Dummy typedef */ 105 106 /** 107 * GVolume: 108 * 109 * Opaque mountable volume object. 110 **/ 111 typedef struct _GVolume GVolume; /* Dummy typedef */ 112 typedef struct _GVolumeMonitor GVolumeMonitor; 113 114 /** 115 * GAsyncReadyCallback: 116 * @source_object: the object the asynchronous operation was started with. 117 * @res: a #GAsyncResult. 118 * @user_data: user data passed to the callback. 119 * 120 * Type definition for a function that will be called back when an asynchronous 121 * operation within GIO has been completed. 122 **/ 123 typedef void (*GAsyncReadyCallback) (GObject *source_object, 124 GAsyncResult *res, 125 gpointer user_data); 126 127 /** 128 * GFileProgressCallback: 129 * @current_num_bytes: the current number of bytes in the operation. 130 * @total_num_bytes: the total number of bytes in the operation. 131 * @user_data: user data passed to the callback. 132 * 133 * When doing file operations that may take a while, such as moving 134 * a file or copying a file, a progress callback is used to pass how 135 * far along that operation is to the application. 136 **/ 137 typedef void (*GFileProgressCallback) (goffset current_num_bytes, 138 goffset total_num_bytes, 139 gpointer user_data); 140 141 /** 142 * GFileReadMoreCallback: 143 * @file_contents: the data as currently read. 144 * @file_size: the size of the data currently read. 145 * @callback_data: data passed to the callback. 146 * 147 * When loading the partial contents of a file with g_file_load_partial_contents_async(), 148 * it may become necessary to determine if any more data from the file should be loaded. 149 * A #GFileReadMoreCallback function facilitates this by returning %TRUE if more data 150 * should be read, or %FALSE otherwise. 151 * 152 * Returns: %TRUE if more data should be read back. %FALSE otherwise. 153 **/ 154 typedef gboolean (* GFileReadMoreCallback) (const char *file_contents, 155 goffset file_size, 156 gpointer callback_data); 157 158 159 /** 160 * GIOSchedulerJobFunc: 161 * @job: a #GIOSchedulerJob. 162 * @cancellable: optional #GCancellable object, %NULL to ignore. 163 * @user_data: the data to pass to callback function 164 * 165 * I/O Job function. 166 * 167 * Note that depending on whether threads are available, the 168 * #GIOScheduler may run jobs in separate threads or in an idle 169 * in the mainloop. 170 * 171 * Long-running jobs should periodically check the @cancellable 172 * to see if they have been cancelled. 173 * 174 * Returns: %TRUE if this function should be called again to 175 * complete the job, %FALSE if the job is complete (or cancelled) 176 **/ 177 typedef gboolean (*GIOSchedulerJobFunc) (GIOSchedulerJob *job, 178 GCancellable *cancellable, 179 gpointer user_data); 180 181 /** 182 * GSimpleAsyncThreadFunc: 183 * @res: a #GSimpleAsyncResult. 184 * @object: a #GObject. 185 * @cancellable: optional #GCancellable object, %NULL to ignore. 186 * 187 * Simple thread function that runs an asynchronous operation and 188 * checks for cancellation. 189 **/ 190 typedef void (*GSimpleAsyncThreadFunc) (GSimpleAsyncResult *res, 191 GObject *object, 192 GCancellable *cancellable); 193 194 G_END_DECLS 195 196 #endif /* __GIO_TYPES_H__ */ 197