aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/cal-client/cal-client.c
diff options
context:
space:
mode:
authorJP Rosevear <jpr@helixcode.com>2000-12-07 04:28:10 +0800
committerJP Rosevear <jpr@src.gnome.org>2000-12-07 04:28:10 +0800
commitca1c3593bf873dcd03a8974c0785b1f6ffdbd140 (patch)
tree8570e5bd560558f7441c3fb9a789c57067ee7358 /calendar/cal-client/cal-client.c
parent8fc0d9aacb574d9bb0392bd94abd2e99ff7eae4a (diff)
downloadgsoc2013-evolution-ca1c3593bf873dcd03a8974c0785b1f6ffdbd140.tar.gz
gsoc2013-evolution-ca1c3593bf873dcd03a8974c0785b1f6ffdbd140.tar.zst
gsoc2013-evolution-ca1c3593bf873dcd03a8974c0785b1f6ffdbd140.zip
Update so as not to conflict with calendar (next_changed_item): update to
2000-12-06 JP Rosevear <jpr@helixcode.com> * conduits/calendar/calendar-conduit.c (map_name): Update so as not to conflict with calendar (next_changed_item): update to use CalClientChange instead of CalObjChange (compute_status): ditto (pre_sync): ditto (for_each_modified): since we now have the cal component we can call local_record_from_comp directly * conduits/todo/todo-conduit.c: same as above * pcs/cal-backend.c: Remove much logging cruft (cal_backend_compute_changes): Calculate the changes based on the hashed database (cal_backend_get_changes): call cal_backend_compute_changes (cal_backend_compute_changes_foreach_key): hash callback for calculating deletions * pcs/cal-backend.h: update protype, remove logging cruft from object * pcs/cal.c (build_change_seq): dup the calobj rather than the uid now (Cal_get_changes): rename from Cal_get_changed_uids (cal_get_epv): reflect name change in epv * cal-util/cal-util.c (cal_obj_change_list_free): update assertion * cal-util/cal-util.h: CalObjChange now returns the entire ical component, update the change types. This should all go away shortly * idl/evolution-calendar.idl: getChangedUIds -> getChanges. CalObjChange now contains the calobj rather than the uid, update the change types * cal-client/cal-client.c (cal_client_get_changes): rename from cal_client_get_changed_uids to make idl and addressbook * cal-client/cal-client.h: Update prototype * cal-client/cal-client.c (build_change_list): Build a list of CalClientChange instead of CalObjChange * cal-client/cal-client-types.c (cal_client_change_list_free): Free a glist of CalClientChanges * cal-client/cal-client-types.h: New file. Declarations for CalClientChange. * cal-client/Makefile.am: Build new files svn path=/trunk/; revision=6822
Diffstat (limited to 'calendar/cal-client/cal-client.c')
-rw-r--r--calendar/cal-client/cal-client.c43
1 files changed, 22 insertions, 21 deletions
diff --git a/calendar/cal-client/cal-client.c b/calendar/cal-client/cal-client.c
index 1eca55a2d3..99dd96710b 100644
--- a/calendar/cal-client/cal-client.c
+++ b/calendar/cal-client/cal-client.c
@@ -25,6 +25,7 @@
#include <gtk/gtksignal.h>
#include <liboaf/liboaf.h>
+#include "cal-client-types.h"
#include "cal-client.h"
#include "cal-listener.h"
@@ -733,44 +734,44 @@ cal_client_get_uids (CalClient *client, CalObjType type)
return uids;
}
-/* Builds a GList of CalObjChange structures from the CORBA sequence */
+/* Builds a GList of CalClientChange structures from the CORBA sequence */
static GList *
build_change_list (GNOME_Evolution_Calendar_CalObjChangeSeq *seq)
{
- GList *list;
+ GList *list = NULL;
+ icalcomponent *icalcomp;
int i;
/* Create the list in reverse order */
- list = NULL;
for (i = 0; i < seq->_length; i++) {
GNOME_Evolution_Calendar_CalObjChange *corba_coc;
- CalObjChange *coc;
+ CalClientChange *ccc;
corba_coc = &seq->_buffer[i];
- coc = g_new (CalObjChange, 1);
+ ccc = g_new (CalClientChange, 1);
+
+ icalcomp = icalparser_parse_string (corba_coc->calobj);
+ if (!icalcomp)
+ continue;
- coc->uid = g_strdup (corba_coc->uid);
- coc->type = corba_coc->type;
+ ccc->comp = cal_component_new ();
+ if (!cal_component_set_icalcomponent (ccc->comp, icalcomp)) {
+ icalcomponent_free (icalcomp);
+ gtk_object_unref (GTK_OBJECT (ccc->comp));
+ continue;
+ }
+ ccc->type = corba_coc->type;
- list = g_list_prepend (list, coc);
+ list = g_list_prepend (list, ccc);
}
list = g_list_reverse (list);
+
return list;
}
-/**
- * cal_client_get_changed_uids:
- * @client: A calendar client.
- * @type: Bitmask with types of objects to return.
- *
- * Queries a calendar for a list of unique identifiers corresponding to calendar
- * objects whose type matches one of the types specified in the @type flags.
- *
- * Return value: A list of strings that are the sought UIDs.
- **/
GList *
-cal_client_get_changed_uids (CalClient *client, CalObjType type, time_t since)
+cal_client_get_changes (CalClient *client, CalObjType type, const char *change_id)
{
CalClientPrivate *priv;
CORBA_Environment ev;
@@ -787,9 +788,9 @@ cal_client_get_changed_uids (CalClient *client, CalObjType type, time_t since)
t = corba_obj_type (type);
CORBA_exception_init (&ev);
- seq = GNOME_Evolution_Calendar_Cal_getChangedUIds (priv->cal, t, since, &ev);
+ seq = GNOME_Evolution_Calendar_Cal_getChanges (priv->cal, t, change_id, &ev);
if (ev._major != CORBA_NO_EXCEPTION) {
- g_message ("cal_client_get_changed_uids(): could not get the list of changes");
+ g_message ("cal_client_get_changes(): could not get the list of changes");
CORBA_exception_free (&ev);
return NULL;
}