Proposal and RFC: DAL, the Desktop Abstraction Layer
Jamie McCracken
jamiemcc@blueyonder.co.uk
Sat Jan 15 05:33:41 PST 2005
Ikke wrote:
>>But the service names are unique so what happens if you have gedit and
>>kwrite - they cant both be called org.freedesktop.TextEditor. So would
>>gedit be /org/gnome/gedit then? If so how will I know it has a certain
>>interface without *knowing* about the app?
>
>
> My opinion:
> If applications announce themselves on the DBUS session bus, they should
> use one strict interface. In the case of kwrite and gedit, this could be
> org.freedesktop.TextEditor. If an application want to use the services
> of a TextEditor, it can find out which one to use like this:
> 1. Check whether multiple apps offering the same interface are started.
> If none is started, start the default one. If only one is started, use
> that one.
> 2. If multiple apps are started, use a desktop-specific method (or maybe
> non-desktop-specific, if such a standard exists?) to find out what the
> "default" handler is. If the default handler is started, use that one.
> If not,
> 3. Create a dialog box where the user can choose what app to use.
There are only 2 use cases that I know of using Dbus:
1) You want to communicate with a specific app
2) You want to communicate with an interface and you dont care what the
app is
With your suggestion option 1 would not be possible.
The way to solve this is to make service name = app name and then make
org.freedesktop.TextEditor an interface.
jamie.
More information about the dbus
mailing list