On 02/07/15 12:32, Aleksander Machniak wrote:
> Now I'm curious how Outlook/Mapistore detects changes in the storage,
> i.e. new mail, flag changes, etc. I suppose it checks some folder
> properties like PidTagLastModificationTime or some other
> time/checksum/count props. Implementing some of them is not simple when
> we're talking about IMAP storage.
>
> So, could you give me some more info on this and the list of required
> properties?
>

This topic is quite tricky. The semantics widely change depending if you
are running Outlook in online mode or in cached mode.

In online mode, it is mainly a client-side behavior which is likely to
change between Outlook versions. It is therefore not an exact science,
but we have found with experience some constants which are generally
enough to keep every Outlook version up and running properly.

1. timestamps properties such as PidTagLastModificationTime
2. counters such as PidTagContentCount or PidTagContentUnreadCount
3. RowCount value in GetHierarchyTable and GetContentsTable (computed at
mapistore layer)

In offline mode, the server and the clients agrees on contents/hierarchy
to be synchronized and related options during the
SynchronizationConfigure call, then exchange synchronization states
through metatags properties to agree on data to be retrieved. However
this MAPI internal behavior should be completely opaque to backends. On
top of my head, you will have to maintain few additional properties for
each objects such as PidTagChangeNumber or PidTagChangeKey for this
process to work properly. PidTagChangeNumber is generally used when you
want to query what has changed since a given revision.

There is definitely more, but as for now I hope it already gives you a
sense of what to expect.

Newmail is a complete separate topic on its own if we refer to scenarios
where the user receives the email while being connected or if the user
receives the email while being offline and synchronize afterwards. In
the former case, the asynchronous notification mechanism is involved
while in the later, the default offline algorithm is involved.

Julien.

-- 
Julien Kerihuel
j.kerih...@openchange.org
OpenChange Project Founder

Twitter: http://twitter.com/jkerihuel

GPG Fingerprint: 0B55 783D A781 6329 108A  B609 7EF6 FE11 A35F 1F79


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
devel mailing list
devel@lists.openchange.org
http://mailman.openchange.org/listinfo/devel

Reply via email to