[Fwd: Re: novehrady discussions]

Havoc Pennington hp@redhat.com
08 Sep 2003 23:39:34 -0400

Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Doh, I meant to send this to the list.

Content-Disposition: inline
Content-Description: Forwarded message - Re: novehrady discussions
Content-Type: message/rfc822

Subject: Re: novehrady discussions
From: Havoc Pennington <hp@redhat.com>
To: Joe Shaw <joe@assbarn.com>
In-Reply-To: <1062952350.6979.70.camel@cairn.cancerclam>
References: <20030828190654.A25943@devserv.devel.redhat.com>
Content-Type: text/plain
Organization: Red Hat, Inc.
Message-Id: <1062967634.21496.4.camel@dhcppc3>
Mime-Version: 1.0
X-Mailer: Ximian Evolution 1.4.3 (1.4.3-3) 
Date: 07 Sep 2003 16:47:15 -0400
Content-Transfer-Encoding: 7bit

On Sun, 2003-09-07 at 12:32, Joe Shaw wrote:
> Will there be some sort of object directory, or some other way to look
> up objects by interface?  I can see wanting to call a method on a bunch
> of objects with the same interface.  Getting the list of buddies from
> all of my instant messaging programs is one that pops into mind.  (Of
> course, the trick would be getting everyone to use the same interface,
> but ignore that for now... :)

Keep in mind that there's no catalog of objects on the bus, objects are
only tracked within each app. The bus only tracks services provided by
whole apps. So to get all your instant messaging programs all those
programs would have to register under the same service name, then there
would probably be a conventional BuddyList object they all had.

Concretely, you might have some sort of org.freedesktop.apps.IM
service, then the convention could be that if you advertise the 
IM service you have an object /org/freedesktop/IMClient/BuddyList
or something like that with particular interfaces.

> A better idea might be setting up an alternative tree that just follows
> along interfaces and then allows you to get to object instances that
> way.  Ie, you have both /objects/gaim/getBuddyList() and
> /interfaces/instant-messaging/gaim/getBuddyList() and they're
> equivalent.  This is kind of similar to what the kernel people are doing
> with sysfs: you have the actual device tree and then you have a device
> class tree.

Right, simple enough. It does have a cost (approximately doubles 
memory usage, for two trees rather than one).