diff options
author | Dan Winship <danw@gnome.org> | 2012-01-19 18:23:28 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2012-02-03 10:33:43 -0600 |
commit | 5afcee46936ab547a95fdaa7e415aa3ba6de47d2 (patch) | |
tree | eeebe2e20e01b5bd99d8d1a32c06e8f3fc590d74 /libnm-glib/nm-device-wifi.c | |
parent | 2e48cc092c133ed3e10efcc00cf36b29c9d3efc8 (diff) | |
download | NetworkManager-5afcee46936ab547a95fdaa7e415aa3ba6de47d2.tar.gz |
libnm-glib: simplify property getter methods
Rather than having every property getter method have code to fetch
that specific property's value, just call the new
_nm_object_ensure_inited() (which makes sure that we've read all the
property values on the object at least once), and then return the
cached value. (After we've read the initial property values, the
PropertiesChanged signal handler will ensure that the values are kept
up to date, so we can always just return cached property values after
that point.)
This then lets us get rid of _nm_object_get_property() and its
wrappers.
Diffstat (limited to 'libnm-glib/nm-device-wifi.c')
-rw-r--r-- | libnm-glib/nm-device-wifi.c | 90 |
1 files changed, 12 insertions, 78 deletions
diff --git a/libnm-glib/nm-device-wifi.c b/libnm-glib/nm-device-wifi.c index 6ac9181d62..91106d3eeb 100644 --- a/libnm-glib/nm-device-wifi.c +++ b/libnm-glib/nm-device-wifi.c @@ -53,7 +53,6 @@ typedef struct { NM80211Mode mode; guint32 rate; NMAccessPoint *active_ap; - gboolean got_active_ap; NMDeviceWifiCapabilities wireless_caps; GPtrArray *aps; @@ -121,19 +120,10 @@ nm_device_wifi_new (DBusGConnection *connection, const char *path) const char * nm_device_wifi_get_hw_address (NMDeviceWifi *device) { - NMDeviceWifiPrivate *priv; - g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); - priv = NM_DEVICE_WIFI_GET_PRIVATE (device); - if (!priv->hw_address) { - priv->hw_address = _nm_object_get_string_property (NM_OBJECT (device), - NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_HW_ADDRESS, - NULL); - } - - return priv->hw_address; + _nm_object_ensure_inited (NM_OBJECT (device)); + return NM_DEVICE_WIFI_GET_PRIVATE (device)->hw_address; } /** @@ -148,19 +138,10 @@ nm_device_wifi_get_hw_address (NMDeviceWifi *device) const char * nm_device_wifi_get_permanent_hw_address (NMDeviceWifi *device) { - NMDeviceWifiPrivate *priv; - g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); - priv = NM_DEVICE_WIFI_GET_PRIVATE (device); - if (!priv->perm_hw_address) { - priv->perm_hw_address = _nm_object_get_string_property (NM_OBJECT (device), - NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_PERM_HW_ADDRESS, - NULL); - } - - return priv->perm_hw_address; + _nm_object_ensure_inited (NM_OBJECT (device)); + return NM_DEVICE_WIFI_GET_PRIVATE (device)->perm_hw_address; } /** @@ -174,19 +155,10 @@ nm_device_wifi_get_permanent_hw_address (NMDeviceWifi *device) NM80211Mode nm_device_wifi_get_mode (NMDeviceWifi *device) { - NMDeviceWifiPrivate *priv; - g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), 0); - priv = NM_DEVICE_WIFI_GET_PRIVATE (device); - if (!priv->mode) { - priv->mode = _nm_object_get_uint_property (NM_OBJECT (device), - NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_MODE, - NULL); - } - - return priv->mode; + _nm_object_ensure_inited (NM_OBJECT (device)); + return NM_DEVICE_WIFI_GET_PRIVATE (device)->mode; } /** @@ -200,7 +172,6 @@ nm_device_wifi_get_mode (NMDeviceWifi *device) guint32 nm_device_wifi_get_bitrate (NMDeviceWifi *device) { - NMDeviceWifiPrivate *priv; NMDeviceState state; g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), 0); @@ -217,15 +188,8 @@ nm_device_wifi_get_bitrate (NMDeviceWifi *device) return 0; } - priv = NM_DEVICE_WIFI_GET_PRIVATE (device); - if (!priv->rate) { - priv->rate = _nm_object_get_uint_property (NM_OBJECT (device), - NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_BITRATE, - NULL); - } - - return priv->rate; + _nm_object_ensure_inited (NM_OBJECT (device)); + return NM_DEVICE_WIFI_GET_PRIVATE (device)->rate; } /** @@ -239,19 +203,10 @@ nm_device_wifi_get_bitrate (NMDeviceWifi *device) NMDeviceWifiCapabilities nm_device_wifi_get_capabilities (NMDeviceWifi *device) { - NMDeviceWifiPrivate *priv; - g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), 0); - priv = NM_DEVICE_WIFI_GET_PRIVATE (device); - if (!priv->wireless_caps) { - priv->wireless_caps = _nm_object_get_uint_property (NM_OBJECT (device), - NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_WIRELESS_CAPABILITIES, - NULL); - } - - return priv->wireless_caps; + _nm_object_ensure_inited (NM_OBJECT (device)); + return NM_DEVICE_WIFI_GET_PRIVATE (device)->wireless_caps; } /** @@ -265,11 +220,7 @@ nm_device_wifi_get_capabilities (NMDeviceWifi *device) NMAccessPoint * nm_device_wifi_get_active_access_point (NMDeviceWifi *device) { - NMDeviceWifiPrivate *priv; NMDeviceState state; - char *path; - GValue value = { 0, }; - GError *error = NULL; g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); @@ -289,23 +240,8 @@ nm_device_wifi_get_active_access_point (NMDeviceWifi *device) break; } - priv = NM_DEVICE_WIFI_GET_PRIVATE (device); - if (priv->got_active_ap == TRUE) - return priv->active_ap; - - path = _nm_object_get_object_path_property (NM_OBJECT (device), - NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_ACTIVE_ACCESS_POINT, - &error); - if (error == NULL) { - g_value_init (&value, DBUS_TYPE_G_OBJECT_PATH); - g_value_take_boxed (&value, path); - demarshal_active_ap (NM_OBJECT (device), NULL, &value, &priv->active_ap); - g_value_unset (&value); - } - g_clear_error (&error); - - return priv->active_ap; + _nm_object_ensure_inited (NM_OBJECT (device)); + return NM_DEVICE_WIFI_GET_PRIVATE (device)->active_ap; } /** @@ -652,8 +588,6 @@ demarshal_active_ap (NMObject *object, GParamSpec *pspec, GValue *value, gpointe } } - priv->got_active_ap = TRUE; - if (priv->active_ap) { g_object_unref (priv->active_ap); priv->active_ap = NULL; |