[Gpephone-devel] Calendar Scheduling

lin lin.yang at orange-ftgroup.com
Wed Mar 21 09:22:19 CET 2007


Hi, 

Pls see the comments below.

On Wed, 2007-03-21 at 02:54 +0100, zze-Ost SEBASTIEN A ext RD-ILAB
wrote:
>  Hi ,
> I'm working on group scheduling functions in calendar enabler.
> There're following questions up till now.
> 
> 1- Our function should require an instance ID when working with iCals so
> that just one instance can be canceled or rescheduled or ... for a
> repeating event, in the way it is specified by the RFC (if no RID is
> specified, the modifications are to be applied to the whole component) .

Let's make things easier. As we provide functions to remove/modify one
 instance in the "calcomponent.h" file, things can be made easy for
 scheduling part. 
As a example, there's a repeating event which is consisted of one main
 VEVENT component and several detached VEVENT component. If we modify
 one instance, causing modification of the detached component, how to
 notify other attendees about the modification? 
As the calendar enabler hides the "detached component" concept from the
 application.It's hard for enabler to provide interface to transfer only
 the detached components.Therefore, a simple but direct way is to
 transfer all the main component and detached component. When others
 receive the info, 1.firstly, they'll check whether they have components
 of the same UID. If not, simply add the component to the data
 storage.If yes, then 2. check the SEQUENCE, if the sequence in the
 newly arrived info is smaller than current sequence in the
 component,just ignore the info;Otherwise, replace current component
 with the newly arrived ones.

With above design, it's simple to solve your problem.Just modify/remove
instances by current interfaces in "calcompoent.h".Then create new
"cal_ical_t" structure and add the newly modified component to the
structure.

> 2- We could provide shortcut methods for the iTIP methods that are
> simple (publish for example)
By current interfaces, we can create a ical structure for publish
through:
cal_ical_new (sid, &ical);
cal_ical_set_method (ical, PUBLISH);
cal_ical_add_component (ical, component);

For shortcut, we can provide interface such as:
cal_create_publish_ical (sid, component, &ical);
cal_create_request_ical (sid, component, &ical);
cal_create_reply_ical (sid, ical1, status, &ical2);
cal_create_cancel_ical (sid, component, &ical);





More information about the Gpephone-devel mailing list