00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _SML_TRANSPORT_H_
00023 #define _SML_TRANSPORT_H_
00024
00025 typedef enum SmlTransportEventType {
00026 SML_TRANSPORT_EVENT_CONNECT_DONE,
00027 SML_TRANSPORT_EVENT_DISCONNECT_DONE,
00028 SML_TRANSPORT_EVENT_ERROR,
00029 SML_TRANSPORT_EVENT_DATA
00030 } SmlTransportEventType;
00031
00032 typedef enum {
00033 SML_TRANSPORT_CONNECTION_TYPE_UNKNOWN = 0,
00034 SML_TRANSPORT_CONNECTION_TYPE_SERIAL = 1,
00035 SML_TRANSPORT_CONNECTION_TYPE_BLUETOOTH = 2,
00036 SML_TRANSPORT_CONNECTION_TYPE_IRDA = 3,
00037 SML_TRANSPORT_CONNECTION_TYPE_NET = 4,
00038 SML_TRANSPORT_CONNECTION_TYPE_USB = 5
00039 } SmlTransportConnectionType;
00040
00041 typedef SmlBool (* SmlTransportEventCb) (SmlTransport *tsp, SmlLink *link, SmlTransportEventType type, SmlTransportData *data, SmlError *error, void *userdata);
00042
00043 SmlTransport *smlTransportNew(SmlTransportType type, SmlError **error);
00044 void smlTransportFree(SmlTransport *tsp);
00045
00046 SmlBool smlTransportSetConfigOption(SmlTransport *tsp, const char *name, const char *value, SmlError **error);
00047 SmlBool smlTransportSetConnectionType(SmlTransport *tsp, SmlTransportConnectionType type, SmlError **error);
00048 SmlBool smlTransportInitialize(SmlTransport *tsp, SmlError **error);
00049
00050 void smlTransportSetEventCallback(SmlTransport *tsp, SmlTransportEventCb callback, void *userdata);
00051 SmlBool smlTransportFinalize(SmlTransport *tsp, SmlError **error);
00052 SmlBool smlTransportConnect(SmlTransport *tsp, SmlError **error);
00053 SmlBool smlTransportDisconnect(SmlTransport *tsp, SmlLink *link, SmlError **error);
00054 SmlBool smlTransportSend(SmlTransport *tsp, SmlLink *link, SmlTransportData *data, SmlError **error);
00055 SmlTransportData *smlTransportDataNew(char *data, unsigned long size, SmlMimeType mimetype, SmlBool ownsData, SmlError **error);
00056 SmlTransportData *smlTransportDataRef(SmlTransportData *data);
00057 void smlTransportDataDeref(SmlTransportData *data);
00058 SmlLink *smlLinkNew(SmlTransport *tsp, void *link_data, SmlError **error);
00059 SmlLink *smlLinkRef(SmlLink *link);
00060 void smlLinkDeref(SmlLink *link);
00061 void smlTransportSetError(SmlTransport *tsp, SmlLink *link, SmlError **error);
00062 SmlTransportType smlTransportGetType(SmlTransport *tsp);
00063 SmlTransport *smlManagerGetTransport(SmlManager *manager);
00064
00065
00066 SmlBool smlTransportRunAsync(SmlTransport *tsp, SmlError **error) LIBSYNCML_DEPRECATED;
00067 void smlTransportStop(SmlTransport *tsp) LIBSYNCML_DEPRECATED;
00068
00069
00070
00071
00072 SmlLink *smlLinkFind(SmlTransport *tsp, void *link_data) LIBSYNCML_DEPRECATED;
00073
00074 #endif //_SML_TRANSPORT_H_