Let's take advantage of the generic OsinfoLink type and inherit from it. Signed-off-by: Fabiano Fidêncio <fidencio@xxxxxxxxxx> --- osinfo/osinfo_devicelink.c | 82 ++------------------------------------ osinfo/osinfo_devicelink.h | 6 +-- 2 files changed, 6 insertions(+), 82 deletions(-) diff --git a/osinfo/osinfo_devicelink.c b/osinfo/osinfo_devicelink.c index 41ebd56..3b9909b 100644 --- a/osinfo/osinfo_devicelink.c +++ b/osinfo/osinfo_devicelink.c @@ -27,7 +27,7 @@ #include <osinfo/osinfo.h> #include <glib/gi18n-lib.h> -G_DEFINE_TYPE(OsinfoDeviceLink, osinfo_devicelink, OSINFO_TYPE_ENTITY); +G_DEFINE_TYPE(OsinfoDeviceLink, osinfo_devicelink, OSINFO_TYPE_LINK); #define OSINFO_DEVICELINK_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), OSINFO_TYPE_DEVICELINK, OsinfoDeviceLinkPrivate)) @@ -43,68 +43,13 @@ G_DEFINE_TYPE(OsinfoDeviceLink, osinfo_devicelink, OSINFO_TYPE_ENTITY); struct _OsinfoDeviceLinkPrivate { - OsinfoDevice *target; + gboolean unused; }; -enum { - PROP_0, - - PROP_TARGET -}; - -static void -osinfo_devicelink_set_property(GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - OsinfoDeviceLink *devlink = OSINFO_DEVICELINK(object); - - switch (property_id) - { - case PROP_TARGET: - if (devlink->priv->target) - g_object_unref(devlink->priv->target); - devlink->priv->target = g_value_get_object(value); - if (devlink->priv->target) - g_object_ref(devlink->priv->target); - break; - default: - /* We don't have any other property... */ - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); - break; - } -} - -static void -osinfo_devicelink_get_property(GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - OsinfoDeviceLink *devlink = OSINFO_DEVICELINK(object); - - switch (property_id) - { - case PROP_TARGET: - g_value_set_object(value, devlink->priv->target); - break; - default: - /* We don't have any other property... */ - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); - break; - } -} - static void osinfo_devicelink_finalize(GObject *object) { - OsinfoDeviceLink *devlink = OSINFO_DEVICELINK(object); - - if (devlink->priv->target) - g_object_unref(devlink->priv->target); - /* Chain up to the parent class */ G_OBJECT_CLASS(osinfo_devicelink_parent_class)->finalize(object); } @@ -114,27 +59,6 @@ static void osinfo_devicelink_class_init(OsinfoDeviceLinkClass *klass) { GObjectClass *g_klass = G_OBJECT_CLASS(klass); - GParamSpec *pspec; - - g_klass->set_property = osinfo_devicelink_set_property; - g_klass->get_property = osinfo_devicelink_get_property; - - /** - * OsinfoDeviceLink:target: - * - * The target of the device link. - */ - pspec = g_param_spec_object("target", - "Target", - _("Target device"), - OSINFO_TYPE_DEVICE, - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS); - g_object_class_install_property(g_klass, - PROP_TARGET, - pspec); - g_klass->finalize = osinfo_devicelink_finalize; g_type_class_add_private(klass, sizeof(OsinfoDeviceLinkPrivate)); @@ -174,7 +98,7 @@ OsinfoDeviceLink *osinfo_devicelink_new(OsinfoDevice *target) */ OsinfoDevice *osinfo_devicelink_get_target(OsinfoDeviceLink *devlink) { - return devlink->priv->target; + return OSINFO_DEVICE(osinfo_link_get_target(OSINFO_LINK(devlink))); } const gchar *osinfo_devicelink_get_driver(OsinfoDeviceLink *devlink) diff --git a/osinfo/osinfo_devicelink.h b/osinfo/osinfo_devicelink.h index 9fe44e1..f2fad4d 100644 --- a/osinfo/osinfo_devicelink.h +++ b/osinfo/osinfo_devicelink.h @@ -23,7 +23,7 @@ */ #include <glib-object.h> -#include <osinfo/osinfo_entity.h> +#include <osinfo/osinfo_link.h> #ifndef __OSINFO_DEVICELINK_H__ #define __OSINFO_DEVICELINK_H__ @@ -50,7 +50,7 @@ typedef struct _OsinfoDeviceLinkPrivate OsinfoDeviceLinkPrivate; /* object */ struct _OsinfoDeviceLink { - OsinfoEntity parent_instance; + OsinfoLink parent_instance; /* public */ @@ -62,7 +62,7 @@ struct _OsinfoDeviceLink struct _OsinfoDeviceLinkClass { /*< private >*/ - OsinfoEntityClass parent_class; + OsinfoLinkClass parent_class; /* class members */ }; -- 2.19.1 _______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo