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

Re: CAP 10: CREATE Command and ordering of responses.




Andrea replied on 01/23/2003 11:35:04 AM:
> By the way, this same argument holds for VQUERY with multiple QUERY
> properties: see 6.1.1 item 5.

Yes, thanks you.  

> OTOH and for completeness sake: we can't take your argument to the
> extreme, in some cases we do need to mandate ordering. See results
> for CREATE - if results aren't in the same order as the components,
> the CUA won't be able to correlate them.

Huh??  Sure it can.  From the draft-10 12-Jan-2003:

In the following example two new top level "VAGENDA" components are created. [Snip, snip]

C: Content-Type: text/calendar
C:
C: BEGIN:VCALENDAR
C: PRODID:-//someone's prodid
C: VERSION:2.0
C: CMD;ID=creation01:CREATE
C: TARGET:cal.example.com
C: BEGIN:VAGENDA                 <- data for 1st new calendar
C: CALID:relcalz1
C: NAME;LANGUAGE=en_US:Bill's Soccer Team
C: OWNER:bill
C: CALMASTER:mailto:bill@xxxxxxxxxxx
C: TZID:US/Pacific
C: END:VAGENDA
C: BEGIN:VAGENDA                 <- data for 2nd new calendar
C: CALID:relcalz2
C: NAME;LANGUAGE=EN-us:Mary's personal calendar
C: OWNER:mary
C: CALMASTER:mailto:mary@xxxxxxxxxxx
C: TZID:US/Pacific
C: END:VAGENDA
C: END:VCALENDAR

[Snip, snip]

S: Content-Type: text/calendar
S:
S: BEGIN:VCALENDAR
S: VERSION:2.0
S: PRODID:-//someone's prodid
S: CMD;ID=creation01:REPLY
S: TARGET:cal.example.com
S: BEGIN:VREPLY                    <- Reply for 1st calendar create
S: CALID:relcalz1
S: REQUEST-STATUS:2.0
S: END:REPLY
S: BEGIN:VREPLY                    <- Reply for 2nd calendar create
S: CALID:relcalz2
S: REQUEST-STATUS:2.0
S: END:VREPLY
S: END:VCALENDAR


In this case, the CALID's are in separate VREPLYs that can easily be used by the CUA to match up the reponse.  The CS could just as easily have returned:

S: Content-Type: text/calendar
S:
S: BEGIN:VCALENDAR
S: VERSION:2.0
S: PRODID:-//someone's prodid
S: CMD;ID=creation01:REPLY
S: TARGET:cal.example.com
S: BEGIN:VREPLY                    <- Reply for 2nd calendar create
S: CALID:relcalz2
S: REQUEST-STATUS:2.0
S: END:VREPLY
S: BEGIN:VREPLY                    <- Reply for 1st calendar create
S: CALID:relcalz1
S: REQUEST-STATUS:2.0
S: END:REPLY
S: END:VCALENDAR


and there is NO difference. I see no justification for the text inbetween the request and reply that I cut out that claims:

When there are multiple "TARGET" properties in the original command object then the replies MUST BE in the exact same order as they were provided to the CS. The same is true for the objects created, their responses MUST BE in the exact same order as they were supplied to the CS.

since the CUA can simply use the CALIDs to match responses with the matching request.  The same goes for the creation of entries w/in the VAGENDAs.  There is ALWAYS info in the VREPLY to match the reply up with the command and the right target.  Thats _exactly_  how the create-vreply is crafted in the draft:

create-vreply  = "BEGIN" ":" "VREPLY" CRLF
                created-id
                request-status
                other-props
                "END" ":" "VREPLY" CRLF

              ; Where the id is appropriate for the
              ; type of object created:
              ;
              ; VAGENDA = calid
              ; VCAR = carid
              ; VEVENT, VFREEBUSY, VJOURNAL, VTODO = uid
              ; VQUERY = queryid
              ; x-component = x-id
              ;


so that the proper id can be matched up w/the proper objects.  Given the TARGET info from the VCALENDAR and the info in the VREPLY matching is pretty straight forward unless Im missing something.  If Im not then why is ordering important?  

Bruce
===========================================================================
Bruce Kahn                                INet: Bruce_Kahn@xxxxxxxxxxxxxxxx
Messaging & Collaboration                 Phone: 978.399.6496
IBM Software Group                         FAX: and nothing but the FAX...
Standard disclaimers apply, even where prohibited by law...