[commits] [Wiki] changed: ActiveSync/Development
Michael Rubinsky
mrubinsk at horde.org
Wed Nov 23 16:59:06 UTC 2016
mrubinsk Wed, 23 Nov 2016 16:59:06 +0000
Modified page: https://wiki.horde.org/ActiveSync/Development
New Revision: 6
Change log: Note about concurrent requests and sync cache.
@@ -86,8 +86,10 @@
Now we can take care of the actual command the client is attempting
to perform. These are handled by Horde_ActiveSync_Request_* objects.
Again, the name of these objects are a bit outdated and are planned to
be renamed in H6. The object is instantiated and the handle() request
is called. If all goes well, a value of true is returned and control
is returned back to the RPC layer to finish up.
The Horde_ActiveSync_Request_* objects are responsible for enforcing
the schema of whatever request is being handled, passing off any
incoming additions/deletions/changes to the backend and delegating the
responsibility for storing any data that needs to be persisted. This
includes the collection state and the sync cache. This are explained
in the section on the client life cycle.
+
+I should be noted here that ActiveSync clients are able to issue
requests while other requests are still running. I.e., if the user
changes an entry, a new SYNC request can be issued, even though there
is currently a PING request running. After the SYNC request is
handled, the client can then issue another PING reqeust etc... The
sync cache is used to track this and detect these concurrent requests
and kill off the most appropriate request.
There are almost 2 dozen different types of requests that handle
things from synchronizing the folder structure to validating S/MIME
certificates. The more common request objects are:
: Horde_ActiveSync_Request_Sync : This is the main code responsible
for accepting and sending object changes, handling "hanging syncs"
(which are SYNC requests that also act as PING requests) as well as
handling certain options that the client sets (such as truncation,
sync window etc...).
More information about the commits
mailing list