manager: make it export the Object Manager interface

This commit is contained in:
Aleksander Morgado
2011-10-25 17:27:30 +02:00
parent 0cc17ed82f
commit 07640b0c74

View File

@@ -54,14 +54,18 @@ enum {
}; };
struct _MMManagerPrivate { struct _MMManagerPrivate {
/* The connection to the system bus */
GDBusConnection *connection; GDBusConnection *connection;
/* The UDev client */
GUdevClient *udev; GUdevClient *udev;
GHashTable *modems; /* The authentication provider */
MMAuthProvider *authp; MMAuthProvider *authp;
/* The Plugin Manager object */ /* The Plugin Manager object */
MMPluginManager *plugin_manager; MMPluginManager *plugin_manager;
/* The container of currently available modems */
GHashTable *modems;
/* DBus The Object Manager server */
GDBusObjectManagerServer *object_manager;
}; };
typedef struct { typedef struct {
@@ -830,6 +834,9 @@ mm_manager_init (MMManager *manager)
priv->udev = g_udev_client_new (subsys); priv->udev = g_udev_client_new (subsys);
g_signal_connect (priv->udev, "uevent", G_CALLBACK (handle_uevent), manager); g_signal_connect (priv->udev, "uevent", G_CALLBACK (handle_uevent), manager);
/* Setup Object Manager Server */
priv->object_manager = g_dbus_object_manager_server_new (MM_DBUS_PATH);
/* Enable processing of input DBus messages */ /* Enable processing of input DBus messages */
g_signal_connect (manager, g_signal_connect (manager,
"handle-set-logging", "handle-set-logging",
@@ -860,6 +867,10 @@ initable_init (GInitable *initable,
error)) error))
return FALSE; return FALSE;
/* Export the Object Manager interface */
g_dbus_object_manager_server_set_connection (priv->object_manager,
priv->connection);
/* All good */ /* All good */
return TRUE; return TRUE;
} }
@@ -879,6 +890,9 @@ finalize (GObject *object)
if (priv->plugin_manager) if (priv->plugin_manager)
g_object_unref (priv->plugin_manager); g_object_unref (priv->plugin_manager);
if (priv->object_manager)
g_object_unref (priv->object_manager);
if (priv->connection) if (priv->connection)
g_object_unref (priv->connection); g_object_unref (priv->connection);