summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2014-01-08 12:09:40 -0600
committerDan Williams <dcbw@redhat.com>2014-01-23 17:34:12 -0600
commit41d735b9a129e88b22c510589e73fcf317c664e0 (patch)
treed5161a4807a18deb225f5f430031a0e5b6aaf840
parent511f3dcef3b82fcd749d8d8fc1759670aba85e33 (diff)
downloadNetworkManager-41d735b9a129e88b22c510589e73fcf317c664e0.tar.gz
libnm-glib: convert NMDeviceWimax NSPs to a real property
-rw-r--r--libnm-glib/nm-device-wimax.c74
-rw-r--r--libnm-glib/nm-device-wimax.h1
2 files changed, 39 insertions, 36 deletions
diff --git a/libnm-glib/nm-device-wimax.c b/libnm-glib/nm-device-wimax.c
index 5a9a21df3e..d834fd65e6 100644
--- a/libnm-glib/nm-device-wimax.c
+++ b/libnm-glib/nm-device-wimax.c
@@ -66,6 +66,7 @@ enum {
PROP_CINR,
PROP_TX_POWER,
PROP_BSID,
+ PROP_NSPS,
LAST_PROP
};
@@ -84,7 +85,6 @@ enum {
LAST_SIGNAL
};
-
static guint signals[LAST_SIGNAL] = { 0 };
/**
@@ -237,28 +237,6 @@ nm_device_wimax_get_nsp_by_path (NMDeviceWimax *wimax,
}
static void
-nsp_added (NMObject *self, NMObject *nsp)
-{
- g_signal_emit (self, signals[NSP_ADDED], 0, nsp);
-}
-
-static void
-nsp_removed (NMObject *self_obj, NMObject *nsp_obj)
-{
- NMDeviceWimax *self = NM_DEVICE_WIMAX (self_obj);
- NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (self);
- NMWimaxNsp *nsp = NM_WIMAX_NSP (nsp_obj);
-
- if (nsp == priv->active_nsp) {
- g_object_unref (priv->active_nsp);
- priv->active_nsp = NULL;
- _nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_ACTIVE_NSP);
- }
-
- g_signal_emit (self, signals[NSP_REMOVED], 0, nsp);
-}
-
-static void
clean_up_nsps (NMDeviceWimax *self, gboolean notify)
{
NMDeviceWimaxPrivate *priv;
@@ -473,6 +451,9 @@ get_property (GObject *object,
case PROP_BSID:
g_value_set_string (value, nm_device_wimax_get_bsid (self));
break;
+ case PROP_NSPS:
+ g_value_set_boxed (value, nm_device_wimax_get_nsps (self));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -548,27 +529,32 @@ register_properties (NMDeviceWimax *wimax)
{
NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (wimax);
const NMPropertiesInfo property_info[] = {
- { NM_DEVICE_WIMAX_HW_ADDRESS, &priv->hw_address },
- { NM_DEVICE_WIMAX_ACTIVE_NSP, &priv->active_nsp, NULL, NM_TYPE_WIMAX_NSP },
+ { NM_DEVICE_WIMAX_HW_ADDRESS, &priv->hw_address },
+ { NM_DEVICE_WIMAX_ACTIVE_NSP, &priv->active_nsp, NULL, NM_TYPE_WIMAX_NSP },
{ NM_DEVICE_WIMAX_CENTER_FREQUENCY, &priv->center_freq },
- { NM_DEVICE_WIMAX_RSSI, &priv->rssi },
- { NM_DEVICE_WIMAX_CINR, &priv->cinr },
- { NM_DEVICE_WIMAX_TX_POWER, &priv->tx_power },
- { NM_DEVICE_WIMAX_BSID, &priv->bsid },
+ { NM_DEVICE_WIMAX_RSSI, &priv->rssi },
+ { NM_DEVICE_WIMAX_CINR, &priv->cinr },
+ { NM_DEVICE_WIMAX_TX_POWER, &priv->tx_power },
+ { NM_DEVICE_WIMAX_BSID, &priv->bsid },
+ { NM_DEVICE_WIMAX_NSPS, &priv->nsps, NULL, NM_TYPE_WIMAX_NSP, "nsp" },
{ NULL },
};
_nm_object_register_properties (NM_OBJECT (wimax),
priv->proxy,
property_info);
+}
- _nm_object_register_pseudo_property (NM_OBJECT (wimax),
- priv->proxy,
- "NspList",
- &priv->nsps,
- NM_TYPE_WIMAX_NSP,
- nsp_added,
- nsp_removed);
+static void
+nsp_removed (NMDeviceWimax *self, NMWimaxNsp *nsp)
+{
+ NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (self);
+
+ if (nsp == priv->active_nsp) {
+ g_object_unref (priv->active_nsp);
+ priv->active_nsp = NULL;
+ _nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_ACTIVE_NSP);
+ }
}
static void
@@ -622,6 +608,7 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
object_class->dispose = dispose;
device_class->connection_compatible = connection_compatible;
device_class->get_hw_address = get_hw_address;
+ wimax_class->nsp_removed = nsp_removed;
/* properties */
@@ -726,6 +713,21 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
NULL,
G_PARAM_READABLE));
+ /**
+ * NMDeviceWimax:nsps:
+ *
+ * List of all WiMAX Network Service Providers the device can see.
+ *
+ * Since: 0.9.10
+ **/
+ g_object_class_install_property
+ (object_class, PROP_NSPS,
+ g_param_spec_boxed (NM_DEVICE_WIMAX_NSPS,
+ "NSPs",
+ "Network Service Providers",
+ NM_TYPE_OBJECT_ARRAY,
+ G_PARAM_READABLE));
+
/* signals */
/**
diff --git a/libnm-glib/nm-device-wimax.h b/libnm-glib/nm-device-wimax.h
index c0550d194e..b2282d4f11 100644
--- a/libnm-glib/nm-device-wimax.h
+++ b/libnm-glib/nm-device-wimax.h
@@ -62,6 +62,7 @@ GQuark nm_device_wimax_error_quark (void);
#define NM_DEVICE_WIMAX_CINR "cinr"
#define NM_DEVICE_WIMAX_TX_POWER "tx-power"
#define NM_DEVICE_WIMAX_BSID "bsid"
+#define NM_DEVICE_WIMAX_NSPS "nsps"
typedef struct {
NMDevice parent;