diff options
author | JP Rosevear <jpr@helixcode.com> | 2000-12-07 04:28:10 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2000-12-07 04:28:10 +0800 |
commit | ca1c3593bf873dcd03a8974c0785b1f6ffdbd140 (patch) | |
tree | 8570e5bd560558f7441c3fb9a789c57067ee7358 /calendar/cal-client/cal-client.c | |
parent | 8fc0d9aacb574d9bb0392bd94abd2e99ff7eae4a (diff) | |
download | gsoc2013-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.c | 43 |
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; } |