diff options
Diffstat (limited to 'libnm-glib/nm-ip6-config.c')
| -rw-r--r-- | libnm-glib/nm-ip6-config.c | 123 |
1 files changed, 22 insertions, 101 deletions
diff --git a/libnm-glib/nm-ip6-config.c b/libnm-glib/nm-ip6-config.c index 7e9bf3cd..c9a26279 100644 --- a/libnm-glib/nm-ip6-config.c +++ b/libnm-glib/nm-ip6-config.c @@ -124,20 +124,20 @@ demarshal_ip6_routes_array (NMObject *object, GParamSpec *pspec, GValue *value, } static void -register_for_property_changed (NMIP6Config *config) +register_properties (NMIP6Config *config) { NMIP6ConfigPrivate *priv = NM_IP6_CONFIG_GET_PRIVATE (config); - const NMPropertiesChangedInfo property_changed_info[] = { - { NM_IP6_CONFIG_ADDRESSES, demarshal_ip6_address_array, &priv->addresses }, - { NM_IP6_CONFIG_NAMESERVERS, demarshal_ip6_nameserver_array, &priv->nameservers }, - { NM_IP6_CONFIG_DOMAINS, demarshal_domains, &priv->domains }, - { NM_IP6_CONFIG_ROUTES, demarshal_ip6_routes_array, &priv->routes }, + const NMPropertiesInfo property_info[] = { + { NM_IP6_CONFIG_ADDRESSES, &priv->addresses, demarshal_ip6_address_array }, + { NM_IP6_CONFIG_NAMESERVERS, &priv->nameservers, demarshal_ip6_nameserver_array }, + { NM_IP6_CONFIG_DOMAINS, &priv->domains, demarshal_domains }, + { NM_IP6_CONFIG_ROUTES, &priv->routes, demarshal_ip6_routes_array }, { NULL }, }; - _nm_object_handle_properties_changed (NM_OBJECT (config), - priv->proxy, - property_changed_info); + _nm_object_register_properties (NM_OBJECT (config), + priv->proxy, + property_info); } /** @@ -153,27 +153,10 @@ register_for_property_changed (NMIP6Config *config) const GSList * nm_ip6_config_get_addresses (NMIP6Config *config) { - NMIP6ConfigPrivate *priv; - GValue value = { 0, }; - g_return_val_if_fail (NM_IS_IP6_CONFIG (config), NULL); - priv = NM_IP6_CONFIG_GET_PRIVATE (config); - if (priv->addresses) - return priv->addresses; - - if (!_nm_object_get_property (NM_OBJECT (config), - NM_DBUS_INTERFACE_IP6_CONFIG, - "Addresses", - &value, - NULL)) { - return NULL; - } - - demarshal_ip6_address_array (NM_OBJECT (config), NULL, &value, &priv->addresses); - g_value_unset (&value); - - return priv->addresses; + _nm_object_ensure_inited (NM_OBJECT (config)); + return NM_IP6_CONFIG_GET_PRIVATE (config)->addresses; } /* FIXME: like in libnm_util, in6_addr is not introspectable, so skipping here */ @@ -190,29 +173,10 @@ nm_ip6_config_get_addresses (NMIP6Config *config) const GSList * nm_ip6_config_get_nameservers (NMIP6Config *config) { - NMIP6ConfigPrivate *priv; - GParamSpec *pspec; - GValue value = {0,}; - g_return_val_if_fail (NM_IS_IP6_CONFIG (config), NULL); - priv = NM_IP6_CONFIG_GET_PRIVATE (config); - if (priv->nameservers) - return priv->nameservers; - - if (!_nm_object_get_property (NM_OBJECT (config), - NM_DBUS_INTERFACE_IP6_CONFIG, - "Nameservers", - &value, - NULL)) { - return NULL; - } - - pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (config)), NM_IP6_CONFIG_NAMESERVERS); - demarshal_ip6_nameserver_array (NM_OBJECT (config), pspec, &value, &priv->nameservers); - g_value_unset (&value); - - return priv->nameservers; + _nm_object_ensure_inited (NM_OBJECT (config)); + return NM_IP6_CONFIG_GET_PRIVATE (config)->nameservers; } /** @@ -227,27 +191,10 @@ nm_ip6_config_get_nameservers (NMIP6Config *config) const GPtrArray * nm_ip6_config_get_domains (NMIP6Config *config) { - NMIP6ConfigPrivate *priv; - GValue value = {0,}; - g_return_val_if_fail (NM_IS_IP6_CONFIG (config), NULL); - priv = NM_IP6_CONFIG_GET_PRIVATE (config); - if (priv->domains) - return handle_ptr_array_return (priv->domains); - - if (!_nm_object_get_property (NM_OBJECT (config), - NM_DBUS_INTERFACE_IP6_CONFIG, - "Domains", - &value, - NULL)) { - return NULL; - } - - demarshal_domains (NM_OBJECT (config), NULL, &value, &priv->domains); - g_value_unset (&value); - - return handle_ptr_array_return (priv->domains); + _nm_object_ensure_inited (NM_OBJECT (config)); + return handle_ptr_array_return (NM_IP6_CONFIG_GET_PRIVATE (config)->domains); } /** @@ -263,43 +210,19 @@ nm_ip6_config_get_domains (NMIP6Config *config) const GSList * nm_ip6_config_get_routes (NMIP6Config *config) { - NMIP6ConfigPrivate *priv; - GValue value = { 0, }; - g_return_val_if_fail (NM_IS_IP6_CONFIG (config), NULL); - priv = NM_IP6_CONFIG_GET_PRIVATE (config); - if (priv->routes) - return priv->routes; - - if (!_nm_object_get_property (NM_OBJECT (config), - NM_DBUS_INTERFACE_IP6_CONFIG, - "Routes", - &value, - NULL)) { - return NULL; - } - - demarshal_ip6_routes_array (NM_OBJECT (config), NULL, &value, &priv->routes); - g_value_unset (&value); - - return priv->routes; + _nm_object_ensure_inited (NM_OBJECT (config)); + return NM_IP6_CONFIG_GET_PRIVATE (config)->routes; } -static GObject* -constructor (GType type, - guint n_construct_params, - GObjectConstructParam *construct_params) +static void +constructed (GObject *object) { - GObject *object; DBusGConnection *connection; NMIP6ConfigPrivate *priv; - object = G_OBJECT_CLASS (nm_ip6_config_parent_class)->constructor (type, - n_construct_params, - construct_params); - if (!object) - return NULL; + G_OBJECT_CLASS (nm_ip6_config_parent_class)->constructed (object); priv = NM_IP6_CONFIG_GET_PRIVATE (object); connection = nm_object_get_connection (NM_OBJECT (object)); @@ -309,9 +232,7 @@ constructor (GType type, nm_object_get_path (NM_OBJECT (object)), NM_DBUS_INTERFACE_IP6_CONFIG); - register_for_property_changed (NM_IP6_CONFIG (object)); - - return object; + register_properties (NM_IP6_CONFIG (object)); } static void @@ -379,7 +300,7 @@ nm_ip6_config_class_init (NMIP6ConfigClass *config_class) g_type_class_add_private (config_class, sizeof (NMIP6ConfigPrivate)); /* virtual methods */ - object_class->constructor = constructor; + object_class->constructed = constructed; object_class->get_property = get_property; object_class->finalize = finalize; |