base-modem: new property to keep the Connection object
This commit is contained in:
@@ -44,12 +44,16 @@ enum {
|
|||||||
PROP_PLUGIN,
|
PROP_PLUGIN,
|
||||||
PROP_VENDOR_ID,
|
PROP_VENDOR_ID,
|
||||||
PROP_PRODUCT_ID,
|
PROP_PRODUCT_ID,
|
||||||
|
PROP_CONNECTION,
|
||||||
PROP_LAST
|
PROP_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
static GParamSpec *properties[PROP_LAST];
|
static GParamSpec *properties[PROP_LAST];
|
||||||
|
|
||||||
struct _MMBaseModemPrivate {
|
struct _MMBaseModemPrivate {
|
||||||
|
/* The connection to the system bus */
|
||||||
|
GDBusConnection *connection;
|
||||||
|
|
||||||
gchar *device;
|
gchar *device;
|
||||||
gchar *driver;
|
gchar *driver;
|
||||||
gchar *plugin;
|
gchar *plugin;
|
||||||
@@ -535,6 +539,11 @@ set_property (GObject *object,
|
|||||||
case PROP_PRODUCT_ID:
|
case PROP_PRODUCT_ID:
|
||||||
self->priv->product_id = g_value_get_uint (value);
|
self->priv->product_id = g_value_get_uint (value);
|
||||||
break;
|
break;
|
||||||
|
case PROP_CONNECTION:
|
||||||
|
if (self->priv->connection)
|
||||||
|
g_object_unref (self->priv->connection);
|
||||||
|
self->priv->connection = g_value_dup_object (value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
@@ -571,6 +580,9 @@ get_property (GObject *object,
|
|||||||
case PROP_PRODUCT_ID:
|
case PROP_PRODUCT_ID:
|
||||||
g_value_set_uint (value, self->priv->product_id);
|
g_value_set_uint (value, self->priv->product_id);
|
||||||
break;
|
break;
|
||||||
|
case PROP_CONNECTION:
|
||||||
|
g_value_set_object (value, self->priv->connection);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
@@ -606,6 +618,8 @@ dispose (GObject *object)
|
|||||||
self->priv->ports = NULL;
|
self->priv->ports = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_clear_object (&self->priv->connection);
|
||||||
|
|
||||||
G_OBJECT_CLASS (mm_base_modem_parent_class)->dispose (object);
|
G_OBJECT_CLASS (mm_base_modem_parent_class)->dispose (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -678,5 +692,13 @@ mm_base_modem_class_init (MMBaseModemClass *klass)
|
|||||||
0, G_MAXUINT, 0,
|
0, G_MAXUINT, 0,
|
||||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
|
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
|
||||||
g_object_class_install_property (object_class, PROP_PRODUCT_ID, properties[PROP_PRODUCT_ID]);
|
g_object_class_install_property (object_class, PROP_PRODUCT_ID, properties[PROP_PRODUCT_ID]);
|
||||||
|
|
||||||
|
properties[PROP_CONNECTION] =
|
||||||
|
g_param_spec_object (MM_BASE_MODEM_CONNECTION,
|
||||||
|
"Connection",
|
||||||
|
"GDBus connection to the system bus.",
|
||||||
|
G_TYPE_DBUS_CONNECTION,
|
||||||
|
G_PARAM_READWRITE);
|
||||||
|
g_object_class_install_property (object_class, PROP_CONNECTION, properties[PROP_CONNECTION]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -39,6 +39,7 @@ typedef struct _MMBaseModem MMBaseModem;
|
|||||||
typedef struct _MMBaseModemClass MMBaseModemClass;
|
typedef struct _MMBaseModemClass MMBaseModemClass;
|
||||||
typedef struct _MMBaseModemPrivate MMBaseModemPrivate;
|
typedef struct _MMBaseModemPrivate MMBaseModemPrivate;
|
||||||
|
|
||||||
|
#define MM_BASE_MODEM_CONNECTION "base-modem-connection"
|
||||||
#define MM_BASE_MODEM_MAX_TIMEOUTS "base-modem-max-timeouts"
|
#define MM_BASE_MODEM_MAX_TIMEOUTS "base-modem-max-timeouts"
|
||||||
#define MM_BASE_MODEM_VALID "base-modem-valid"
|
#define MM_BASE_MODEM_VALID "base-modem-valid"
|
||||||
#define MM_BASE_MODEM_DEVICE "base-modem-device"
|
#define MM_BASE_MODEM_DEVICE "base-modem-device"
|
||||||
|
Reference in New Issue
Block a user