dvfs api and toolkits
elanthis at awesomeplay.com
Mon Apr 4 20:51:17 EEST 2005
On Mon, 2005-04-04 at 17:09 +0200, nf2 wrote:
> "C" is interesting for CLI apps and more sophisticated GUI apps or
> libraries, which use background threads for data processing (rendering,...).
> For several reasons - which have already been discussed - i would expect
> that D-VFS daemon will use "C" (with threads) internally for the
> backends, and should provide "A","B" and "C" through a socket to the
> clients ("A" and "C" at least).
D-VFS will provide A. You can wrap both B and C around A, so there's no
good reason to bloat the D-VFS protocol or daemon with special support
for either B or C.
Also, don't even start trying to assume that you will get anything close
to "traditional open/read/write/close" support from D-VFS. There are
behavioral semantics with the POSIX APIs that we simply cannot provide
without kernel support. I'd rather just not offer POSIX-like APIs
rather than have some APIs that look like POSIX but behave slightly
differently - especially when you consider how many developers can't
even grasp the horrendous POSIX behavior to begin with.
I'd rather see everything use something like (B), where a
console-oriented API can provide its own super simplistic wrappers that
just invoke some callbacks instead of a real mainloop, which would be
useful for signal processing or what have you.
> If you want to write a really portable D-VFS, which can be integrated
> into any toolkit, it might be better to standardize a communication
> protocol for the client->D-VFS daemon connection rather than an API... I
> have started to code a very simple "TinyVariant" library, which could be
> used for such a socket communication (in case D-BUS doesn't fit). I'll
> show you soon...
A well designed C library is very easy to wrap in any language. If we
do use D-BUS, then the services and methods and all that good stuff will
be documented and stable. I'm still not sure that D-BUS is a good fit,
at least not the actual bus (point-to-point mode might work). If D-BUS
isn't used, then I see no point on making the protocol a supported entry
point (essentially because you'd have to reimplement the entire raw
protocol in every wrapper, which is gross), although it will still
remain stable so that library/daemon upgrades don't break half the
system until you reboot (hint hint, gnome-vfs developers ~_^ ).
Sean Middleditch <elanthis at awesomeplay.com>
More information about the xdg