Details
enum GnomeVFSResult
typedef enum {
GNOME_VFS_OK,
GNOME_VFS_ERROR_NOT_FOUND,
GNOME_VFS_ERROR_GENERIC,
GNOME_VFS_ERROR_INTERNAL,
GNOME_VFS_ERROR_BAD_PARAMETERS,
GNOME_VFS_ERROR_NOT_SUPPORTED,
GNOME_VFS_ERROR_IO,
GNOME_VFS_ERROR_CORRUPTED_DATA,
GNOME_VFS_ERROR_WRONG_FORMAT,
GNOME_VFS_ERROR_BAD_FILE,
GNOME_VFS_ERROR_TOO_BIG,
GNOME_VFS_ERROR_NO_SPACE,
GNOME_VFS_ERROR_READ_ONLY,
GNOME_VFS_ERROR_INVALID_URI,
GNOME_VFS_ERROR_NOT_OPEN,
GNOME_VFS_ERROR_INVALID_OPEN_MODE,
GNOME_VFS_ERROR_ACCESS_DENIED,
GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES,
GNOME_VFS_ERROR_EOF,
GNOME_VFS_ERROR_NOT_A_DIRECTORY,
GNOME_VFS_ERROR_IN_PROGRESS,
GNOME_VFS_ERROR_INTERRUPTED,
GNOME_VFS_ERROR_FILE_EXISTS,
GNOME_VFS_ERROR_LOOP,
GNOME_VFS_ERROR_NOT_PERMITTED,
GNOME_VFS_ERROR_IS_DIRECTORY,
GNOME_VFS_ERROR_NO_MEMORY,
GNOME_VFS_ERROR_HOST_NOT_FOUND,
GNOME_VFS_ERROR_INVALID_HOST_NAME,
GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS,
GNOME_VFS_ERROR_LOGIN_FAILED,
GNOME_VFS_ERROR_CANCELLED,
GNOME_VFS_ERROR_DIRECTORY_BUSY,
GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY,
GNOME_VFS_ERROR_TOO_MANY_LINKS,
GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM,
GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM,
GNOME_VFS_ERROR_NAME_TOO_LONG,
GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE,
GNOME_VFS_ERROR_SERVICE_OBSOLETE,
GNOME_VFS_ERROR_PROTOCOL_ERROR,
GNOME_VFS_NUM_ERRORS
} GnomeVFSResult;
enum GnomeVFSOpenMode
typedef enum {
GNOME_VFS_OPEN_NONE = 0,
GNOME_VFS_OPEN_READ = 1 << 0,
GNOME_VFS_OPEN_WRITE = 1 << 1,
GNOME_VFS_OPEN_RANDOM = 1 << 2
} GnomeVFSOpenMode;
enum GnomeVFSFileType
typedef enum {
GNOME_VFS_FILE_TYPE_UNKNOWN,
GNOME_VFS_FILE_TYPE_REGULAR,
GNOME_VFS_FILE_TYPE_DIRECTORY,
GNOME_VFS_FILE_TYPE_FIFO,
GNOME_VFS_FILE_TYPE_SOCKET,
GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE,
GNOME_VFS_FILE_TYPE_BLOCK_DEVICE,
GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK
} GnomeVFSFileType;
enum GnomeVFSFilePermissions
typedef enum {
GNOME_VFS_PERM_SUID = S_ISUID,
GNOME_VFS_PERM_SGID = S_ISGID,
GNOME_VFS_PERM_STICKY = 01000, /* S_ISVTX not defined on all systems */
GNOME_VFS_PERM_USER_READ = S_IRUSR,
GNOME_VFS_PERM_USER_WRITE = S_IWUSR,
GNOME_VFS_PERM_USER_EXEC = S_IXUSR,
GNOME_VFS_PERM_USER_ALL = S_IRUSR | S_IWUSR | S_IXUSR,
GNOME_VFS_PERM_GROUP_READ = S_IRGRP,
GNOME_VFS_PERM_GROUP_WRITE = S_IWGRP,
GNOME_VFS_PERM_GROUP_EXEC = S_IXGRP,
GNOME_VFS_PERM_GROUP_ALL = S_IRGRP | S_IWGRP | S_IXGRP,
GNOME_VFS_PERM_OTHER_READ = S_IROTH,
GNOME_VFS_PERM_OTHER_WRITE = S_IWOTH,
GNOME_VFS_PERM_OTHER_EXEC = S_IXOTH,
GNOME_VFS_PERM_OTHER_ALL = S_IROTH | S_IWOTH | S_IXOTH
} GnomeVFSFilePermissions;
enum GnomeVFSSeekPosition
typedef enum {
GNOME_VFS_SEEK_START,
GNOME_VFS_SEEK_CURRENT,
GNOME_VFS_SEEK_END
} GnomeVFSSeekPosition;
GnomeVFSToplevelURI
typedef struct {
/* Base object. */
GnomeVFSURI uri;
/* Server location information. */
gchar *host_name;
guint host_port;
/* Authorization information. */
gchar *user_name;
gchar *password;
/* The parent URN, if it exists */
gchar *urn;
} GnomeVFSToplevelURI;
enum GnomeVFSURIHideOptions
typedef enum {
GNOME_VFS_URI_HIDE_NONE = 0,
GNOME_VFS_URI_HIDE_USER_NAME = 1 << 0,
GNOME_VFS_URI_HIDE_PASSWORD = 1 << 1,
GNOME_VFS_URI_HIDE_HOST_NAME = 1 << 2,
GNOME_VFS_URI_HIDE_HOST_PORT = 1 << 3,
GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD = 1 << 4,
GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER = 1 << 8
} GnomeVFSURIHideOptions;
enum GnomeVFSFileFlags
typedef enum {
GNOME_VFS_FILE_FLAGS_NONE = 0,
/* Whether the file is a symlink. */
GNOME_VFS_FILE_FLAGS_SYMLINK = 1 << 0,
/* Whether the file is on a local file system. */
GNOME_VFS_FILE_FLAGS_LOCAL = 1 << 1,
} GnomeVFSFileFlags;
enum GnomeVFSFileInfoFields
typedef enum {
GNOME_VFS_FILE_INFO_FIELDS_NONE = 0,
GNOME_VFS_FILE_INFO_FIELDS_TYPE = 1 << 0,
GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS = 1 << 1,
GNOME_VFS_FILE_INFO_FIELDS_FLAGS = 1 << 2,
GNOME_VFS_FILE_INFO_FIELDS_DEVICE = 1 << 3,
GNOME_VFS_FILE_INFO_FIELDS_INODE = 1 << 4,
GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT = 1 << 5,
GNOME_VFS_FILE_INFO_FIELDS_SIZE = 1 << 6,
GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT = 1 << 7,
GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE = 1 << 8,
GNOME_VFS_FILE_INFO_FIELDS_ATIME = 1 << 9,
GNOME_VFS_FILE_INFO_FIELDS_MTIME = 1 << 10,
GNOME_VFS_FILE_INFO_FIELDS_CTIME = 1 << 11,
GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME = 1 << 12,
GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE = 1 << 13
} GnomeVFSFileInfoFields;
GnomeVFSFileInfo
typedef struct {
/* Base name of the file (no path). */
gchar *name;
/* Fields which are actually valid in this strcture. */
GnomeVFSFileInfoFields valid_fields;
/* File type (i.e. regular, directory, block device...). */
GnomeVFSFileType type;
/* File permissions. */
GnomeVFSFilePermissions permissions;
/* Flags for this file. */
GnomeVFSFileFlags flags;
/* This is only valid if `is_local' is TRUE (see below). */
dev_t device;
guint inode;
/* Link count. */
guint link_count;
/* UID, GID. */
guint uid;
guint gid;
/* Size in bytes. */
GnomeVFSFileSize size;
/* Size measured in units of 512-byte blocks. */
GnomeVFSFileSize block_count;
/* Optimal buffer size for reading/writing the file. */
guint io_block_size;
/* Access, modification and change times. */
time_t atime;
time_t mtime;
time_t ctime;
/* If the file is a symlink (see `flags'), this specifies the file the
link points to. */
gchar *symlink_name;
/* MIME type. */
gchar *mime_type;
guint refcount;
} GnomeVFSFileInfo;
enum GnomeVFSFileInfoOptions
typedef enum {
GNOME_VFS_FILE_INFO_DEFAULT = 0, /* FIXME bugzilla.eazel.com 1203: name sucks */
GNOME_VFS_FILE_INFO_GET_MIME_TYPE = 1 << 0,
GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE = 1 << 1,
GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE = 1 << 2,
GNOME_VFS_FILE_INFO_FOLLOW_LINKS = 1 << 3
} GnomeVFSFileInfoOptions;
enum GnomeVFSSetFileInfoMask
typedef enum {
GNOME_VFS_SET_FILE_INFO_NONE = 0,
GNOME_VFS_SET_FILE_INFO_NAME = 1 << 0,
GNOME_VFS_SET_FILE_INFO_PERMISSIONS = 1 << 1,
GNOME_VFS_SET_FILE_INFO_OWNER = 1 << 2,
GNOME_VFS_SET_FILE_INFO_TIME = 1 << 3
} GnomeVFSSetFileInfoMask;
enum GnomeVFSFindDirectoryKind
typedef enum {
GNOME_VFS_DIRECTORY_KIND_DESKTOP = 1000,
GNOME_VFS_DIRECTORY_KIND_TRASH = 1001
} GnomeVFSFindDirectoryKind;
enum GnomeVFSDirectoryFilterType
typedef enum {
GNOME_VFS_DIRECTORY_FILTER_NONE,
GNOME_VFS_DIRECTORY_FILTER_SHELLPATTERN,
GNOME_VFS_DIRECTORY_FILTER_REGEXP
} GnomeVFSDirectoryFilterType;
enum GnomeVFSDirectoryFilterOptions
typedef enum {
GNOME_VFS_DIRECTORY_FILTER_DEFAULT = 0,
GNOME_VFS_DIRECTORY_FILTER_NODIRS = 1 << 0,
GNOME_VFS_DIRECTORY_FILTER_DIRSONLY = 1 << 1,
GNOME_VFS_DIRECTORY_FILTER_NODOTFILES = 1 << 2,
GNOME_VFS_DIRECTORY_FILTER_IGNORECASE = 1 << 3,
GNOME_VFS_DIRECTORY_FILTER_EXTENDEDREGEXP = 1 << 4,
GNOME_VFS_DIRECTORY_FILTER_NOSELFDIR = 1 << 5,
GNOME_VFS_DIRECTORY_FILTER_NOPARENTDIR = 1 << 6,
GNOME_VFS_DIRECTORY_FILTER_NOBACKUPFILES = 1 << 7
} GnomeVFSDirectoryFilterOptions;
enum GnomeVFSDirectoryFilterNeeds
typedef enum {
GNOME_VFS_DIRECTORY_FILTER_NEEDS_NOTHING = 0,
GNOME_VFS_DIRECTORY_FILTER_NEEDS_NAME = 1 << 0,
GNOME_VFS_DIRECTORY_FILTER_NEEDS_TYPE = 1 << 1,
GNOME_VFS_DIRECTORY_FILTER_NEEDS_STAT = 1 << 2,
GNOME_VFS_DIRECTORY_FILTER_NEEDS_MIMETYPE = 1 << 3,
} GnomeVFSDirectoryFilterNeeds;
enum GnomeVFSDirectoryVisitOptions
typedef enum {
GNOME_VFS_DIRECTORY_VISIT_DEFAULT = 0,
GNOME_VFS_DIRECTORY_VISIT_SAMEFS = 1 << 0,
GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK = 1 << 1
} GnomeVFSDirectoryVisitOptions;
GnomeVFSDirectoryFilterFunc ()
gboolean (*GnomeVFSDirectoryFilterFunc) (const GnomeVFSFileInfo *info,
gpointer data);
GnomeVFSDirectoryVisitFunc ()
gboolean (*GnomeVFSDirectoryVisitFunc) (const gchar *rel_path,
GnomeVFSFileInfo *info,
gboolean recursing_will_loop,
gpointer data,
gboolean *recurse);
enum GnomeVFSXferOptions
typedef enum {
GNOME_VFS_XFER_DEFAULT = 0,
GNOME_VFS_XFER_UNUSED_1 = 1 << 0,
GNOME_VFS_XFER_FOLLOW_LINKS = 1 << 1,
GNOME_VFS_XFER_UNUSED_2 = 1 << 2,
GNOME_VFS_XFER_RECURSIVE = 1 << 3,
GNOME_VFS_XFER_SAMEFS = 1 << 4,
GNOME_VFS_XFER_DELETE_ITEMS = 1 << 5,
GNOME_VFS_XFER_EMPTY_DIRECTORIES = 1 << 6,
GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY = 1 << 7,
GNOME_VFS_XFER_REMOVESOURCE = 1 << 8,
GNOME_VFS_XFER_USE_UNIQUE_NAMES = 1 << 9,
GNOME_VFS_XFER_LINK_ITEMS = 1 << 10
} GnomeVFSXferOptions;
enum GnomeVFSXferProgressStatus
typedef enum {
GNOME_VFS_XFER_PROGRESS_STATUS_OK = 0,
GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR = 1,
GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE = 2,
/* during the duplicate status the progress callback is asked to
supply a new unique name */
GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE = 3
} GnomeVFSXferProgressStatus;
enum GnomeVFSXferOverwriteMode
typedef enum {
/* Interrupt transferring with an error (GNOME_VFS_ERROR_FILEEXISTS). */
GNOME_VFS_XFER_OVERWRITE_MODE_ABORT = 0,
/* Invoke the progress callback with a
`GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE' status code. */
GNOME_VFS_XFER_OVERWRITE_MODE_QUERY = 1,
/* Overwrite files silently. */
GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE = 2,
/* Ignore files silently. */
GNOME_VFS_XFER_OVERWRITE_MODE_SKIP = 3
} GnomeVFSXferOverwriteMode;
enum GnomeVFSXferOverwriteAction
typedef enum {
GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT = 0,
GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE = 1,
GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE_ALL = 2,
GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP = 3,
GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP_ALL = 4,
} GnomeVFSXferOverwriteAction;
enum GnomeVFSXferErrorMode
typedef enum {
/* Interrupt transferring with an error (code returned is code of the
operation that has caused the error). */
GNOME_VFS_XFER_ERROR_MODE_ABORT = 0,
/* Invoke the progress callback with a
`GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR' status code. */
GNOME_VFS_XFER_ERROR_MODE_QUERY = 1,
} GnomeVFSXferErrorMode;
enum GnomeVFSXferErrorAction
typedef enum {
/* Interrupt operation and return `GNOME_VFS_ERROR_INTERRUPTED'. */
GNOME_VFS_XFER_ERROR_ACTION_ABORT = 0,
/* Try the same operation again. */
GNOME_VFS_XFER_ERROR_ACTION_RETRY = 1,
/* Skip this file and continue normally. */
GNOME_VFS_XFER_ERROR_ACTION_SKIP = 2
} GnomeVFSXferErrorAction;
enum GnomeVFSXferPhase
typedef enum {
/* Initial phase */
GNOME_VFS_XFER_PHASE_INITIAL,
/* Checking if destination can handle move/copy */
GNOME_VFS_XFER_CHECKING_DESTINATION,
/* Collecting file list */
GNOME_VFS_XFER_PHASE_COLLECTING,
/* File list collected (*) */
GNOME_VFS_XFER_PHASE_READYTOGO,
/* Opening source file for reading */
GNOME_VFS_XFER_PHASE_OPENSOURCE,
/* Creating target file for copy */
GNOME_VFS_XFER_PHASE_OPENTARGET,
/* Copying data from source to target (*) */
GNOME_VFS_XFER_PHASE_COPYING,
/* Moving file from source to target (*) */
GNOME_VFS_XFER_PHASE_MOVING,
/* Reading data from source file */
GNOME_VFS_XFER_PHASE_READSOURCE,
/* Writing data to target file */
GNOME_VFS_XFER_PHASE_WRITETARGET,
/* Closing source file */
GNOME_VFS_XFER_PHASE_CLOSESOURCE,
/* Closing target file */
GNOME_VFS_XFER_PHASE_CLOSETARGET,
/* Deleting source file */
GNOME_VFS_XFER_PHASE_DELETESOURCE,
/* Setting attributes on target file */
GNOME_VFS_XFER_PHASE_SETATTRIBUTES,
/* Go to the next file (*) */
GNOME_VFS_XFER_PHASE_FILECOMPLETED,
/* cleaning up after a move (removing source files, etc.) */
GNOME_VFS_XFER_PHASE_CLEANUP,
/* Operation finished (*) */
GNOME_VFS_XFER_PHASE_COMPLETED,
GNOME_VFS_XFER_NUM_PHASES
} GnomeVFSXferPhase;
GnomeVFSXferProgressInfo
typedef struct {
/* Progress status (see above for a description). */
GnomeVFSXferProgressStatus status;
/* VFS status code. If `status' is
`GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR', you should look at this
member to know what has happened. */
GnomeVFSResult vfs_status;
/* Current phase in the transferring process. */
GnomeVFSXferPhase phase;
/* Source URI. FIXME bugzilla.eazel.com 1206: change name? */
gchar *source_name;
/* Destination URI. FIXME bugzilla.eazel.com 1206: change name? */
gchar *target_name;
/* Index of file being copied. */
gulong file_index;
/* Total number of files to be copied. */
gulong files_total;
/* Total number of bytes to be copied. */
GnomeVFSFileSize bytes_total;
/* Total size of this file (in bytes). */
GnomeVFSFileSize file_size;
/* Bytes copied for this file so far. */
GnomeVFSFileSize bytes_copied;
/* Total amount of data copied from the beginning. */
GnomeVFSFileSize total_bytes_copied;
/* Target unique name used when duplicating, etc. to avoid collisions */
gchar *duplicate_name;
/* Count used in the unique name e.g. (copy 2), etc. */
int duplicate_count;
gboolean top_level_item;
/* indicates that the copied/moved/deleted item is an actual item
* passed in the uri list rather than one encountered by recursively
* traversing directories. Used by metadata copying.
*/
} GnomeVFSXferProgressInfo;
GnomeVFSAsyncCallback ()
void (*GnomeVFSAsyncCallback) (GnomeVFSAsyncHandle *handle,
GnomeVFSResult result,
gpointer callback_data);
GnomeVFSAsyncOpenCallback
typedef GnomeVFSAsyncCallback GnomeVFSAsyncOpenCallback;
GnomeVFSAsyncCreateCallback
typedef GnomeVFSAsyncCallback GnomeVFSAsyncCreateCallback;
GnomeVFSAsyncCreateAsChannelCallback
typedef GnomeVFSAsyncOpenAsChannelCallback GnomeVFSAsyncCreateAsChannelCallback;
GnomeVFSAsyncCloseCallback
#define GnomeVFSAsyncCloseCallback GnomeVFSAsyncCallback
GnomeVFSGetFileInfoResult
typedef struct {
GnomeVFSURI *uri;
GnomeVFSResult result;
GnomeVFSFileInfo *file_info;
} GnomeVFSGetFileInfoResult;
GnomeVFSFindDirectoryResult
typedef struct {
GnomeVFSURI *uri;
GnomeVFSResult result;
} GnomeVFSFindDirectoryResult;
GnomeVFSStatusCallback ()
void (*GnomeVFSStatusCallback) (const gchar *message,
gpointer callback_data);
GnomeVFSTransformInitFunc ()
GnomeVFSTransform* (*GnomeVFSTransformInitFunc)
(const char *method_name,
const char *config_args);
GnomeVFSTransformFunc ()
GnomeVFSResult (*GnomeVFSTransformFunc) (GnomeVFSTransform *transform,
const char *old_uri,
char **new_uri,
GnomeVFSContext *context);
GnomeVFSMethodHandle
typedef gpointer GnomeVFSMethodHandle;