GnomeVFS - Filesystem Abstraction library

Seth Nickell

    snickell@Stanford.edu
  

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".

Table of Contents
Introduction to GnomeVFS
Uses and Purpose
User's Perspective
Developer's Perspective
A Gentle Programming Primer
Conversion of a Sample Code Block
Basic File Operations
Asynchronous File I/O — allows for non-blocking file operations
Basic File I/O — synchronous file operations similar to posix calls, but using uris
Directory Operations — loading and parsing directory contents
File Transfer — the transfer engine provides copy & move operations (with progress callbacks)
Common Data Types
Basic Data Types — a collection of structs for purposes ranging from error messages to file information
File Info
Result Codes — utilities for interpreting GnomeVFS Result codes
standard-callbacks
URI Manipulation — URIs form the backbone of GnomeVFS' filesystem operations
MIME types & the Application Registry
Algorithmic Sniff Buffer — algorithmic detection of mime type for select file types
Application Registry — a database of the available applications and their capabilities
Magic MIME Detection — functions for parsing the magic mime database
MIME Type Detection — detecting the mime type of a URI
MIME Handlers — functions for getting and manipulating the actions to be performed on mime types
mime-info
mime-monitor
Filesystem Modules
Writing modules for the GNOME Virtual File System
Introduction
GNOME VFS URIs (Uniform Resource Indicators)
The GnomeVFSURI type
GNOME Virtual File System access method implementation
How file access is performed
Implementing an access method in practice
Using shared libraries
The initialization/shutdown functions
The GnomeVFSMethod object
Handling cancellation
The GnomeVFSCancellation object
Dealing with EINTR
Basic guidelines for writing a module
How to make the code thread safe
module-api
method
module-shared
module
Other APIs
app-context
Backend
Cancellation
Configuration
Context
Directory Filter
File Size
Find Directory — used to locate special directories such as the trash and desktop
inet-connection
init
iobuf
list-sort
parse-ls
process
regexp-filter
seekable
shellpattern-filter
ssl
Utilities — utility functions for parsing/escaping URIs, and other assorted goodies