diff options
Diffstat (limited to 'calendar/corba-cal.c')
-rw-r--r-- | calendar/corba-cal.c | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/calendar/corba-cal.c b/calendar/corba-cal.c index 49978a5bf1..ddeb5ccb45 100644 --- a/calendar/corba-cal.c +++ b/calendar/corba-cal.c @@ -198,33 +198,39 @@ cal_repo_get_objects (PortableServer_Servant servant, CORBA_Environment *ev) { GnomeCalendar *gcal = gnomecal_from_servant (servant); - Calendar *dirty_cal; - GList *l; char *str; CORBA_char *res; - int items_dbg=0; - g_message("in cal_repo_get_objects"); - - dirty_cal = calendar_new ("Temporal"); - - for (l = gcal->cal->events; l; l = l->next){ - iCalObject *obj = l->data; + str = calendar_get_as_vcal_string (gcal->cal); + g_message("length of result is %d",strlen(str)); + res = CORBA_string_dup (str); + free(str); /* ...get_as_vcal calls writeMemVObject, which uses realloc to + allocate this string */ - obj = ical_object_duplicate (l->data); + return res; +} - calendar_add_object (dirty_cal, obj); +static GNOME_Calendar_Repository_String_Sequence* +cal_repo_get_object_id_list(PortableServer_Servant servant, + CORBA_Environment *ev) +{ + GnomeCalendar *gcal = gnomecal_from_servant (servant); + GList *l; + GNOME_Calendar_Repository_String_Sequence *result; + int counter; + + result = GNOME_Calendar_Repository_String_Sequence__alloc(); + result->_length = g_list_length(gcal->cal->events); + result->_buffer = CORBA_sequence_CORBA_string_allocbuf(result->_length); - items_dbg++; + counter = 0; + for (l = gcal->cal->events ; l; l = l->next){ + iCalObject *obj = l->data; + result->_buffer[counter] = CORBA_string_dup(obj->uid); + counter++; } - str = calendar_get_as_vcal_string (dirty_cal); - res = CORBA_string_dup (str); - /* g_free (str); glib with memcheck enabled says this is already freed */ - calendar_destroy (dirty_cal); - g_message("added %d items to return value",items_dbg); - - return res; + return result; } static CORBA_char * @@ -277,6 +283,7 @@ init_calendar_repo_class (void) calendar_repository_epv.get_objects = cal_repo_get_objects; calendar_repository_epv.get_updated_objects = cal_repo_get_updated_objects; calendar_repository_epv.update_pilot_id = cal_repo_update_pilot_id; + calendar_repository_epv.get_object_id_list = cal_repo_get_object_id_list; calendar_repository_epv.done = cal_repo_done; |