When is an interface not an interface?
- From: Will Stephenson <wstephenson kde org>
- To: networkmanager-list gnome org
- Subject: When is an interface not an interface?
- Date: Tue, 27 Oct 2009 12:07:37 +0100
...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.
The Vpn property is also omitted.
As a result my interface object to a Connection.Active never receives
PropertiesChanged, because VPN.Connection emits this signal and
Connection.Active does not.
This is sloppy OO. VPN connection objects should fulfil the interface that
they appear to advertise, allowing client authors to treat them as
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.
I don't see any reason for the extra interface, can it be removed and can VPN
connections emit Connection.Active.PropertiesChanged?
Will
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]