summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2011-03-17 14:48:25 -0400
committerDavid Zeuthen <davidz@redhat.com>2011-03-17 14:48:25 -0400
commitdaea9703f9b3a592385d078edec7aeddcea143fe (patch)
tree55a8682dd4e315f4b4ad3002da0e6888df91c040
parentc7037291329534fe972ce8aa421a31cf328d71b0 (diff)
Actually implement interface functions in GDBusObjectManagerServer
Signed-off-by: David Zeuthen <davidz@redhat.com>
-rw-r--r--src/gdbusobjectmanagerclient.c8
-rw-r--r--src/gdbusobjectmanagerserver.c27
2 files changed, 23 insertions, 12 deletions
diff --git a/src/gdbusobjectmanagerclient.c b/src/gdbusobjectmanagerclient.c
index c294eb3..e48b207 100644
--- a/src/gdbusobjectmanagerclient.c
+++ b/src/gdbusobjectmanagerclient.c
@@ -1523,9 +1523,6 @@ g_dbus_object_manager_client_get_object (GDBusObjectManager *_manager,
GDBusObjectManagerClient *manager = G_DBUS_OBJECT_MANAGER_CLIENT (_manager);
GDBusObject *ret;
- g_return_val_if_fail (G_IS_DBUS_OBJECT_MANAGER_CLIENT (manager), NULL);
- g_return_val_if_fail (g_variant_is_object_path (object_path), NULL);
-
ret = g_hash_table_lookup (manager->priv->map_object_path_to_object_proxy, object_path);
if (ret != NULL)
g_object_ref (ret);
@@ -1537,14 +1534,9 @@ g_dbus_object_manager_client_get_interface (GDBusObjectManager *_manager,
const gchar *object_path,
const gchar *interface_name)
{
- GDBusObjectManagerClient *manager = G_DBUS_OBJECT_MANAGER_CLIENT (_manager);
GDBusInterface *ret;
GDBusObject *object;
- g_return_val_if_fail (G_IS_DBUS_OBJECT_MANAGER_CLIENT (manager), NULL);
- g_return_val_if_fail (g_variant_is_object_path (object_path), NULL);
- g_return_val_if_fail (g_dbus_is_interface_name (interface_name), NULL);
-
ret = NULL;
object = g_dbus_object_manager_get_object (_manager, object_path);
diff --git a/src/gdbusobjectmanagerserver.c b/src/gdbusobjectmanagerserver.c
index 87f5230..642edaf 100644
--- a/src/gdbusobjectmanagerserver.c
+++ b/src/gdbusobjectmanagerserver.c
@@ -879,8 +879,15 @@ static GDBusObject *
g_dbus_object_manager_server_get_object (GDBusObjectManager *_manager,
const gchar *object_path)
{
- g_assert_not_reached ();
- return NULL;
+ GDBusObjectManagerServer *manager = G_DBUS_OBJECT_MANAGER_SERVER (_manager);
+ GDBusObject *ret;
+ RegistrationData *data;
+
+ ret = NULL;
+ data = g_hash_table_lookup (manager->priv->map_object_path_to_data, object_path);
+ if (data != NULL)
+ ret = g_object_ref (data->object);
+ return ret;
}
static GDBusInterface *
@@ -888,8 +895,20 @@ g_dbus_object_manager_server_get_interface (GDBusObjectManager *_manager,
const gchar *object_path,
const gchar *interface_name)
{
- g_assert_not_reached ();
- return NULL;
+ GDBusInterface *ret;
+ GDBusObject *object;
+
+ ret = NULL;
+
+ object = g_dbus_object_manager_get_object (_manager, object_path);
+ if (object == NULL)
+ goto out;
+
+ ret = g_dbus_object_get_interface (object, interface_name);
+ g_object_unref (object);
+
+ out:
+ return ret;
}
static void