diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2008-05-27 12:09:24 +0000 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2008-05-27 12:09:24 +0000 |
commit | 220a5e8efc45671685e496e0be14c0269c33a5bb (patch) | |
tree | a8a825ee75d3bb78e4976fb5fcaa5f6f00c6fb57 /telepathy-glib/dbus-properties-mixin.h | |
parent | 232801ffa9dc1281c53170e3d50a33ae85a376f9 (diff) | |
download | telepathy-glib-220a5e8efc45671685e496e0be14c0269c33a5bb.tar.gz |
TpDBusPropertiesMixin: implement a cleaner way for mixins to hook in property implementations
20080527120924-53eee-1a225ec9dda9ac023be478de6c5dfd0d22dfa517.gz
Diffstat (limited to 'telepathy-glib/dbus-properties-mixin.h')
-rw-r--r-- | telepathy-glib/dbus-properties-mixin.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/telepathy-glib/dbus-properties-mixin.h b/telepathy-glib/dbus-properties-mixin.h index af6d098be..d480fef17 100644 --- a/telepathy-glib/dbus-properties-mixin.h +++ b/telepathy-glib/dbus-properties-mixin.h @@ -79,6 +79,12 @@ typedef struct { gpointer mixin_priv; } TpDBusPropertiesMixinPropImpl; +/* this union is to keep ABI if sizeof (GCallback) > sizeof (void *) */ +typedef union { + GCallback _padding; + gpointer priv; +} _TpDBusPropertiesMixinPaddedPointer; + typedef struct { const gchar *name; TpDBusPropertiesMixinGetter getter; @@ -87,7 +93,7 @@ typedef struct { /*<private>*/ GCallback _1; GCallback _2; - GCallback _3; + _TpDBusPropertiesMixinPaddedPointer mixin_next; gpointer mixin_priv; } TpDBusPropertiesMixinIfaceImpl; @@ -108,6 +114,10 @@ typedef struct _TpDBusPropertiesMixinClass TpDBusPropertiesMixinClass; void tp_dbus_properties_mixin_class_init (GObjectClass *cls, gsize offset); +void tp_dbus_properties_mixin_implement_interface (GObjectClass *cls, + GQuark iface, TpDBusPropertiesMixinGetter getter, + TpDBusPropertiesMixinSetter setter, TpDBusPropertiesMixinPropImpl *props); + void tp_dbus_properties_mixin_iface_init (gpointer g_iface, gpointer iface_data); |