[Evolution-hackers] recurrence clarifications



What is the "rid" argument to cal_client_get_object, etc supposed to be?
I'm guessing a DATE-TIME representation in UTC? It would probably be
nicer if cal_client_get_object just took a struct icaltimetype * instead
though, and did the conversion to UTC and to string for you. (libical
uses struct icaltimetype for RECURRENCE-ID values),

Also, the "mod" argument in cal_client_remove_object_with_mod() can't
actually do anything useful currently, because there's no recurrence-id
arg, so there's nothing for the mod to be referring to. Given that, and
the fact that "mod" is meaningless for the non-recurrence-id case, I'm
wondering if maybe we shouldn't just have separate methods for handling
instances. Eg:

        gboolean cal_client_create_object (CalClient *client, icalcomponent *icalcomp,
        				   char **uid, GError **error);
        gboolean cal_client_modify_object (CalClient *client, icalcomponent *icalcomp,
        				   GError **error);
        gboolean cal_client_remove_object (CalClient *client, const char *uid,
        				   GError **error);
        
        gboolean cal_client_add_instance     (CalClient *client, const char *uid,
        				      const char *rid, GError **error);
        gboolean cal_client_modify_instances (CalClient *client, icalcomponent *icalcomp,
        				      CalObjModType mod, GError **error);
        gboolean cal_client_remove_instances (CalClient *client, const char *uid,
        				      const char *rid, CalObjModType mod,
        				      GError **error);

Though if we didn't mind being more iTIP-ish, we could even remove the
"mod" argument from cal_client_modify_instances and just have the caller
add a RANGE parameter to the RECURRENCE-ID in "icalcomp". Though I guess
if we were going to do that, we could just get rid of all of the idl
except for receiveObjects and make all of the cal_client functions be
wrappers around that...

Anyway, we at least need to do something about remove_object_with_mod.
Currently there's no way to do "remove all future instances of this
meeting" (other than manually editting the RRULEs).

-- Dan



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]