[commits] [Wiki] changed: ActiveSync/Development

Michael Rubinsky mrubinsk at horde.org
Wed Nov 23 23:39:16 UTC 2016


mrubinsk  Wed, 23 Nov 2016 23:39:16 +0000

Modified page: https://wiki.horde.org/ActiveSync/Development
New Revision:  9
Change log:  Fill out the rest of the Core classes.

@@ -35,12 +35,21 @@
  : Horde_ActiveSync_Imap_* : These classes interact with the IMAP  
server. H_AS_I_Adapter contains the bulk of the logic for fetching  
changes, messages, etc.... The Message object wraps a single IMAP  
message and the MessageBodyData object abstracts access to the  
message's body taking various things into account (if the client needs  
HTML body, if it needs truncation) and ensuring the data is proper  
UTF-8 data.

  : Horde_ActiveSync_Message_* : These classes represent either an  
actual message item i.e., a Calendar item or a part of a message item  
that is contained by a message item i.e., and Attendee or a Flag. Each  
class is responsible for knowing how to encode itself into WBXML or to  
decode a WBXML stream into the item's properties.

+: Horde_ActiveSync_State_* : This is the state/storage driver.  
Responsible for interacting with the persistent storage used by  
ActiveSync (normally Sql). This is another one of those classes that  
has grown too big for it's original name and needs to be broken down  
for H6. Started as a driver for maintaining the state/synckey  
"sync-points" but has grown to encompass managing all storage needs.  
E.g., the SyncCache is actually persisted to storage using this class.

  +++ 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.
+
+: Horde_Core_ActiveSync_Auth : Wraps authentication driver for use in  
ActiveSync (see Authentication section below).
+
+: Horde_Core_ActiveSync_Connector : Wraps calls to the various  
application APIs (except for IMP) from Horde_Core_ActiveSync_Driver.
+
+: Horde_Core_ActiveSync_Driver : Concrete implementation of  
Horde_ActiveSync_Driver_Base.
+
+: Horde_Core_ActiveSync_Mail : Handles sending/replying/forwarding email.

  ++++ Factories

  : [[# activesyncserver Horde_Core_Factory_ActiveSyncServer]] :  
Creates the main //Horde_ActiveSync// object. Injects the  
//Horde_Core_ActiveSync_Driver//, the WBXML encoder/decoder objects,  
the //Horde_ActiveSync_State_[Sql|Mongo]// storage object and the  
//Horde_Controller_Request// object.
@@ -49,8 +58,11 @@

  : Horde_Core_Factory_ActiveSyncBackend : Creates the  
//Horde_Core_ActiveSync_Driver// backend driver. Injects  
//Horde_Core_ActiveSync_Connector//,  
//Horde_Core_ActiveSync_Imap_Factory// (if needed), the state storage  
driver, and the //Horde_Core_ActiveSync_Auth// object.

  : Horde_Core_ActiveSync_Imap_Factory : Responsible for constructing  
the Horde_ActiveSync_Imap_Adapter, for returning the folder tree, and  
information on available user-defined flags. This factory is injected  
into the backend driver.
+
+: Horde_Core_ActiveSync_Logger_Factory : Obviously, provides the  
logger object used for the synclog.
+

  ++ Protocol Overview

  It's beyond the scope to explain the ActiveSync protocol in detail.  
For that, there is the official  
[https://msdn.microsoft.com/en-us/library/cc425499(v=exchg.80).aspx  
documentation]. The most useful of these are



More information about the commits mailing list