[Galago-commits] r2396 - in trunk/galago-daemon: . src
galago-commits at freedesktop.org
galago-commits at freedesktop.org
Mon Jan 9 23:30:27 PST 2006
Author: chipx86
Date: 2006-01-09 23:30:25 -0800 (Mon, 09 Jan 2006)
New Revision: 2396
Modified:
trunk/galago-daemon/ChangeLog
trunk/galago-daemon/src/core.c
trunk/galago-daemon/src/filter.h
trunk/galago-daemon/src/meta-service.c
trunk/galago-daemon/src/service-list.c
trunk/galago-daemon/src/service.c
Log:
Return a computed object path when an account is added to a service.
Modified: trunk/galago-daemon/ChangeLog
===================================================================
--- trunk/galago-daemon/ChangeLog 2006-01-10 07:29:26 UTC (rev 2395)
+++ trunk/galago-daemon/ChangeLog 2006-01-10 07:30:25 UTC (rev 2396)
@@ -1,3 +1,12 @@
+Mon Jan 09 23:30:05 PST 2006 Christian Hammond <chipx86 at chipx86.com>
+
+ * src/core.c:
+ * src/filter.h:
+ * src/meta-service.c:
+ * src/service.c:
+ * src/service-list.c:
+ - Return a computed object path when an account is added to a service.
+
Wed Dec 14 01:27:07 PST 2005 Christian Hammond <chipx86 at chipx86.com>
* src/account.c:
Modified: trunk/galago-daemon/src/core.c
===================================================================
--- trunk/galago-daemon/src/core.c 2006-01-10 07:29:26 UTC (rev 2395)
+++ trunk/galago-daemon/src/core.c 2006-01-10 07:30:25 UTC (rev 2396)
@@ -25,16 +25,31 @@
#include "utils.h"
static DBusHandlerResult
-coco_add_service(DBusConnection *conn, DBusMessage *message, GalagodCoCo *coco)
+coco_add_service(DBusConnection *dbus_conn, DBusMessage *message,
+ GalagodCoCo *coco)
{
GalagoService *service;
DBusMessageIter iter;
+ DBusMessage *reply;
+ char *obj_path;
dbus_message_iter_init(message, &iter);
service = galago_dbus_message_iter_get_object(&iter, GALAGO_TYPE_SERVICE);
-
g_object_set_data(G_OBJECT(service), "coco", coco);
+ /* Send the reply containing the object path. */
+ reply = dbus_message_new_method_return(message);
+ dbus_message_iter_init_append(reply, &iter);
+
+ obj_path = galagod_service_generate_path(service);
+ galago_object_set_dbus_path(GALAGO_OBJECT(service), obj_path);
+ dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &obj_path);
+
+ dbus_connection_send(dbus_conn, reply, NULL);
+ dbus_message_unref(reply);
+
+ g_free(obj_path);
+
galagod_services_add(service);
return DBUS_HANDLER_RESULT_HANDLED;
@@ -49,9 +64,7 @@
dbus_message_iter_init(message, &iter);
service = galago_dbus_message_iter_get_object(&iter, GALAGO_TYPE_SERVICE);
-
galagod_services_remove(service);
-
g_object_unref(service);
galagod_dbus_send_empty_reply(conn, message);
@@ -77,8 +90,6 @@
g_object_set_data(G_OBJECT(person), "coco", coco);
- g_message("Adding person with ID %s (%p)",
- galago_person_get_id(person), person);
galagod_people_add(person);
galagod_dbus_send_empty_reply(conn, message);
Modified: trunk/galago-daemon/src/filter.h
===================================================================
--- trunk/galago-daemon/src/filter.h 2006-01-10 07:29:26 UTC (rev 2395)
+++ trunk/galago-daemon/src/filter.h 2006-01-10 07:30:25 UTC (rev 2396)
@@ -73,6 +73,7 @@
void galagod_core_add_filter(void);
+char *galagod_service_generate_path(GalagoService *service);
void galagod_service_add_filter(GalagoService *service);
void galagod_service_remove_filter(GalagoService *service);
Modified: trunk/galago-daemon/src/meta-service.c
===================================================================
--- trunk/galago-daemon/src/meta-service.c 2006-01-10 07:29:26 UTC (rev 2395)
+++ trunk/galago-daemon/src/meta-service.c 2006-01-10 07:30:25 UTC (rev 2396)
@@ -27,6 +27,7 @@
GalagoServiceFlags flags)
{
GalagodMetaService *meta_service;
+ char *obj_path;
g_return_val_if_fail(id != NULL, NULL);
g_return_val_if_fail(name != NULL, NULL);
@@ -38,6 +39,11 @@
meta_service->service = galago_create_service(id, name, flags);
meta_service->account_list = galagod_account_list_new(meta_service);
+ obj_path = galagod_service_generate_path(meta_service->service);
+ galago_object_set_dbus_path(GALAGO_OBJECT(meta_service->service),
+ obj_path);
+ g_free(obj_path);
+
galago_context_pop();
g_object_set_data(G_OBJECT(meta_service->service),
Modified: trunk/galago-daemon/src/service-list.c
===================================================================
--- trunk/galago-daemon/src/service-list.c 2006-01-10 07:29:26 UTC (rev 2395)
+++ trunk/galago-daemon/src/service-list.c 2006-01-10 07:30:25 UTC (rev 2396)
@@ -75,10 +75,9 @@
if ((meta_service = galagod_services_get_meta_service(id)) == NULL)
{
- meta_service =
- galagod_meta_service_new(id,
- galago_service_get_name(service),
- galago_service_get_flags(service));
+ meta_service = galagod_meta_service_new(id,
+ galago_service_get_name(service),
+ galago_service_get_flags(service));
}
galagod_meta_service_add_service(meta_service, service);
Modified: trunk/galago-daemon/src/service.c
===================================================================
--- trunk/galago-daemon/src/service.c 2006-01-10 07:29:26 UTC (rev 2395)
+++ trunk/galago-daemon/src/service.c 2006-01-10 07:30:25 UTC (rev 2396)
@@ -44,10 +44,6 @@
person = galago_account_get_person(account);
- g_message("Added new account %s (%p) on service %s and person %p",
- galago_account_get_username(account), account,
- galago_service_get_id(service), person);
-
galagod_people_account_added(person);
galagod_dbus_send_empty_reply(dbus_conn, message);
@@ -94,9 +90,6 @@
dbus_message_iter_init(message, &iter);
dbus_message_iter_get_basic(&iter, &username);
- g_message("Getting account for %s on %s", username,
- galago_service_get_id(service));
-
meta_service = GALAGOD_META_SERVICE(service);
account_list = galagod_meta_service_get_account_list(meta_service);
meta_account = galagod_account_list_get_meta_account(account_list,
@@ -130,7 +123,7 @@
{
const GList *l;
DBusMessage *reply;
- DBusMessageIter iter;
+ DBusMessageIter iter, array_iter;
GalagodAccountList *account_list;
GalagodMetaService *meta_service;
GalagodMetaAccount *meta_account;
@@ -144,9 +137,10 @@
reply = dbus_message_new_method_return(message);
dbus_message_iter_init_append(reply, &iter);
+ dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
+ galago_object_type_get_dbus_signature(GALAGO_TYPE_ACCOUNT),
+ &array_iter);
- dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &account_count);
-
for (l = galagod_account_list_get_meta_accounts(account_list);
l != NULL;
l = l->next)
@@ -154,9 +148,12 @@
meta_account = (GalagodMetaAccount *)l->data;
account = galagod_meta_account_get_account(meta_account);
- galago_dbus_message_iter_append_object(&iter, GALAGO_OBJECT(account));
+ galago_dbus_message_iter_append_object(&array_iter,
+ GALAGO_OBJECT(account));
}
+ dbus_message_iter_close_container(&iter, &array_iter);
+
dbus_connection_send(dbus_conn, reply, NULL);
dbus_message_unref(reply);
@@ -197,6 +194,18 @@
GALAGOD_COMMAND_LAST
};
+char *
+galagod_service_generate_path(GalagoService *service)
+{
+ GalagodCoCo *coco = g_object_get_data(G_OBJECT(service), "coco");
+
+ return g_strdup_printf("%s/services/%s",
+ (coco == NULL
+ ? galago_context_get_obj_path_prefix()
+ : galago_object_get_dbus_path(GALAGO_OBJECT(coco))),
+ galago_dbus_normalize_name(galago_service_get_id(service)));
+}
+
void
galagod_service_add_filter(GalagoService *service)
{
More information about the galago-commits
mailing list