[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