summaryrefslogtreecommitdiff
path: root/libnm-glib/nm-device-wifi.c
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2012-01-19 18:23:28 -0500
committerDan Williams <dcbw@redhat.com>2012-02-03 10:33:43 -0600
commit5afcee46936ab547a95fdaa7e415aa3ba6de47d2 (patch)
treeeeebe2e20e01b5bd99d8d1a32c06e8f3fc590d74 /libnm-glib/nm-device-wifi.c
parent2e48cc092c133ed3e10efcc00cf36b29c9d3efc8 (diff)
downloadNetworkManager-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.c90
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;