[Galago-commits] r2499 - in trunk/libgalago: . libgalago
galago-commits at freedesktop.org
galago-commits at freedesktop.org
Wed Jan 25 23:06:30 PST 2006
Author: chipx86
Date: 2006-01-25 23:06:25 -0800 (Wed, 25 Jan 2006)
New Revision: 2499
Modified:
trunk/libgalago/ChangeLog
trunk/libgalago/libgalago/galago-account.c
trunk/libgalago/libgalago/galago-private.h
trunk/libgalago/libgalago/galago-service.c
Log:
Set the object path when receiving an account object.
Modified: trunk/libgalago/ChangeLog
===================================================================
--- trunk/libgalago/ChangeLog 2006-01-25 08:30:20 UTC (rev 2498)
+++ trunk/libgalago/ChangeLog 2006-01-26 07:06:25 UTC (rev 2499)
@@ -1,3 +1,10 @@
+Wed Jan 25 22:59:31 PST 2006 Christian Hammond <chipx86 at chipx86.com>
+
+ * libgalago/galago-account.c:
+ * libgalago/galago-private.h:
+ * libgalago/galago-service.c:
+ - Set the object path when receiving an account object.
+
Tue Jan 10 00:40:54 PST 2006 Christian Hammond <chipx86 at chipx86.com>
* docs/protocol/protocol.hh:
Modified: trunk/libgalago/libgalago/galago-account.c
===================================================================
--- trunk/libgalago/libgalago/galago-account.c 2006-01-25 08:30:20 UTC (rev 2498)
+++ trunk/libgalago/libgalago/galago-account.c 2006-01-26 07:06:25 UTC (rev 2499)
@@ -22,6 +22,7 @@
#include <libgalago/galago-assert.h>
#include <libgalago/galago-context.h>
#include <libgalago/galago-core.h>
+#include <libgalago/galago-private.h>
#include <stdio.h>
#include <string.h>
@@ -277,7 +278,11 @@
GalagoAccount *account = (GalagoAccount *)object;
const char *username;
gboolean connected;
+ const char *obj_path;
+ obj_path = galago_object_get_dbus_path(GALAGO_OBJECT(account));
+ galago_dbus_message_iter_append_string_or_nil(iter, obj_path);
+
/* Service */
galago_dbus_message_iter_append_object(iter,
GALAGO_OBJECT(galago_account_get_service(account)));
@@ -306,9 +311,13 @@
GalagoPerson *person = NULL;
GalagoAccount *account;
gboolean connected;
+ const char *obj_path;
const char *display_name;
const char *username = NULL;
+ obj_path = galago_dbus_message_iter_get_string_or_nil(iter);
+ dbus_message_iter_next(iter);
+
service = galago_dbus_message_iter_get_object(iter, GALAGO_TYPE_SERVICE);
dbus_message_iter_next(iter);
@@ -323,7 +332,8 @@
dbus_message_iter_get_basic(iter, &connected);
- account = galago_service_create_account(service, person, username);
+ /* TODO: Set this all at once! */
+ account = _galago_account_new(service, person, username, obj_path);
galago_account_set_display_name(account, display_name);
galago_account_set_connected(account, connected);
@@ -457,7 +467,48 @@
}
}
+GalagoAccount *
+_galago_account_new(GalagoService *service, GalagoPerson *person,
+ const char *username, const char *obj_path)
+{
+ GalagoAccount *account;
+ GalagoOrigin service_origin, person_origin;
+ g_return_val_if_fail(service != NULL, NULL);
+ g_return_val_if_fail(person != NULL, NULL);
+ g_return_val_if_fail(GALAGO_IS_SERVICE(service), NULL);
+ g_return_val_if_fail(GALAGO_IS_PERSON(person), NULL);
+ g_return_val_if_fail(username != NULL && *username != '\0', NULL);
+
+ service_origin = galago_object_get_origin(GALAGO_OBJECT(service));
+ person_origin = galago_object_get_origin(GALAGO_OBJECT(person));
+
+ g_return_val_if_fail(service_origin == person_origin, NULL);
+
+ account = galago_service_get_account(service, username, FALSE);
+
+ if (account == NULL)
+ {
+ galago_context_push(galago_object_get_context(GALAGO_OBJECT(service)));
+ account = g_object_new(GALAGO_TYPE_ACCOUNT,
+ "service", service,
+ "person", person,
+ "username", username,
+ "origin", service_origin,
+ NULL);
+
+ /* Set the object path, if specified. */
+ galago_object_set_dbus_path(GALAGO_OBJECT(account), obj_path);
+
+ galago_person_add_account(person, account);
+ galago_service_add_account(service, account);
+ galago_context_pop();
+ }
+
+ return account;
+}
+
+
/**************************************************************************
* GalagoAccount API
**************************************************************************/
Modified: trunk/libgalago/libgalago/galago-private.h
===================================================================
--- trunk/libgalago/libgalago/galago-private.h 2006-01-25 08:30:20 UTC (rev 2498)
+++ trunk/libgalago/libgalago/galago-private.h 2006-01-26 07:06:25 UTC (rev 2499)
@@ -45,6 +45,15 @@
# define bind_textdomain_codeset(Domain,Codeset) (Codeset)
#endif /* ENABLE_NLS */
+#include <libgalago/galago-account.h>
+#include <libgalago/galago-service.h>
+#include <libgalago/galago-person.h>
+
#define GALAGO_ME_ID "_galago_me_"
+GalagoAccount *_galago_account_new(GalagoService *service,
+ GalagoPerson *person,
+ const char *username,
+ const char *obj_path);
+
#endif /* _GALAGO_PRIVATE_H_ */
Modified: trunk/libgalago/libgalago/galago-service.c
===================================================================
--- trunk/libgalago/libgalago/galago-service.c 2006-01-25 08:30:20 UTC (rev 2498)
+++ trunk/libgalago/libgalago/galago-service.c 2006-01-26 07:06:25 UTC (rev 2499)
@@ -471,37 +471,13 @@
galago_service_create_account(GalagoService *service, GalagoPerson *person,
const char *username)
{
- GalagoAccount *account;
- GalagoOrigin service_origin, person_origin;
-
g_return_val_if_fail(service != NULL, NULL);
g_return_val_if_fail(person != NULL, NULL);
g_return_val_if_fail(GALAGO_IS_SERVICE(service), NULL);
g_return_val_if_fail(GALAGO_IS_PERSON(person), NULL);
g_return_val_if_fail(username != NULL && *username != '\0', NULL);
- service_origin = galago_object_get_origin(GALAGO_OBJECT(service));
- person_origin = galago_object_get_origin(GALAGO_OBJECT(person));
-
- g_return_val_if_fail(service_origin == person_origin, NULL);
-
- account = galago_service_get_account(service, username, FALSE);
-
- if (account == NULL)
- {
- galago_context_push(galago_object_get_context(GALAGO_OBJECT(service)));
- account = g_object_new(GALAGO_TYPE_ACCOUNT,
- "service", service,
- "person", person,
- "username", username,
- "origin", service_origin,
- NULL);
- galago_person_add_account(person, account);
- galago_service_add_account(service, account);
- galago_context_pop();
- }
-
- return account;
+ return _galago_account_new(service, person, username, NULL);
}
GalagoAccount *
More information about the galago-commits
mailing list