port: use a 'priv' pointer to handle the private info

This commit is contained in:
Aleksander Morgado
2013-11-19 18:50:14 +01:00
parent 3f8f88499e
commit ef77e35a7f
2 changed files with 29 additions and 29 deletions

View File

@@ -33,14 +33,12 @@ enum {
LAST_PROP LAST_PROP
}; };
#define MM_PORT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MM_TYPE_PORT, MMPortPrivate)) struct _MMPortPrivate {
typedef struct {
char *device; char *device;
MMPortSubsys subsys; MMPortSubsys subsys;
MMPortType ptype; MMPortType ptype;
gboolean connected; gboolean connected;
} MMPortPrivate; };
/*****************************************************************************/ /*****************************************************************************/
@@ -58,7 +56,7 @@ constructor (GType type,
if (!object) if (!object)
return NULL; return NULL;
priv = MM_PORT_GET_PRIVATE (object); priv = MM_PORT (object)->priv;
if (!priv->device) { if (!priv->device) {
g_warning ("MMPort: no device provided"); g_warning ("MMPort: no device provided");
@@ -90,7 +88,7 @@ mm_port_get_device (MMPort *self)
g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (MM_IS_PORT (self), NULL); g_return_val_if_fail (MM_IS_PORT (self), NULL);
return MM_PORT_GET_PRIVATE (self)->device; return self->priv->device;
} }
MMPortSubsys MMPortSubsys
@@ -99,7 +97,7 @@ mm_port_get_subsys (MMPort *self)
g_return_val_if_fail (self != NULL, MM_PORT_SUBSYS_UNKNOWN); g_return_val_if_fail (self != NULL, MM_PORT_SUBSYS_UNKNOWN);
g_return_val_if_fail (MM_IS_PORT (self), MM_PORT_SUBSYS_UNKNOWN); g_return_val_if_fail (MM_IS_PORT (self), MM_PORT_SUBSYS_UNKNOWN);
return MM_PORT_GET_PRIVATE (self)->subsys; return self->priv->subsys;
} }
MMPortType MMPortType
@@ -108,7 +106,7 @@ mm_port_get_port_type (MMPort *self)
g_return_val_if_fail (self != NULL, MM_PORT_TYPE_UNKNOWN); g_return_val_if_fail (self != NULL, MM_PORT_TYPE_UNKNOWN);
g_return_val_if_fail (MM_IS_PORT (self), MM_PORT_TYPE_UNKNOWN); g_return_val_if_fail (MM_IS_PORT (self), MM_PORT_TYPE_UNKNOWN);
return MM_PORT_GET_PRIVATE (self)->ptype; return self->priv->ptype;
} }
gboolean gboolean
@@ -117,24 +115,21 @@ mm_port_get_connected (MMPort *self)
g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (self != NULL, FALSE);
g_return_val_if_fail (MM_IS_PORT (self), FALSE); g_return_val_if_fail (MM_IS_PORT (self), FALSE);
return MM_PORT_GET_PRIVATE (self)->connected; return self->priv->connected;
} }
void void
mm_port_set_connected (MMPort *self, gboolean connected) mm_port_set_connected (MMPort *self, gboolean connected)
{ {
MMPortPrivate *priv;
g_return_if_fail (self != NULL); g_return_if_fail (self != NULL);
g_return_if_fail (MM_IS_PORT (self)); g_return_if_fail (MM_IS_PORT (self));
priv = MM_PORT_GET_PRIVATE (self); if (self->priv->connected != connected) {
if (priv->connected != connected) { self->priv->connected = connected;
priv->connected = connected;
g_object_notify (G_OBJECT (self), MM_PORT_CONNECTED); g_object_notify (G_OBJECT (self), MM_PORT_CONNECTED);
mm_dbg ("(%s): port now %s", mm_dbg ("(%s): port now %s",
priv->device, self->priv->device,
connected ? "connected" : "disconnected"); connected ? "connected" : "disconnected");
} }
} }
@@ -144,29 +139,32 @@ mm_port_set_connected (MMPort *self, gboolean connected)
static void static void
mm_port_init (MMPort *self) mm_port_init (MMPort *self)
{ {
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, MM_TYPE_PORT, MMPortPrivate);
} }
static void static void
set_property (GObject *object, guint prop_id, set_property (GObject *object,
const GValue *value, GParamSpec *pspec) guint prop_id,
const GValue *value,
GParamSpec *pspec)
{ {
MMPortPrivate *priv = MM_PORT_GET_PRIVATE (object); MMPort *self = MM_PORT (object);
switch (prop_id) { switch (prop_id) {
case PROP_DEVICE: case PROP_DEVICE:
/* Construct only */ /* Construct only */
priv->device = g_value_dup_string (value); self->priv->device = g_value_dup_string (value);
break; break;
case PROP_SUBSYS: case PROP_SUBSYS:
/* Construct only */ /* Construct only */
priv->subsys = g_value_get_uint (value); self->priv->subsys = g_value_get_uint (value);
break; break;
case PROP_TYPE: case PROP_TYPE:
/* Construct only */ /* Construct only */
priv->ptype = g_value_get_uint (value); self->priv->ptype = g_value_get_uint (value);
break; break;
case PROP_CONNECTED: case PROP_CONNECTED:
priv->connected = g_value_get_boolean (value); self->priv->connected = g_value_get_boolean (value);
break; break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -178,20 +176,20 @@ static void
get_property (GObject *object, guint prop_id, get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec) GValue *value, GParamSpec *pspec)
{ {
MMPortPrivate *priv = MM_PORT_GET_PRIVATE (object); MMPort *self = MM_PORT (object);
switch (prop_id) { switch (prop_id) {
case PROP_DEVICE: case PROP_DEVICE:
g_value_set_string (value, priv->device); g_value_set_string (value, self->priv->device);
break; break;
case PROP_SUBSYS: case PROP_SUBSYS:
g_value_set_uint (value, priv->subsys); g_value_set_uint (value, self->priv->subsys);
break; break;
case PROP_TYPE: case PROP_TYPE:
g_value_set_uint (value, priv->ptype); g_value_set_uint (value, self->priv->ptype);
break; break;
case PROP_CONNECTED: case PROP_CONNECTED:
g_value_set_boolean (value, priv->connected); g_value_set_boolean (value, self->priv->connected);
break; break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -202,9 +200,9 @@ get_property (GObject *object, guint prop_id,
static void static void
finalize (GObject *object) finalize (GObject *object)
{ {
MMPortPrivate *priv = MM_PORT_GET_PRIVATE (object); MMPort *self = MM_PORT (object);
g_free (priv->device); g_free (self->priv->device);
G_OBJECT_CLASS (mm_port_parent_class)->finalize (object); G_OBJECT_CLASS (mm_port_parent_class)->finalize (object);
} }

View File

@@ -55,9 +55,11 @@ typedef enum { /*< underscore_name=mm_port_type >*/
typedef struct _MMPort MMPort; typedef struct _MMPort MMPort;
typedef struct _MMPortClass MMPortClass; typedef struct _MMPortClass MMPortClass;
typedef struct _MMPortPrivate MMPortPrivate;
struct _MMPort { struct _MMPort {
GObject parent; GObject parent;
MMPortPrivate *priv;
}; };
struct _MMPortClass { struct _MMPortClass {