13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*************************************************************************/ 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* module: External SyncML API */ 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* */ 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* file: sml.h */ 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* target system: all */ 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* target OS: all */ 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* */ 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Description: */ 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Platform independent definition of the SyncML API functions */ 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* This is the external API exposed to applications using SyncML */ 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*************************************************************************/ 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright Notice 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright (c) Ericsson, IBM, Lotus, Matsushita Communication 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Industrial Co., Ltd., Motorola, Nokia, Openwave Systems, Inc., 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Palm, Inc., Psion, Starfish Software, Symbian, Ltd. (2001). 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * All Rights Reserved. 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Implementation of all or part of any Specification may require 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * licenses under third party intellectual property rights, 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * including without limitation, patent rights (such a third party 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * may or may not be a Supporter). The Sponsors of the Specification 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * are not responsible and shall not be held responsible in any 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * manner for identifying or failing to identify any or all such 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * third party intellectual property rights. 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * THIS DOCUMENT AND THE INFORMATION CONTAINED HEREIN ARE PROVIDED 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ON AN "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND AND ERICSSON, IBM, 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO. LTD, MOTOROLA, 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * NOKIA, PALM INC., PSION, STARFISH SOFTWARE AND ALL OTHER SYNCML 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SPONSORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SHALL ERICSSON, IBM, LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO., 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * LTD, MOTOROLA, NOKIA, PALM INC., PSION, STARFISH SOFTWARE OR ANY 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OTHER SYNCML SPONSOR BE LIABLE TO ANY PARTY FOR ANY LOSS OF 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PROFITS, LOSS OF BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * BUSINESS, OR FOR DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PUNITIVE OR CONSEQUENTIAL DAMAGES OF ANY KIND IN CONNECTION WITH 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * THIS DOCUMENT OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE. 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * The above notice and this paragraph must be included on all copies 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * of this document that are made. 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef _SML_H 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #define _SML_H 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************************************************************************* 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Definitions 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *************************************************************************/ 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <smldef.h> 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <smldtd.h> 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <string.h> 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <stdlib.h> 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************************************************************************* 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * External Functions 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *************************************************************************/ 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#if !defined(NOWSM) || !__LINK_TOOLKIT_STATIC__ 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ============================ 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * General SyncML Functions 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ============================ 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby **/ 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlInit(SmlOptionsPtr_t pOptions); 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlSetSyncMLOptions (SmlOptionsPtr_t pOptions); 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlTerminate(void); 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ============================ 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Workspace Handling Functions 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ============================ 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby **/ 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlLockReadBuffer(InstanceID_t id, MemPtr_t *pReadPosition, MemSize_t *usedSize); 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlUnlockReadBuffer(InstanceID_t id, MemSize_t processedBytes); 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef NOWSM 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlSetMaxOutgoingSize(InstanceID_t id, MemSize_t maxOutgoingSize); 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlSetOutgoingBegin(InstanceID_t id); 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlLockWriteBuffer(InstanceID_t id, MemPtr_t *pWritePosition, MemSize_t *freeSize); 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlUnlockWriteBuffer(InstanceID_t id, MemSize_t writtenBytes); 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * =========================================== 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Protocol Element Building Functions (for Originator) 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * =========================================== 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby **/ 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Protocol Management */ 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlStartMessage(InstanceID_t id, SmlSyncHdrPtr_t pContent); 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlStartMessageExt(InstanceID_t id, SmlSyncHdrPtr_t pContent, SmlVersion_t vers); /* %%% added by luz 2003-08-06) */ 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlEndMessage(InstanceID_t id, Boolean_t final); 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlStartSync(InstanceID_t id, SmlSyncPtr_t pContent); 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlEndSync(InstanceID_t id); 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef ATOMIC_SEND /* these API calls are NOT included in the Toolkit lite version */ 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF Ret_t smlStartAtomic(InstanceID_t id, SmlAtomicPtr_t pContent); 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF Ret_t smlEndAtomic(InstanceID_t id); 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef SEQUENCE_SEND 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF Ret_t smlStartSequence(InstanceID_t id, SmlSequencePtr_t pContent); 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF Ret_t smlEndSequence(InstanceID_t id); 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Sync Commands */ 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef ADD_SEND 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF Ret_t smlAddCmd(InstanceID_t id, SmlAddPtr_t pContent); 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlAlertCmd(InstanceID_t id, SmlAlertPtr_t pContent); 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlDeleteCmd(InstanceID_t id, SmlDeletePtr_t pContent); 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef GET_SEND 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF Ret_t smlGetCmd(InstanceID_t id, SmlGetPtr_t pContent); 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlPutCmd(InstanceID_t id, SmlPutPtr_t pContent); 1323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlMapCmd(InstanceID_t id, SmlMapPtr_t pContent); 1333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlResultsCmd(InstanceID_t id, SmlResultsPtr_t pContent); 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlStatusCmd(InstanceID_t id, SmlStatusPtr_t pContent); 1353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlReplaceCmd(InstanceID_t id, SmlReplacePtr_t pContent); 1363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef COPY_SEND /* these API calls are NOT included in the Toolkit lite version */ 1383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF Ret_t smlCopyCmd(InstanceID_t id, SmlCopyPtr_t pContent); 1393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef EXEC_SEND 1413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF Ret_t smlExecCmd(InstanceID_t id, SmlExecPtr_t pContent); 1423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef SEARCH_SEND 1443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF Ret_t smlSearchCmd(InstanceID_t id, SmlSearchPtr_t pContent); 1453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlStartEvaluation(InstanceID_t id); 1473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlEndEvaluation(InstanceID_t id, MemSize_t *freemem); 1483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 1513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ============================================ 1523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Command Dispatching Functions (for Receiver) 1533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ============================================ 1543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby **/ 1553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlProcessData(InstanceID_t id, SmlProcessMode_t mode); 1573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 1613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ==================================================== 1623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Callback Functions to be implemented by the Receiver 1633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ==================================================== 1643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby **/ 1653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Protocol Management */ 1673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlStartMessageFunc) (InstanceID_t id, VoidPtr_t userData, SmlSyncHdrPtr_t pContent); 1683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlEndMessageFunc) (InstanceID_t id, VoidPtr_t userData, Boolean_t final); 1693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlStartSyncFunc) (InstanceID_t id, VoidPtr_t userData, SmlSyncPtr_t pContent); 1703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlEndSyncFunc) (InstanceID_t id, VoidPtr_t userData); 1713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef ATOMIC_RECEIVE /* these callbacks are NOT included in the Toolkit lite version */ 1733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby typedef Ret_t (*smlStartAtomicFunc) (InstanceID_t id, VoidPtr_t userData, SmlAtomicPtr_t pContent); 1743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby typedef Ret_t (*smlEndAtomicFunc) (InstanceID_t id, VoidPtr_t userData); 1753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef SEQUENCE_RECEIVE 1773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby typedef Ret_t (*smlStartSequenceFunc) (InstanceID_t id, VoidPtr_t userData, SmlSequencePtr_t pContent); 1783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby typedef Ret_t (*smlEndSequenceFunc) (InstanceID_t id, VoidPtr_t userData); 1793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Sync Commands */ 1823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlAddCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlAddPtr_t pContent); 1833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlAlertCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlAlertPtr_t pContent); 1843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlDeleteCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlDeletePtr_t pContent); 1853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlGetCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlGetPtr_t pContent); 1863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlPutCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlPutPtr_t pContent); 1873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef MAP_RECEIVE 1883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby typedef Ret_t (*smlMapCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlMapPtr_t pContent); 1893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef RESULT_RECEIVE 1913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby typedef Ret_t (*smlResultsCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlResultsPtr_t pContent); 1923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlStatusCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlStatusPtr_t pContent); 1943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlReplaceCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlReplacePtr_t pContent); 1953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef COPY_RECEIVE /* these callbacks are NOT included in the Toolkit lite version */ 1973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby typedef Ret_t (*smlCopyCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlCopyPtr_t param); 1983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef EXEC_RECEIVE 2003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby typedef Ret_t (*smlExecCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlExecPtr_t pContent); 2013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef SEARCH_RECEIVE 2033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby typedef Ret_t (*smlSearchCmdFunc) (InstanceID_t id, VoidPtr_t userData, SmlSearchPtr_t pContent); 2043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Other Callbacks */ 2083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlHandleErrorFunc) (InstanceID_t id, VoidPtr_t userData); 2093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef Ret_t (*smlTransmitChunkFunc) (InstanceID_t id, VoidPtr_t userData); 2103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 2153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Structure defining references to the applications callback implementations 2163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby **/ 2173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef struct sml_callbacks_s { 2183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* Protocol Management Callbacks */ 2193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlStartMessageFunc startMessageFunc; 2203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlEndMessageFunc endMessageFunc; 2213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlStartSyncFunc startSyncFunc; 2223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlEndSyncFunc endSyncFunc; 2233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef ATOMIC_RECEIVE /* these callbacks are NOT included in the Toolkit lite version */ 2243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlStartAtomicFunc startAtomicFunc; 2253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlEndAtomicFunc endAtomicFunc; 2263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef SEQUENCE_RECEIVE 2283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlStartSequenceFunc startSequenceFunc; 2293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlEndSequenceFunc endSequenceFunc; 2303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* Sync Command callbacks */ 2323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlAddCmdFunc addCmdFunc; 2333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlAlertCmdFunc alertCmdFunc; 2343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlDeleteCmdFunc deleteCmdFunc; 2353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlGetCmdFunc getCmdFunc; 2363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlPutCmdFunc putCmdFunc; 2373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef MAP_RECEIVE 2383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlMapCmdFunc mapCmdFunc; 2393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef RESULT_RECEIVE 2413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlResultsCmdFunc resultsCmdFunc; 2423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlStatusCmdFunc statusCmdFunc; 2443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlReplaceCmdFunc replaceCmdFunc; 2453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef COPY_RECEIVE /* these callbacks are NOT included in the Toolkit lite version */ 2463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlCopyCmdFunc copyCmdFunc; 2473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef EXEC_RECEIVE 2493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlExecCmdFunc execCmdFunc; 2503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef SEARCH_RECEIVE 2523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlSearchCmdFunc searchCmdFunc; 2533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* Other Callbacks */ 2553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlHandleErrorFunc handleErrorFunc; 2563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlTransmitChunkFunc transmitChunkFunc; 2573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //smlPrintFunc printFunc; 2583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} *SmlCallbacksPtr_t, SmlCallbacks_t; 2593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 2633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ============================ 2643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Instance Management Functions 2653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ============================ 2663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby **/ 2673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlInitInstance(SmlCallbacksPtr_t pCallbacks, SmlInstanceOptionsPtr_t pOptions, VoidPtr_t pUserData, InstanceID_t *pId); 2693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlTerminateInstance (InstanceID_t id); 2703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlSetCallbacks (InstanceID_t id, SmlCallbacksPtr_t pCallbacks); 2713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlSetUserData (InstanceID_t id, VoidPtr_t pUserData); 2723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// added by luz %%%: 2733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlGetUserData(InstanceID_t id, VoidPtr_t *ppUserData); 2743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlGetEncoding(InstanceID_t id, SmlEncoding_t *pEncoding); 2753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef __SML_LITE__ /* these API calls are NOT included in the Toolkit lite version */ 2773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF Ret_t smlSetEncoding (InstanceID_t id, SmlEncoding_t encoding); 2783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 2833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * =================================== 2843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Some Helper Functions and Utilities 2853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * =================================== 2863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby **/ 2873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF Ret_t smlFreeProtoElement(VoidPtr_t pProtoElement); 2893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF void smlFreePcdata(SmlPcdataPtr_t pPcdata); 2903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef __SML_LITE__ /* these API calls are NOT included in the Toolkit lite version */ 2913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF String_t smlPcdata2String( SmlPcdataPtr_t pcdata ); 2923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF SmlPcdataPtr_t smlString2Pcdata( String_t str ); 2933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF SmlPcdataPtr_t smlPcdataDup(SmlPcdataPtr_t pcdata); 2943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF MemSize_t smlGetFreeBuffer(InstanceID_t id); 2953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef __PALM_OS__ /* these API calls are NOT exported in the Palm OS version */ 2983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF void *smlLibMemset(void *pObject, int value, MemSize_t count); 2993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF void *smlLibMemcpy(void *pTarget, const void *pSource, MemSize_t count); 3003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF int smlLibMemcmp(const void *pTarget, const void *pSource, MemSize_t count); 3013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*SML_API_DEF void *smlLibMalloc(MemSize_t size);*/ 3023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #define smlLibMalloc DmAllocMem 3033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmMemory.h" 3043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF void smlLibFree(void *pObject); 3063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF MemSize_t smlLibMemsize(const void *pObject); 3073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF String_t smlLibStrdup (const char *constStringP); 3093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF String_t smlLibStrcpy(const char *pTarget, const char *pSource); 3103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF int smlLibStrcmp(const char *pTarget, const char *pSource); 3113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF int smlLibStrlen(const char *pString); 3123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF String_t smlLibStrncpy(const char *pTarget, const char *pSource, int count); 3133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF int smlLibStrncmp(const char *pTarget, const char *pSource, int count); 3143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF String_t smlLibStrcat(const char *pTarget, const char *pSource); 3153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API_DEF String_t smlLibStrchr(const char *pString, char character); 3163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef __SML_LITE__ /* these API calls are NOT included in the Toolkit lite version */ 3173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF void smlLibPrint(const char *text, ...); 3183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF void *smlLibMemmove(void *pTarget, const void *pSource, MemSize_t count); 3193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF void *smlLibRealloc(void *pObject, MemSize_t size); 3203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF String_t smlLibStrncat(const char *pTarget, const char *pSource, int count); 3213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF String_t smlLibStrstr(const char *pString, const char *pSubString); 3223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 3233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 3243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//#define MOT_OTK_DEBUG 3263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef MOT_OTK_DEBUG 3273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <stdarg.h> 3283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid __kcdbg__(char *fmt, ...); 3303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define KCDBG(EXP, args...) __kcdbg__("(%s:%s:%d) " #EXP " %s", "", __FUNCTION__, __LINE__, ##args, "\n") 3313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#else 3323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define KCDBG(EXP, args...) 3333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 3343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 336