Check out the new USENIX Web site. next up previous
Next: Implementation of asynchronous operations Up: Unix file system extensions Previous: File transfer support


Implementation of access plug-ins

As explained in 4, access methods are implemented as dynamically loaded plug-ins. Even the file plug-in that accesses local files is implemented as a plug-in.

Dynamic loading of plug-ins happens during GnomeVFSURI parsing (see section 5.1): the URI is split into its #-separated subparts, the library looks up the access method names (such as file, http and so on), and tries to locate the corresponding plug-in library, by using both a system-wide and a user-wide configuration file called gnome-vfs.conf. If the library is located, it gets linked in dynamically; otherwise, a return code is returned, reporting that the URI is invalid.

Every access method module must provide an initialization function; the initialization function returns a simple vtable containing pointers to the implementations of the GNOME VFS operations for that access method. Pointers to these vtables are stored directly into the GnomeVFSURI object, ready for the first operation to be invoked on it.

At the time of writing, the following modules have been implemented:

Other modules, including a tar one, are being developed.

While this is not supported at the time of writing yet, there are also plans to support CORBA-based access method plug-ins, possibly using the Bonobo component model. [CORBA]

This will have important consequences:


next up previous
Next: Implementation of asynchronous operations Up: Unix file system extensions Previous: File transfer support
Ettore Perazzoli 2000-04-26