Semantics of o.fd.DBus.Properties

Matthew Johnson dbus at matthew.ath.cx
Fri Feb 8 06:07:14 PST 2008


On Fri Feb 08 13:39, Simon McVittie wrote:
> > The same name in multiple interfaces (whether for properties or
> > methods) I think can be expected to cause problems for at least some
> > bindings almost always; while we did not ban it on the dbus protocol
> > level, I would not say it's advisable to create the situation when it
> > can be helped.
> 
> Right. This is a general complaint I have with the D-Bus spec - it tells
> you everything D-Bus can do (gives binding authors something to aim
> for), but it doesn't tell D-Bus API designers what they can get away
> with and what they should avoid.

I agree. I think that the official D-Bus spec should actually be what is
conceptually allowed and supported by the majority of the bindings /
implementations. Otherwise we're allowing people to reply to methods
with a different signature to the one specified in the introspection,
for example. Or not sending a reply/error at all. (clearly these are Bad
and Wrong, but they are allowed by the low level spec...)

Failing that we do at least need _a_ spec that binding writers can use
to implement and API authors to limit themselves to. My cross-binding
test suite is probably a good start for that.

> > > * Can specification writers assume ... that that code will be able to cause
> > >   failure of Set() with a specified exception?
> > I think so (cf. though the comments above about errors)
> 
> So, the reason I'm asking this is: in the Telepathy spec (brief
> background: abstracting instant messaging by a D-Bus API), I'd like to be
> able to say something like:
> 
> property MyUserID (s, readwrite)
> Must be a valid user ID for the protocol being implemented (e.g. a valid JID
> for XMPP). Attempting to set this to an invalid value raises
> org.freedesktop.Telepathy.Error.InvalidArgument.

I think you should certainly be able to do this. On the subject, while I
know methods can always throw things which _aren't_ declared, can we
please have a way to specify common exceptions thrown by methods too?
(I'm thinking annotations, maybe)

Matt

-- 
www.matthew.ath.cx
D-Bus Java
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.freedesktop.org/archives/dbus/attachments/20080208/31b3a5c3/attachment.pgp 


More information about the dbus mailing list