Re: GUnique [Was: gnome-utils branched for GNOME 2.16]



Hi;

On Fri, 2006-09-22 at 13:49 +0200, Alexander Larsson wrote:
 
> > *shrug*  I remember that we (Matthias, Vytas, and I) discussed D-Bus,
> > Bonobo, and Bacon (since there were several Gnome applications using
> > each of those for their single-instance mechanism) and X (which
> > Matthias brought up and also since Mozilla/Firefox uses it for its
> > single-instance mechanism).  However, I no longer recall any details
> > about this particular choice since I was more interested in the WM
> > interaction details (surprise, surprise).  It may have been that Vytas
> > was familiar with D-Bus and Bacon and we figured it was more important
> > to get other details worked out first, but I just don't remember.
> > 
> > However, Vytas did design GUnique to make the backend easy to
> > transparently replace.
> 
> One advantage of using X would be that it works for remote X clients
> too.

Right now, GUniqueApp depends on a compile-time check for D-Bus and a
run-time check between D-Bus (if support was compiled in) and Bacon (as
a fallback).

In order to add it to GTK+ a Xlib default IPC should be used[1], and I'd
suggest to use modules loadable at run-time for the other transports,
like D-Bus.

We'd also have to use something on win32 and OSX, even though I think
that other platforms already have facilities for this kind of stuff.

+++

[1] We could define a spec with some default properties, like:

  _G_UNIQUE_VERSION		integer, in form 0x%02d<maj>%02d<min>%02d<micro>
  _G_UNIQUE_NAME		UTF-8 string
  _G_UNIQUE_STARTUP_ID		string
  _G_UNIQUE_COMMAND		integer
  _G_UNIQUE_DATA		string

which maps the protocol used by the current GUniqueApp implementation as
far as I can see.  The _VERSION property could be used for versioning,
in case we'd add some new commands.

Ciao,
 Emmanuele.

-- 
Emmanuele Bassi,  E: ebassi gmail com
W: http://www.emmanuelebassi.net
B: http://log.emmanuelebassi.net




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]