2007/2/8, Kevin Krammer <<a href="mailto:kevin.krammer@gmx.at">kevin.krammer@gmx.at</a>>:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Thursday 08 February 2007 22:35, Mikkel Kamstrup Erlandsen wrote:<br><br>> Yes, that was the plan, it is a small thing to define them though. Ideally<br>> I think we should only define the interface name and dbus had a magic
<br>> method GetObjectForInterface("org.freedesktop.blah"), but as far as I know<br>> this is not possible...<br><br>An interface can be implemented multiple times.<br>What would you expect such a call to return if you pass the interface
<br>org.freedesktop.DBus.Introspectable? (likely implemented by almost all object<br>on all connections)</blockquote><div><br>Well, mostly it was just wishful thinking. If there where such a method you would only use it if you in fact did care what object you got. The contract of the method is just that you get an object implementing that interface. If you need an object implementing Introspectable then it's you lucky day, there's plenty :-) Normally you'd only request interfaces that has more meaning implied than Introspectable, such as fx. the wasabi one which has an in-depth specification.
<br></div><br>As it is a bit besides the point how to obtain dbus objects (it's not
gonna change anyway), I guess there is no other way than the "standard"
- define interface and path (and perhaps connection) - which is fine by
me anyway.<br><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">However, consider there would be a specified Wasabi D-Bus name, e.g.<br>org.freedesktop.wasabi
then the bus could start a service known to register<br>this name (see D-Bus activation)<br><br>This is why I thought that the specification really should specify such a<br>name.<br><br>> This leads me to a question I've been thinking about... Why is it not
<br>> custom to version your dbus interfaces? XML namespaces (typically) does<br>> that for example. I was wondering whether to use<br>> org.freedesktop.wasabi.search.1 for instance, not that I expect the api to
<br>> change. But if we ever add api we could define a .2 or something like<br>> that...<br><br>D-Bus interfaces is a bit like dlopen. If the method isn't present, you'll get<br>an respective error (assuming the service implemenation handles this
<br>correctly)<br><br>And as you said, it is quite likely that if the interface would have to be<br>extended, it might even make sense to specifiy a whole new interface and keep<br>the old one for backwards compatability.
</blockquote><div><br>Once we settle on an interface it's not gonna change. Any api additions/changes will go under another name. I thought about a naming scheme like the following, but I sense that it's pretty non-standard:
<br><br>org.freedeskstop.wasabi.search-1.0<br>org.freedeskstop.wasabi.search-1.1<br>org.freedeskstop.wasabi.search-2.0<br>...<br><br>I don't expect that we have to update the interfaces any time soon though.<br><br>Cheers,
<br>Mikkel<br></div><br><div><br><br><br><br><br>Cheers,<br>Mikkel<br></div></div>