summary refs log tree commit diff
path: root/libnm/nm-checkpoint.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2019-12-18 18:29:24 +0100
committerMichael Biebl <biebl@debian.org>2019-12-18 18:29:24 +0100
commit28028b26b3371756811e95d894f709f4b1207c00 (patch)
tree6fe7316fd743b51042db47601a8ef8814b3134ac /libnm/nm-checkpoint.c
parente22609983008e1a669196ad64ba3a59ae8c76e0d (diff)
New upstream version 1.22.0 upstream/1.22.0
Diffstat (limited to 'libnm/nm-checkpoint.c')
-rw-r--r--libnm/nm-checkpoint.c121
1 files changed, 49 insertions, 72 deletions
diff --git a/libnm/nm-checkpoint.c b/libnm/nm-checkpoint.c
index 59681807..7c30db97 100644
--- a/libnm/nm-checkpoint.c
+++ b/libnm/nm-checkpoint.c
@@ -1,26 +1,27 @@
+// SPDX-License-Identifier: LGPL-2.1+
 /*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/>.
- *
- * Copyright 2017 Red Hat, Inc.
+ * Copyright (C) 2017 Red Hat, Inc.
  */
 
 #include "nm-default.h"
 
 #include "nm-checkpoint.h"
+
 #include "nm-core-internal.h"
 #include "nm-dbus-interface.h"
 #include "nm-device.h"
 #include "nm-object-private.h"
 
+/*****************************************************************************/
+
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+	PROP_DEVICES,
+	PROP_CREATED,
+	PROP_ROLLBACK_TIMEOUT,
+);
+
 typedef struct {
-	GPtrArray *devices;
+	NMLDBusPropertyAO devices;
 	gint64 created;
 	guint32 rollback_timeout;
 } NMCheckpointPrivate;
@@ -36,16 +37,9 @@ struct _NMCheckpointClass {
 
 G_DEFINE_TYPE (NMCheckpoint, nm_checkpoint, NM_TYPE_OBJECT)
 
-#define NM_CHECKPOINT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMCheckpoint, NM_IS_CHECKPOINT)
-
-enum {
-	PROP_0,
-	PROP_DEVICES,
-	PROP_CREATED,
-	PROP_ROLLBACK_TIMEOUT,
+#define NM_CHECKPOINT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMCheckpoint, NM_IS_CHECKPOINT, NMObject)
 
-	LAST_PROP
-};
+/*****************************************************************************/
 
 /**
  * nm_checkpoint_get_devices:
@@ -62,7 +56,7 @@ nm_checkpoint_get_devices (NMCheckpoint *checkpoint)
 {
 	g_return_val_if_fail (NM_IS_CHECKPOINT (checkpoint), NULL);
 
-	return NM_CHECKPOINT_GET_PRIVATE (checkpoint)->devices;
+	return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_CHECKPOINT_GET_PRIVATE (checkpoint)->devices);
 }
 
 /**
@@ -112,16 +106,6 @@ nm_checkpoint_init (NMCheckpoint *checkpoint)
 }
 
 static void
-finalize (GObject *object)
-{
-	NMCheckpointPrivate *priv = NM_CHECKPOINT_GET_PRIVATE (NM_CHECKPOINT (object));
-
-	g_ptr_array_unref (priv->devices);
-
-	G_OBJECT_CLASS (nm_checkpoint_parent_class)->finalize (object);
-}
-
-static void
 get_property (GObject *object,
               guint prop_id,
               GValue *value,
@@ -132,7 +116,7 @@ get_property (GObject *object,
 
 	switch (prop_id) {
 	case PROP_DEVICES:
-		g_value_take_boxed (value, _nm_utils_copy_object_array (priv->devices));
+		g_value_take_boxed (value, _nm_utils_copy_object_array (nm_checkpoint_get_devices (checkpoint)));
 		break;
 	case PROP_CREATED:
 		g_value_set_int64 (value, priv->created);
@@ -146,34 +130,28 @@ get_property (GObject *object,
 	}
 }
 
-static void
-init_dbus (NMObject *object)
-{
-	NMCheckpointPrivate *priv = NM_CHECKPOINT_GET_PRIVATE (NM_CHECKPOINT (object));
-	const NMPropertiesInfo property_info[] = {
-		{ NM_CHECKPOINT_DEVICES,            &priv->devices, NULL, NM_TYPE_DEVICE },
-		{ NM_CHECKPOINT_CREATED,            &priv->created },
-		{ NM_CHECKPOINT_ROLLBACK_TIMEOUT,   &priv->rollback_timeout },
-		{ NULL },
-	};
-
-	NM_OBJECT_CLASS (nm_checkpoint_parent_class)->init_dbus (object);
-
-	_nm_object_register_properties (object,
-	                                NM_DBUS_INTERFACE_CHECKPOINT,
-	                                property_info);
-}
+const NMLDBusMetaIface _nml_dbus_meta_iface_nm_checkpoint = NML_DBUS_META_IFACE_INIT_PROP (
+	NM_DBUS_INTERFACE_CHECKPOINT,
+	nm_checkpoint_get_type,
+	NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH,
+	NML_DBUS_META_IFACE_DBUS_PROPERTIES (
+		NML_DBUS_META_PROPERTY_INIT_X       ("Created",         PROP_CREATED,          NMCheckpoint, _priv.created                                                      ),
+		NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Devices",         PROP_DEVICES,          NMCheckpoint, _priv.devices,         nm_device_get_type, .is_always_ready = TRUE ),
+		NML_DBUS_META_PROPERTY_INIT_U       ("RollbackTimeout", PROP_ROLLBACK_TIMEOUT, NMCheckpoint, _priv.rollback_timeout                                             ),
+	),
+);
 
 static void
-nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class)
+nm_checkpoint_class_init (NMCheckpointClass *klass)
 {
-	GObjectClass *object_class = G_OBJECT_CLASS (checkpoint_class);
-	NMObjectClass *nm_object_class = NM_OBJECT_CLASS (checkpoint_class);
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass);
 
 	object_class->get_property = get_property;
-	object_class->finalize = finalize;
 
-	nm_object_class->init_dbus = init_dbus;
+	_NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMCheckpoint);
+
+	_NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1 (nm_object_class, NMCheckpointPrivate, devices);
 
 	/**
 	 * NMCheckpoint:devices: (type GPtrArray(NMDevice))
@@ -182,12 +160,11 @@ nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class)
 	 *
 	 * Since: 1.12
 	 **/
-	g_object_class_install_property
-		(object_class, PROP_DEVICES,
-		 g_param_spec_boxed (NM_CHECKPOINT_DEVICES, "", "",
-		                     G_TYPE_PTR_ARRAY,
-		                     G_PARAM_READABLE |
-		                     G_PARAM_STATIC_STRINGS));
+	obj_properties[PROP_DEVICES] =
+	    g_param_spec_boxed (NM_CHECKPOINT_DEVICES, "", "",
+	                        G_TYPE_PTR_ARRAY,
+	                        G_PARAM_READABLE |
+	                        G_PARAM_STATIC_STRINGS);
 
 	/**
 	 * NMCheckpoint:created:
@@ -196,12 +173,11 @@ nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class)
 	 *
 	 * Since: 1.12
 	 **/
-	g_object_class_install_property
-		(object_class, PROP_CREATED,
-		 g_param_spec_int64 (NM_CHECKPOINT_CREATED, "", "",
-		                     G_MININT64, G_MAXINT64, 0,
-		                     G_PARAM_READABLE |
-		                     G_PARAM_STATIC_STRINGS));
+	obj_properties[PROP_CREATED] =
+	    g_param_spec_int64 (NM_CHECKPOINT_CREATED, "", "",
+	                        G_MININT64, G_MAXINT64, 0,
+	                        G_PARAM_READABLE |
+	                        G_PARAM_STATIC_STRINGS);
 
 	/**
 	 * NMCheckpoint:rollback-timeout:
@@ -210,10 +186,11 @@ nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class)
 	 *
 	 * Since: 1.12
 	 **/
-	g_object_class_install_property
-		(object_class, PROP_ROLLBACK_TIMEOUT,
-		 g_param_spec_uint (NM_CHECKPOINT_ROLLBACK_TIMEOUT, "", "",
-		                    0, G_MAXUINT32, 0,
-		                    G_PARAM_READABLE |
-		                    G_PARAM_STATIC_STRINGS));
+	obj_properties[PROP_ROLLBACK_TIMEOUT] =
+	    g_param_spec_uint (NM_CHECKPOINT_ROLLBACK_TIMEOUT, "", "",
+	                       0, G_MAXUINT32, 0,
+	                       G_PARAM_READABLE |
+	                       G_PARAM_STATIC_STRINGS);
+
+	_nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_checkpoint);
 }