[commits] [Wiki] changed: ActiveSync/Development
Michael Rubinsky
mrubinsk at horde.org
Wed Nov 23 15:48:46 UTC 2016
mrubinsk Wed, 23 Nov 2016 15:48:46 +0000
Modified page: https://wiki.horde.org/ActiveSync/Development
New Revision: 4
Change log: Basic bit about how we encode/decode WBXML.
@@ -35,8 +35,9 @@
: MS-ASHTTP : Documents the requirements and flow of the HTTP
protocol as used in the EAS protocol.
There are also the individual documents for each collection type,
such as //MS-ASEMAIL//, //MS-ASTASKS// etc... These documents are the
best place to start when trying to track down issues such as "Protocol
Error" issues with certain clients.
+The basic bit to know about the EAS protocol is that it is encoded
using WBXML. That is, binary encoded XML data. Again, the
structure/schema of WBXML data is beyond the scope of this page.
Instead of decoding the entire request first and then handling it,
Horde_ActiveSync decodes the data and handles it on the fly. That is,
we decode each individual message/object as it comes in and handle it
in-line, so to speak. This is to avoid keeping more in memory than is
necessary. The same is true for encoding - we don't wait to enocde the
entire response - we encode and send the response to the output stream
as soon as we can. The actual encoding/decoding is done in the
//Horde_ActiveSync_Wbxml_*// classes. The codepages/schema is defined
in //Horde_ActiveSync_Wbxml::.
++ Logic Flow
I have a long-standing item on my todo list to generate an activity
diagram for the program flow of an EAS request, but in the meantime
here is a description of what happens.
More information about the commits
mailing list