continued: Common-VFS proposal

Waldo Bastian bastian at
Thu Jan 20 18:38:12 EET 2005

On Thursday 20 January 2005 03:24, Sean Middleditch wrote:
> A client library is provided that offers basic VFS operations: open,
> read, write, rename, move, setattr, getattr, setaccess, getaccess, etc.
> The idea is to *not* model POSIX but instead model what real
> applications do.  There's no "move" function in POSIX (rename is very
> different than a real move operation), but apps want to be able to move
> files.  Therefor, move should be provided an actual function.

You may want to look at the API for KIO-slaves, attached for your convenience, 
the virtual functions are the ones you are interested in.

As for multithreaded versus out of process. The nice thing about 
out-of-process is that you can kill the process and everything gets cleaned 
up for you. You will also have less interference between the main application 
and whatever your VFS-handler is doing. If your VFS-handler is self-contained 
it's usually not a problem, but if your VFS-handler needs to pull in 
something like the samba libraries you suddenly start to add a lot of code 
and extra symbols into the address space of random applications.

A drawback of out of process is that you lose some performance due to the IPC 
overhead, with gigabit network speeds that becomes noticable. In practice 
it's only an issue when you download files, so you should be cool if you let 
the process handle saving to disk itself.

An interesting issue with Konqueror is that we want to initiate a file 
transfer with Konqueror, but once we know the filetype we may decide to let 
another application open the file. In such case we want to let the 
application take over the file transfer that was initiated by Konqueror. Our 
out-of-process approach makes that somewhat easy since we can just let the 
download process disconnect from Konqueror and reconnect to the application.

bastian at   |   Free Novell Linux Desktop 9 Evaluation Download
bastian at  |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: slavebase.h
Type: text/x-c++hdr
Size: 27089 bytes
Desc: not available
Url : 

More information about the xdg mailing list