summaryrefslogtreecommitdiff
path: root/libnm/nm-device-bt.c
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2014-05-15 14:24:56 -0400
committerDan Winship <danw@gnome.org>2014-08-01 14:34:40 -0400
commit8ca2998d81ca7534c59262b10f5bf3c480177b88 (patch)
tree964e32c42f1e8358fffe09b163bc2cb87963df4e /libnm/nm-device-bt.c
parenta0e9a4bd45f25548f1fe580ddaf96ca6ff567721 (diff)
downloadNetworkManager-8ca2998d81ca7534c59262b10f5bf3c480177b88.tar.gz
libnm: add init_dbus() virtual method to NMObject
Rather than having each object type override constructed() to call _nm_object_register_properties(), have NMObject call a virtual method on the subclass to ask it to register them. Move some code around in nm-client.c and nm-object.c so that all D-Bus-related initialization happens in init_dbus(), and non-D-Bus-related stuff stays in construct(). (This simplifies the next commit.)
Diffstat (limited to 'libnm/nm-device-bt.c')
-rw-r--r--libnm/nm-device-bt.c25
1 files changed, 10 insertions, 15 deletions
diff --git a/libnm/nm-device-bt.c b/libnm/nm-device-bt.c
index 74117fb98b..ab82129741 100644
--- a/libnm/nm-device-bt.c
+++ b/libnm/nm-device-bt.c
@@ -221,9 +221,9 @@ nm_device_bt_init (NMDeviceBt *device)
}
static void
-register_properties (NMDeviceBt *device)
+init_dbus (NMObject *object)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object);
const NMPropertiesInfo property_info[] = {
{ NM_DEVICE_BT_HW_ADDRESS, &priv->hw_address },
{ NM_DEVICE_BT_NAME, &priv->name },
@@ -231,23 +231,15 @@ register_properties (NMDeviceBt *device)
{ NULL },
};
- _nm_object_register_properties (NM_OBJECT (device),
+ NM_OBJECT_CLASS (nm_device_bt_parent_class)->init_dbus (object);
+
+ priv->proxy = _nm_object_new_proxy (object, NULL, NM_DBUS_INTERFACE_DEVICE_BLUETOOTH);
+ _nm_object_register_properties (object,
priv->proxy,
property_info);
}
static void
-constructed (GObject *object)
-{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object);
-
- G_OBJECT_CLASS (nm_device_bt_parent_class)->constructed (object);
-
- priv->proxy = _nm_object_new_proxy (NM_OBJECT (object), NULL, NM_DBUS_INTERFACE_DEVICE_BLUETOOTH);
- register_properties (NM_DEVICE_BT (object));
-}
-
-static void
dispose (GObject *object)
{
NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object);
@@ -298,15 +290,18 @@ static void
nm_device_bt_class_init (NMDeviceBtClass *bt_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (bt_class);
+ NMObjectClass *nm_object_class = NM_OBJECT_CLASS (bt_class);
NMDeviceClass *device_class = NM_DEVICE_CLASS (bt_class);
g_type_class_add_private (bt_class, sizeof (NMDeviceBtPrivate));
/* virtual methods */
- object_class->constructed = constructed;
object_class->dispose = dispose;
object_class->finalize = finalize;
object_class->get_property = get_property;
+
+ nm_object_class->init_dbus = init_dbus;
+
device_class->connection_compatible = connection_compatible;
device_class->get_setting_type = get_setting_type;
device_class->get_hw_address = get_hw_address;