API
This is the design description of the new API (after 0.4.6)
Goals
- connection management
- SyncML package oriented high level API
- support for device information management
- support for authentication handling
- one API for all transport protocols
- one callback per event class
Protocol Stack Management
This is a wrapper around the SmlManager?.
- collect the events
- manage the layers
Transport Management
- functions
- new
- config
- init
- connect
- disconnect
- finalize
- set callback
- transport events
- LIBSYNCML_EVENT_TRANSPORT_CONNECT
- LIBSYNCML_EVENT_TRANSPORT_DISCONNECT
- LIBSYNCML_EVENT_TRANSPORT_ERROR
Authentication
- unique authentication callback
- verification function which implements the supported authentication methods
Device Management
This is the old code because a change is not really necessary.
- an agent to handle requests from the remote peer
- several function to implement the necessary device management structures
Server Alerted Notifications (SAN)
This is the old code because a change is not really necessary.
Data Synchronization
- package events (smlPackageSetEventCallback)
- SML_EVENT_PACKAGE_CLIENT_ALERT_FINAL
- SML_EVENT_PACKAGE_SERVER_ALERT_FINAL
- SML_EVENT_PACKAGE_CLIENT_SYNC_FINAL
- SML_EVENT_PACKAGE_SERVER_SYNC_FINAL
- SML_EVENT_PACKAGE_CLIENT_MAP_FINAL
- SML_EVENT_PACKAGE_SERVER_SESSION_FINAL
- SML_EVENT_PACKAGE_REMOTE_ERROR
- SML_EVENT_PACKAGE_LOCAL_ERROR
- one callback for synchronization object replies
- one callback for received objects
- client functions
- add/send datastore(s)
- add/send synchronization object(s)
- send map item
- send map
- server functions
- one callback for received datastores
- add/send datastore(s)
- add/send synchronization object(s)
- send session end
