summaryrefslogtreecommitdiff
path: root/src/nm-dhcp4-config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nm-dhcp4-config.c')
-rw-r--r--src/nm-dhcp4-config.c97
1 files changed, 54 insertions, 43 deletions
diff --git a/src/nm-dhcp4-config.c b/src/nm-dhcp4-config.c
index 26c6ab0b43..00aee8fafb 100644
--- a/src/nm-dhcp4-config.c
+++ b/src/nm-dhcp4-config.c
@@ -20,36 +20,40 @@
#include "nm-default.h"
+#include "nm-dhcp4-config.h"
+
#include <string.h>
#include "nm-dbus-interface.h"
-#include "nm-dhcp4-config.h"
#include "nm-utils.h"
+#include "nm-exported-object.h"
#include "nmdbus-dhcp4-config.h"
-G_DEFINE_TYPE (NMDhcp4Config, nm_dhcp4_config, NM_TYPE_EXPORTED_OBJECT)
+/*****************************************************************************/
-#define NM_DHCP4_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP4_CONFIG, NMDhcp4ConfigPrivate))
+NM_GOBJECT_PROPERTIES_DEFINE (NMDhcp4Config,
+ PROP_OPTIONS,
+);
typedef struct {
GVariant *options;
} NMDhcp4ConfigPrivate;
+struct _NMDhcp4Config {
+ NMExportedObject parent;
+ NMDhcp4ConfigPrivate _priv;
+};
-enum {
- PROP_0,
- PROP_OPTIONS,
-
- LAST_PROP
+struct _NMDhcp4ConfigClass {
+ NMExportedObjectClass parent;
};
+G_DEFINE_TYPE (NMDhcp4Config, nm_dhcp4_config, NM_TYPE_EXPORTED_OBJECT)
-NMDhcp4Config *
-nm_dhcp4_config_new (void)
-{
- return NM_DHCP4_CONFIG (g_object_new (NM_TYPE_DHCP4_CONFIG, NULL));
-}
+#define NM_DHCP4_CONFIG_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDhcp4Config, NM_IS_DHCP4_CONFIG)
+
+/*****************************************************************************/
void
nm_dhcp4_config_set_options (NMDhcp4Config *self,
@@ -72,7 +76,7 @@ nm_dhcp4_config_set_options (NMDhcp4Config *self,
priv->options = g_variant_builder_end (&builder);
g_variant_ref_sink (priv->options);
- g_object_notify (G_OBJECT (self), NM_DHCP4_CONFIG_OPTIONS);
+ _notify (self, PROP_OPTIONS);
}
const char *
@@ -98,6 +102,26 @@ nm_dhcp4_config_get_options (NMDhcp4Config *self)
return g_variant_ref (NM_DHCP4_CONFIG_GET_PRIVATE (self)->options);
}
+/*****************************************************************************/
+
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE ((NMDhcp4Config *) object);
+
+ switch (prop_id) {
+ case PROP_OPTIONS:
+ g_value_set_variant (value, priv->options);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
static void
nm_dhcp4_config_init (NMDhcp4Config *self)
{
@@ -107,10 +131,16 @@ nm_dhcp4_config_init (NMDhcp4Config *self)
g_variant_ref_sink (priv->options);
}
+NMDhcp4Config *
+nm_dhcp4_config_new (void)
+{
+ return NM_DHCP4_CONFIG (g_object_new (NM_TYPE_DHCP4_CONFIG, NULL));
+}
+
static void
finalize (GObject *object)
{
- NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE (object);
+ NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE ((NMDhcp4Config *) object);
g_variant_unref (priv->options);
@@ -118,44 +148,25 @@ finalize (GObject *object)
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_OPTIONS:
- g_value_set_variant (value, priv->options);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
nm_dhcp4_config_class_init (NMDhcp4ConfigClass *config_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (config_class);
NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (config_class);
- g_type_class_add_private (config_class, sizeof (NMDhcp4ConfigPrivate));
+ object_class->get_property = get_property;
+ object_class->finalize = finalize;
exported_object_class->export_path = NM_DBUS_PATH "/DHCP4Config/%u";
exported_object_class->export_on_construction = TRUE;
- /* virtual methods */
- object_class->get_property = get_property;
- object_class->finalize = finalize;
+ obj_properties[PROP_OPTIONS] =
+ g_param_spec_variant (NM_DHCP4_CONFIG_OPTIONS, "", "",
+ G_VARIANT_TYPE ("a{sv}"),
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
- /* properties */
- g_object_class_install_property
- (object_class, PROP_OPTIONS,
- g_param_spec_variant (NM_DHCP4_CONFIG_OPTIONS, "", "",
- G_VARIANT_TYPE ("a{sv}"),
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (config_class),
NMDBUS_TYPE_DHCP4_CONFIG_SKELETON,