Re: When is an interface not an interface?
- From: Dan Williams <dcbw redhat com>
- To: Will Stephenson <wstephenson kde org>
- Cc: networkmanager-list gnome org
- Subject: Re: When is an interface not an interface?
- Date: Wed, 28 Oct 2009 10:44:15 -0700
On Tue, 2009-10-27 at 12:07 +0100, Will Stephenson wrote:
> ...when it can be modified at will by its implementors. Warning, rant ahead.
>
> The DBUS interface org.freedesktop.NetworkManager.Connection.Active is
> declared once in nm-active-connection.xml, including the signal
> PropertiesChanged.
> In nm-vpn-connection.xml this same interface is redeclared without the signal,
> because the same file also declares
> org.freedesktop.NetworkManager.VPN.Connection with a signal of the same name.
https://bugzilla.gnome.org/show_bug.cgi?id=569294
The duplication is due to a limitation of dbus-glib.
> The Vpn property is also omitted.
An oversight, as the object actually does implement the property in
question.
> As a result my interface object to a Connection.Active never receives
> PropertiesChanged, because VPN.Connection emits this signal and
> Connection.Active does not.
We can and should attempt to fix this in NetworkManager as it's not
possible yet for this to be fixed in dbus-glib.
> This is sloppy OO. VPN connection objects should fulfil the interface that
> they appear to advertise, allowing client authors to treat them as
The intention has always been to have the VPN objects implement the full
ActiveConnection D-Bus interface.
> activeconnections. Not to mention that including the both bindings headers
> from nm-active-connection.xml and nm-vpn-connection.xml gets me a compiler
> error due to multiple definitions of the same class, so I have to maintain my
> own copy of those files with the competing interface removed, increasing the
> chance that I get out of sync with the NM I am building for.
While NM specifically doesn't install the introspection XML for a reason
(the generated HTML document, not the introspection XML, is the official
API documentation the developers should be using), I understand the
issue it should be fixed.
I've synchronized the introspection XML here:
671f00c86f047dfe57f43726a0eefadaad6f2734 (master)
86eb8b831184a84e76caf7eacbc6aed856091196 (0.7.x)
though that doesn't fix PropertiesChanged signal emission for the other
dbus interface, which will take a bit more work.
Dan
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]