device: keep sysfs path around for logging

This commit is contained in:
Aleksander Morgado
2012-07-10 07:03:08 +02:00
parent 0aff871b04
commit 7b7f5b9dcb
2 changed files with 20 additions and 0 deletions

View File

@@ -41,6 +41,7 @@ static GParamSpec *properties[PROP_LAST];
struct _MMDevicePrivate { struct _MMDevicePrivate {
/* Parent UDev device */ /* Parent UDev device */
GUdevDevice *udev_device; GUdevDevice *udev_device;
gchar *udev_device_path;
/* Best plugin to manage this device */ /* Best plugin to manage this device */
MMPlugin *plugin; MMPlugin *plugin;
@@ -250,6 +251,12 @@ mm_device_create_modem (MMDevice *self,
/*****************************************************************************/ /*****************************************************************************/
const gchar *
mm_device_get_path (MMDevice *self)
{
return self->priv->udev_device_path;
}
GUdevDevice * GUdevDevice *
mm_device_peek_udev_device (MMDevice *self) mm_device_peek_udev_device (MMDevice *self)
{ {
@@ -332,6 +339,7 @@ set_property (GObject *object,
case PROP_UDEV_DEVICE: case PROP_UDEV_DEVICE:
/* construct only */ /* construct only */
self->priv->udev_device = g_value_dup_object (value); self->priv->udev_device = g_value_dup_object (value);
self->priv->udev_device_path = g_strdup (g_udev_device_get_sysfs_path (self->priv->udev_device));
break; break;
case PROP_PLUGIN: case PROP_PLUGIN:
g_clear_object (&(self->priv->plugin)); g_clear_object (&(self->priv->plugin));
@@ -384,6 +392,16 @@ dispose (GObject *object)
G_OBJECT_CLASS (mm_device_parent_class)->dispose (object); G_OBJECT_CLASS (mm_device_parent_class)->dispose (object);
} }
static void
finalize (GObject *object)
{
MMDevice *self = MM_DEVICE (object);
g_free (self->priv->udev_device_path);
G_OBJECT_CLASS (mm_device_parent_class)->finalize (object);
}
static void static void
mm_device_class_init (MMDeviceClass *klass) mm_device_class_init (MMDeviceClass *klass)
{ {
@@ -394,6 +412,7 @@ mm_device_class_init (MMDeviceClass *klass)
/* Virtual methods */ /* Virtual methods */
object_class->get_property = get_property; object_class->get_property = get_property;
object_class->set_property = set_property; object_class->set_property = set_property;
object_class->finalize = finalize;
object_class->dispose = dispose; object_class->dispose = dispose;
properties[PROP_UDEV_DEVICE] = properties[PROP_UDEV_DEVICE] =

View File

@@ -63,6 +63,7 @@ gboolean mm_device_create_modem (MMDevice *self,
GError **error); GError **error);
void mm_device_remove_modem (MMDevice *self); void mm_device_remove_modem (MMDevice *self);
const gchar *mm_device_get_path (MMDevice *self);
GUdevDevice *mm_device_peek_udev_device (MMDevice *self); GUdevDevice *mm_device_peek_udev_device (MMDevice *self);
GUdevDevice *mm_device_get_udev_device (MMDevice *self); GUdevDevice *mm_device_get_udev_device (MMDevice *self);
void mm_device_set_plugin (MMDevice *self, void mm_device_set_plugin (MMDevice *self,