On Mon Mar 10 20:17:53 2008, Joe Hildebrand wrote:
In section 2.4, would it be easier to implement in existing clients if:

- The response to the iq/get with version 0 was a full roster, in the existing format, with the addition of the current version number

I think it is, isn't it? The spec actually allows a diff from nothing, but in this instance, it doesn't matter whether it's technically a "diff" or not, since you'll get full items for everything that's changed, and everything will have done.


- The response to iq/get could always be a full roster, if the server got confused in any way, or know that it would be more efficient to just start from scratch

This is (or should be) the case.


- If the roster has been completely deleted, the response would be empty, but have version 0

I've a diff for specifying a sequence validity, which changes when the roster is effectively a new one. (So it'll change if the account is deleted and recreated, and it'll change if the server is restored from backup, and it'll change if the server simply can't really be bothered to use any kind of useful sequence, and instead changes it on every change).


- The response to iq/get would otherwise be empty, except for the new version number - All changes would be sent to the client as roster pushes after the iq/response, ordered such that the last one had the current version number


That's quite a neat design. It eliminates the diff attribute.


Then, all I have to do is store my current roster, and apply diffs to it in exactly one way.


Yes, I like this.

Dave.
--
Dave Cridland - mailto:[EMAIL PROTECTED] - xmpp:[EMAIL PROTECTED]
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade

Reply via email to