[commits] [Wiki] changed: ActiveSync/Development

Michael Rubinsky mrubinsk at horde.org
Wed Nov 23 17:22:49 UTC 2016


mrubinsk  Wed, 23 Nov 2016 17:22:49 +0000

Modified page: https://wiki.horde.org/ActiveSync/Development
New Revision:  7
Change log:  Start filling out the class descriptions.

@@ -11,9 +11,22 @@
  +++ Horde_ActiveSync

  This library contains the main logic for decoding WBXML from EAS  
requests, passing the request to the appropriate controller and then  
sending properly encoded responses back to the client.

-++++ TODO general description of the classes
+The following is a general overview of the important classes in this  
library and what they are responsible for:
+
+: Horde_ActiveSync : This is the main "server" and the entry point  
for the library. Also contains some getters for various objects used  
throughout.
+
+: Horde_ActiveSync_Collections : This class is essentially a manager  
for "collections". A collection is what we call a group of properties  
related to a single synchable data store (such as an email folder, or  
a contact list). It is the entry point for the SYNC and PING handlers  
for asking for changes. It manages the SyncCache, is responsible for  
ensuring we have all needed information when handling empty SYNC  
requests, detects concurrent requests, and a bunch more.
+
+: Horde_ActiveSync_Device : Manages device information such as OS and  
version. Also contains code that works around certain quirks that are  
specific to certain clients.
+
+: Horde_ActiveSync_Mime : A wrapper around Horde_Mime_Part that adds  
to and overrides existing behavior to make it more specific to  
ActiveSync. There is also Horde_ActiveSync_Mime_Iterator that is  
changed from the the normal Horde_Mime_Iterator behavior in that we  
don't include what EAS considers attachments to be returned, and we  
also include the base part when iterating (whereas Horde_Mime does  
not). Objects are instantiated from Horde_ActiveSync_Imap_* classes.
+
+: Horde_ActiveSync_Rfc822 : Deals with handling RFC822 email message  
strings/streams in the context of EAS. E.g., used when handling  
incoming SENDMAIL commands.
+
+: Horde_ActiveSync_SyncCache : This class is responsible for  
storing/loading the SyncCache data from the storage/state driver. The  
SyncCache started life as a way of caching data from SYNC and PING  
requests that would be needed if the client issued an "empty"  
SYNC/PING request. Empty requests are required to use the same values  
as the last non-empty request. It has since grown to be essentially a  
shared data store that helps keep collection data up to date between  
any and all running requests. Most (if not all) interaction with this  
class is through the Horde_ActiveSync_Collections object.
+

  +++ Horde_Core

  Core contains any code specific to handling Horde Groupware  
collections. This is where requests for information and changes to  
information are actually handled.



More information about the commits mailing list