00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00029
00030 #ifndef _SML_DS_SERVER_H_
00031 #define _SML_DS_SERVER_H_
00032
00033 typedef struct SmlDsServer SmlDsServer;
00034 typedef struct SmlDsSession SmlDsSession;
00035
00036 typedef enum {
00037 SML_DS_EVENT_GOTCHANGES = 0,
00038 SML_DS_EVENT_COMMITEDCHANGES = 1
00039 } SmlDsEvent;
00040
00041 typedef void (* SmlDsSessionConnectCb) (SmlDsSession *dsession, void *userdata);
00042 typedef SmlBool (* SmlDsSessionAlertCb) (SmlDsSession *dsession, SmlAlertType type, const char *last, const char *next, void *userdata);
00043 typedef void (* SmlDsSessionSyncCb) (SmlDsSession *dsession, unsigned int numchanges, void *userdata);
00044 typedef void (* SmlDsSessionEventCb) (SmlDsSession *dsession, SmlDsEvent event, void *userdata);
00045 typedef SmlBool (* SmlDsSessionChangesCb) (SmlDsSession *dsession, SmlChangeType type, const char *uid, char *data, unsigned int size, const char *contenttype, void *userdata, SmlError **error);
00046
00047
00048
00049 typedef void (* SmlDsSessionWriteCb) (SmlDsSession *dsession, SmlStatus *status, const char *newuid, void *userdata);
00050
00051 SmlDsServer *smlDsServerNew(const char *type, SmlLocation *location, SmlError **error);
00052 SmlDsServer *smlDsClientNew(const char *type, SmlLocation *location, SmlLocation *target, SmlError **error);
00053 SmlDsServerType smlDsServerGetServerType(SmlDsServer *server);
00054 void smlDsServerFree(SmlDsServer *server);
00055 SmlBool smlDsServerRegister(SmlDsServer *server, SmlManager *manager, SmlError **error);
00056 SmlBool smlDsServerAddSan(SmlDsServer *server, SmlNotification *san, SmlError **error);
00057 void smlDsServerReset(SmlDsServer *server);
00058 void smlDsServerSetConnectCallback(SmlDsServer *server, SmlDsSessionConnectCb callback, void *userdata);
00059 const char *smlDsServerGetLocation(SmlDsServer *server);
00060 const char *smlDsServerGetContentType(SmlDsServer *server);
00061 SmlDsSession *smlDsServerSendAlert(SmlDsServer *server, SmlSession *session, SmlAlertType type, const char *last, const char *next, SmlStatusReplyCb callback, void *userdata, SmlError **error);
00062
00063 SmlDsSession *smlDsSessionNew(SmlDsServer *server, SmlSession *session, SmlError **error);
00064 SmlDsSession *smlDsSessionRef(SmlDsSession *dsession);
00065 void smlDsSessionUnref(SmlDsSession *dsession);
00066 void smlDsSessionDispatch(SmlDsSession *dsession);
00067 SmlBool smlDsSessionCheck(SmlDsSession *dsession);
00068 void smlDsSessionGetAlert(SmlDsSession *dsession, SmlDsSessionAlertCb callback, void *userdata);
00069 SmlBool smlDsSessionSendAlert(SmlDsSession *dsession, SmlAlertType type, const char *last, const char *next, SmlStatusReplyCb callback, void *userdata, SmlError **error);
00070 void smlDsSessionGetChanges(SmlDsSession *dsession, SmlDsSessionChangesCb chgCallback, void *userdata);
00071 void smlDsSessionGetSync(SmlDsSession *dsession, SmlDsSessionSyncCb chgCallback, void *userdata);
00072 void smlDsSessionGetEvent(SmlDsSession *dsession, SmlDsSessionEventCb eventCallback, void *userdata);
00073 SmlBool smlDsSessionSendSync(SmlDsSession *dsession, unsigned int num_changes, SmlStatusReplyCb callback, void *userdata, SmlError **error);
00074 SmlBool smlDsSessionQueueChange(SmlDsSession *dsession, SmlChangeType type, const char *uid, const char *data, unsigned int size, const char *contenttype, SmlDsSessionWriteCb callback, void *userdata, SmlError **error);
00075 SmlBool smlDsSessionCloseSync(SmlDsSession *dsession, SmlError **error);
00076 SmlBool smlDsSessionQueueMap(SmlDsSession *dsession, const char *uid, const char *newuid, SmlError **error);
00077 SmlBool smlDsSessionCloseMap(SmlDsSession *dsession, SmlStatusReplyCb callback, void *userdata, SmlError **error);
00078 const char *smlDsSessionGetLocation(SmlDsSession *dsession);
00079 const char *smlDsSessionGetContentType(SmlDsSession *dsession);
00080 SmlDsServer *smlDsSessionGetServer(SmlDsSession *dsession);
00081 SmlLocation *smlDsSessionGetTarget(SmlDsSession *dsession);
00082
00083
00084
00085 typedef SmlErrorType (* SmlDsServerSanSessionCb) (SmlDsServer *dsserver, SmlSession *session, SmlAlertType type, void *userdata);
00086 void smlDsServerSetSanSessionCallback(SmlDsServer *server, SmlDsServerSanSessionCb callback, void *userdata);
00087
00088
00089
00090 typedef SmlErrorType (* SmlDsServerSanCb) (SmlDsServer *dsserver, SmlAlertType type, void *userdata);
00091 void smlDsServerSetSanCallback(SmlDsServer *server, SmlDsServerSanCb callback, void *userdata) LIBSYNCML_DEPRECATED;
00092
00093 #endif //_SML_DS_SERVER_H_
00094