[Bug 51441] New: [next] replace TpBase*Class::interfaces by TpBase*Class::get_interfaces
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Tue Jun 26 06:12:58 CEST 2012
https://bugs.freedesktop.org/show_bug.cgi?id=51441
Bug #: 51441
Summary: [next] replace TpBase*Class::interfaces by
TpBase*Class::get_interfaces
Classification: Unclassified
Product: Telepathy
Version: unspecified
Platform: Other
OS/Version: All
Status: NEW
Severity: normal
Priority: medium
Component: tp-glib
AssignedTo: telepathy-bugs at lists.freedesktop.org
ReportedBy: xclaesse at gmail.com
QAContact: telepathy-bugs at lists.freedesktop.org
Currently TpBase*Class have inconsistent way of letting implementation tell
which dbus interfaces are implemented. Historically they had a const gchar *
const *interfaces; field, but it has the problem that subsubclass can't define
additional interfaces.
For example we have
TpBaseChannel->TpBaseCallChannel->TpBaseMediaCallChannel->GabbleCallChannel and
at each level we may have additional interfaces. To Fix that issue we
deprecated the "interfaces" field from TpBaseChannel and added GPtrArray
*get_interfaces (TpBaseChannel *self); so subclasses can override that method,
first chainup to get the GPtrArray of interfaces implemented by parents then
simply g_ptr_array_add() extra ifaces and return that.
TpBaseChannel, TpBaseCallContent and TpBaseCallStream use that system, but not
TpBaseConnection, TpBaseConnectionManager, TpBaseRoomConfig and TpBaseProtocol.
This is current inconsistent, so I suggest using the get_interfaces everywhere.
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the telepathy-bugs
mailing list