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