13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*************************************************************************/ 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* module: SyncML Command Builder */ 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* */ 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* file: mgrcmdbuilder.c */ 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* target system: all */ 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* target OS: all */ 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* */ 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Description: */ 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Core Module for assembling SyncML compliant documents */ 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*************************************************************************/ 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright Notice 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright (c) Ericsson, IBM, Lotus, Matsushita Communication 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Industrial Co., Ltd., Motorola, Nokia, Openwave Systems, Inc., 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Palm, Inc., Psion, Starfish Software, Symbian, Ltd. (2001). 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * All Rights Reserved. 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Implementation of all or part of any Specification may require 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * licenses under third party intellectual property rights, 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * including without limitation, patent rights (such a third party 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * may or may not be a Supporter). The Sponsors of the Specification 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * are not responsible and shall not be held responsible in any 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * manner for identifying or failing to identify any or all such 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * third party intellectual property rights. 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * THIS DOCUMENT AND THE INFORMATION CONTAINED HEREIN ARE PROVIDED 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ON AN "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND AND ERICSSON, IBM, 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO. LTD, MOTOROLA, 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * NOKIA, PALM INC., PSION, STARFISH SOFTWARE AND ALL OTHER SYNCML 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SPONSORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SHALL ERICSSON, IBM, LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO., 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * LTD, MOTOROLA, NOKIA, PALM INC., PSION, STARFISH SOFTWARE OR ANY 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OTHER SYNCML SPONSOR BE LIABLE TO ANY PARTY FOR ANY LOSS OF 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PROFITS, LOSS OF BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * BUSINESS, OR FOR DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PUNITIVE OR CONSEQUENTIAL DAMAGES OF ANY KIND IN CONNECTION WITH 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * THIS DOCUMENT OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE. 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * The above notice and this paragraph must be included on all copies 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * of this document that are made. 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************************************************************************* 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Definitions 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *************************************************************************/ 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Include Headers */ 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <smldef.h> 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xltenc.h" 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xltdec.h" 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "libmem.h" 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "mgr.h" 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Used external functions */ 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyextern Ret_t smlLockWriteBuffer(InstanceID_t id, MemPtr_t *pWritePosition, MemSize_t *freeSize); 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyextern Ret_t smlUnlockWriteBuffer(InstanceID_t id, MemSize_t writtenBytes); 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef __SML_LITE__ /* these API calls are NOT included in the Toolkit lite version */ 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby extern Ret_t addInfo(InstanceInfoPtr_t pInfo); 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby extern InstanceInfoPtr_t findInfo(InstanceID_t id); 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby extern Ret_t removeInfo(InstanceID_t id); 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Prototypes of exported SyncML API functions */ 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlStartMessage(InstanceID_t id, SmlSyncHdrPtr_t pContent); 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlStartMessageExt(InstanceID_t id, SmlSyncHdrPtr_t pContent, SmlVersion_t vers); 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlEndMessage(InstanceID_t id, Boolean_t final); 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlStartSync(InstanceID_t id, SmlSyncPtr_t pContent); 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlEndSync(InstanceID_t id); 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef ATOMIC_SEND /* these API calls are NOT included in the Toolkit lite version */ 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API Ret_t smlStartAtomic(InstanceID_t id, SmlAtomicPtr_t pContent); 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API Ret_t smlEndAtomic(InstanceID_t id); 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef SEQUENCE_SEND 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API Ret_t smlStartSequence(InstanceID_t id, SmlSequencePtr_t pContent); 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API Ret_t smlEndSequence(InstanceID_t id); 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef ADD_SEND 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API Ret_t smlAddCmd(InstanceID_t id, SmlAddPtr_t pContent); 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlAlertCmd(InstanceID_t id, SmlAlertPtr_t pContent); 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlDeleteCmd(InstanceID_t id, SmlDeletePtr_t pContent); 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef GET_SEND 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API Ret_t smlGetCmd(InstanceID_t id, SmlGetPtr_t pContent); 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlPutCmd(InstanceID_t id, SmlPutPtr_t pContent); 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlMapCmd(InstanceID_t id, SmlMapPtr_t pContent); 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlResultsCmd(InstanceID_t id, SmlResultsPtr_t pContent); 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlStatusCmd(InstanceID_t id, SmlStatusPtr_t pContent); 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlReplaceCmd(InstanceID_t id, SmlReplacePtr_t pContent); 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef COPY_SEND /* these API calls are NOT included in the Toolkit lite version */ 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API Ret_t smlCopyCmd(InstanceID_t id, SmlCopyPtr_t pContent); 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef EXEC_SEND 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API Ret_t smlExecCmd(InstanceID_t id, SmlExecPtr_t pContent); 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef SEARCH_SEND 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API Ret_t smlSearchCmd(InstanceID_t id, SmlSearchPtr_t pContent); 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Private function prototypes */ 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambystatic Ret_t mgrCreateNextCommand(InstanceID_t id, SmlProtoElement_t cmdType, VoidPtr_t pContent); 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t mgrResetWorkspace (InstanceID_t id); 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************************************************************************* 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Exported SyncML API functions 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *************************************************************************/ 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlStartMessage 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Start a SyncML Message 1313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 1333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: SmlSyncHdrPtr_t 1363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 1373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 1393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 1403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * NOTE: (%%% luz 2003-08-06) this entry point is for compatibilty reasons only 1423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * and works for SyncML 1.0 only 1433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * please use smlStartMessageExt() instead in new projects. 1443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 1453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlStartMessage(InstanceID_t id, SmlSyncHdrPtr_t pContent) 1463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* just call smlStartMessageExt with vers set to SyncML 1.0 */ 1483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return smlStartMessageExt(id,pContent,SML_VERS_1_1); 1493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 1533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlStartMessageExt 1543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * (%%% added by luz 2003-08-06 to support SyncML versions other than 1553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1.0 with new vers parameter) 1563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Start a SyncML Message 1583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 1603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 1613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SyncML version 1623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: SmlSyncHdrPtr_t 1643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 1653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 1673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 1683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 1693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlStartMessageExt(InstanceID_t id, SmlSyncHdrPtr_t pContent, SmlVersion_t vers) 1703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Definitions --- */ 1733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby InstanceInfoPtr_t pInstanceInfo; // pointer the the instance info structure for this id 1743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Ret_t rc; 1753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemPtr_t pCurrentWritePosition; // current Position from to which to write 1763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemPtr_t pBeginPosition; // saves the first position which has been written 1773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemSize_t freeSize; // size of free memory for writing 1783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #ifdef NOWSM 1813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = (InstanceInfoPtr_t)id; // ID is the instance info pointer 1823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #else 1833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Retrieve the corresponding instanceInfo structure --- */ 1843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #ifdef __SML_LITE__ /* Only ONE instance is supported in the Toolkit lite version */ 1853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = mgrGetInstanceListAnchor(); 1863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #else 1873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = (InstanceInfoPtr_t) findInfo(id); 1883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #endif 1893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #endif 1903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pInstanceInfo==NULL) return SML_ERR_MGR_INVALID_INSTANCE_INFO; 1923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Get Write Access to the workspace --- */ 1953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = smlLockWriteBuffer(id, &pCurrentWritePosition, &freeSize); 1963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (rc!=SML_ERR_OK) { 1983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // abort, unlock the buffer again without changing it's current position 1993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlUnlockWriteBuffer(id, (MemSize_t)0); 2003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return rc; 2013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #ifdef NOWSM 2043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // remember where outgoing message starts in buffer 2053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlSetOutgoingBegin(id); 2063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #endif 2073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* Remember the position we have started writing */ 2093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pBeginPosition=pCurrentWritePosition; 2103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Call the encoder module --- */ 2123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* (Saves the returned encoder state to the corresponding instanceInfo structure */ 2133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = xltEncInit(pInstanceInfo->instanceOptions->encoding, pContent, 2143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pCurrentWritePosition+freeSize, &pCurrentWritePosition, 2153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby (XltEncoderPtr_t *)&(pInstanceInfo->encoderState), 2163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby vers); 2173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (rc!=SML_ERR_OK) { 2193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // abort, unlock the buffer again without changing it's current position 2203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlUnlockWriteBuffer(id, (MemSize_t)0); 2213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // Reset the encoder module (free the encoding object) 2223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby xltEncReset(pInstanceInfo->encoderState); 2233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // this encoding job is over! reset instanceInfo pointer 2243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo->encoderState=NULL; 2253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return rc; 2273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- End Write Access to the workspace --- */ 2303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = smlUnlockWriteBuffer(id, (MemSize_t)pCurrentWritePosition-(MemSize_t)pBeginPosition); 2313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return rc; 2323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 2353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlEndMessage 2363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * End a SyncML Message 2383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 2403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 2413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: Boolean_t 2433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Final Flag indicates last message within a package 2443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 2463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 2473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 2483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlEndMessage(InstanceID_t id, Boolean_t final) 2493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Definitions --- */ 2523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby InstanceInfoPtr_t pInstanceInfo; // pointer the the instance info structure for this id 2533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Ret_t rc; 2543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemPtr_t pCurrentWritePosition; // current Position from to which to write 2553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemPtr_t pBeginPosition; // saves the first position which has been written 2563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemSize_t freeSize; // size of free memory for writing 2573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #ifdef NOWSM 2603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = (InstanceInfoPtr_t)id; // ID is the instance info pointer 2613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #else 2623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Retrieve the corresponding instanceInfo structure --- */ 2633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #ifdef __SML_LITE__ /* Only ONE instance is supported in the Toolkit lite version */ 2643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = mgrGetInstanceListAnchor(); 2653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #else 2663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = (InstanceInfoPtr_t) findInfo(id); 2673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #endif 2683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #endif 2693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pInstanceInfo==NULL) return SML_ERR_MGR_INVALID_INSTANCE_INFO; 2713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // %%% luz 2003-08-19: added NULL check as previously failed encoding will delete encoder 2723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pInstanceInfo->encoderState==NULL) return SML_ERR_MGR_INVALID_INSTANCE_INFO; 2733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Get Write Access to the workspace --- */ 2763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = smlLockWriteBuffer(id, &pCurrentWritePosition, &freeSize); 2773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (rc!=SML_ERR_OK) { 2793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // abort, unlock the buffer again without changing it's current position 2803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlUnlockWriteBuffer(id, (MemSize_t)0); 2813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return rc; 2823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* Remember the position we have started writing */ 2863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pBeginPosition=pCurrentWritePosition; 2873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* -- set Final Flag --*/ 2893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ((XltEncoderPtr_t)(pInstanceInfo->encoderState))->final = final; 2903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Call the encoder module --- */ 2923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = xltEncTerminate(pInstanceInfo->encoderState, pCurrentWritePosition+freeSize,&pCurrentWritePosition); 2933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (rc!=SML_ERR_OK) { 2953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // abort, unlock the buffer again without changing it's current position 2963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlUnlockWriteBuffer(id, (MemSize_t)0); 2973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // this encoding job is over! reset instanceInfo pointer 2983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo->encoderState=NULL; 2993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return rc; 3013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // this encoding job is over! reset instanceInfo pointer 3043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // (the decoding object itself has been freed by the decoder) 3053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo->encoderState=NULL; 3063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- End Write Access to the workspace --- */ 3083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = smlUnlockWriteBuffer(id, (MemSize_t)pCurrentWritePosition-(MemSize_t)pBeginPosition); 3093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return rc; 3123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 3193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlStartSync 3203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Start synchronizing 3223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 3243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 3253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: SyncPtr_t 3273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 3283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 3303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 3313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 3323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlStartSync(InstanceID_t id, SmlSyncPtr_t pContent) 3333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 3343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_SYNC_START, pContent); 3353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 3403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlEndSync 3413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * End synchronizing 3433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 3453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 3473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 3483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 3493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlEndSync(InstanceID_t id) 3503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 3513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_SYNC_END, NULL); 3523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef ATOMIC_SEND /* these API calls are NOT included in the Toolkit lite version */ 3563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 3583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlStartAtomic 3593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Start an atomic sequence 3613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 3633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 3643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: SmlAtomicPtr_t 3663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 3673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 3693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 3703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 3713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlStartAtomic(InstanceID_t id, SmlAtomicPtr_t pContent) 3723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 3733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_ATOMIC_START, pContent); 3743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 3783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlEndAtomic 3793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * End an atomic sequence 3813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 3833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 3843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 3853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 3863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 3873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 3883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlEndAtomic(InstanceID_t id) 3893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 3903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_ATOMIC_END, NULL); 3913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 3943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef SEQUENCE_SEND 3963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 3983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlStartSequence 3993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Start a sequence 4013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 4033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 4043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: SequencePtr_t 4063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 4073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 4093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 4103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 4113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlStartSequence(InstanceID_t id, SmlSequencePtr_t pContent) 4123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_SEQUENCE_START, pContent); 4143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 4193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlEndSequence 4203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * End a sequence 4223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 4243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 4253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 4273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 4283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 4293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlEndSequence(InstanceID_t id) 4303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_SEQUENCE_END, NULL); 4323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 4353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef ADD_SEND 4383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 4393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlAddCmd 4403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Add Command 4423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 4443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 4453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: SmlAddPtr_t 4473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 4483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 4503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 4513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 4523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlAddCmd(InstanceID_t id, SmlAddPtr_t pContent) 4533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_ADD, pContent); 4553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 4573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 4603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlAlertCmd 4613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Alert Command 4633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 4653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 4663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: SmlAlertPtr_t 4683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 4693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 4713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 4723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 4733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlAlertCmd(InstanceID_t id, SmlAlertPtr_t pContent) 4743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_ALERT, pContent); 4763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 4823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlDeleteCmd 4833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Start Message Command 4853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 4873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 4883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: DeletePtr_t 4903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 4913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 4923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 4933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 4943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 4953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlDeleteCmd(InstanceID_t id, SmlDeletePtr_t pContent) 4963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_DELETE, pContent); 4983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef GET_SEND 5033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 5063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlGetCmd 5073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Get Command 5093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 5113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 5123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: GetPtr_t 5143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 5153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 5173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 5183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 5193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlGetCmd(InstanceID_t id, SmlGetPtr_t pContent) 5203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 5213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_GET, pContent); 5223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 5233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 5253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 5283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlPutCmd 5293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Put Command 5313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 5333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 5343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: PutPtr_t 5363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 5373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 5393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 5403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 5413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlPutCmd(InstanceID_t id, SmlPutPtr_t pContent) 5423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 5433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_PUT, pContent); 5443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 5453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 5493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlMapCmd 5503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Map Command 5523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 5543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 5553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: MapPtr_t 5573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 5583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 5603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 5613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 5623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlMapCmd(InstanceID_t id, SmlMapPtr_t pContent) 5633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 5643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_MAP, pContent); 5653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 5663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 5703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlResultsCmd 5713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Results Command 5733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 5753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 5763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: ResultsPtr_t 5783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 5793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 5813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 5823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 5833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlResultsCmd(InstanceID_t id, SmlResultsPtr_t pContent) 5843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 5853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_RESULTS, pContent); 5863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 5873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 5933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlStatusCmd 5943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Status Command 5963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 5973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 5983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 5993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: StatusPtr_t 6013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 6023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 6043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 6053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 6063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlStatusCmd(InstanceID_t id, SmlStatusPtr_t pContent) 6073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 6083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_STATUS, pContent); 6093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 6103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 6143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlReplaceCmd 6153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Replace Command 6173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 6193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 6203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: SmlReplacePtr_t 6223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 6233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 6253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 6263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 6273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlReplaceCmd(InstanceID_t id, SmlReplacePtr_t pContent) 6283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 6293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_REPLACE, pContent); 6303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 6313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef COPY_SEND /* these API calls are NOT included in the Toolkit lite version */ 6353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 6383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlCopyCmd 6393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Copy Command 6413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 6433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 6443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: CopyPtr_t 6463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 6473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 6493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 6503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 6513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlCopyCmd(InstanceID_t id, SmlCopyPtr_t pContent) 6523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 6533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_COPY, pContent); 6543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 6553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 6573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef EXEC_SEND 6593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 6613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlExecCmd 6623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Exec Command 6643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 6663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 6673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: ExecPtr_t 6693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 6703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 6723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 6733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 6743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlExecCmd(InstanceID_t id, SmlExecPtr_t pContent) 6753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 6763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_EXEC, pContent); 6773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 6783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 6803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef SEARCH_SEND 6823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 6843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlSearchCmd 6853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Create a Search Command 6873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 6893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 6903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: SearchPtr_t 6923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Data to pass along with that SyncML command 6933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 6943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 6953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 6963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 6973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlSearchCmd(InstanceID_t id, SmlSearchPtr_t pContent) 6983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 6993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mgrCreateNextCommand(id, SML_PE_SEARCH, pContent); 7003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 7013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 7043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************************************************************************* 7073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Exported SyncML API functions (FULL-SIZE TOOLKIT ONLY) 7083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *************************************************************************/ 7093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef __SML_LITE__ /* these API calls are NOT included in the Toolkit lite version */ 7113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 7123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlStartEvaluation 7133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 7143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Starts an evaluation run which prevents further API-Calls to write tags - 7153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * just the tag-sizes are calculated. Must be sopped via smlEndEvaluation 7163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 7173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 7183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 7193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 7203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 7213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 7223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 7233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 7243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlStartEvaluation(InstanceID_t id) 7253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 7263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby InstanceInfoPtr_t pInstanceInfo; // pointer the the instance info structure for this id 7273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Ret_t rc; 7283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #ifdef NOWSM 7303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = (InstanceInfoPtr_t)id; // ID is the instance info pointer 7313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #else 7323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Retrieve the corresponding instanceInfo structure --- */ 7333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #ifdef __SML_LITE__ /* Only ONE instance is supported in the Toolkit lite version */ 7343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = mgrGetInstanceListAnchor(); 7353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #else 7363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = (InstanceInfoPtr_t) findInfo(id); 7373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #endif 7383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #endif 7393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pInstanceInfo==NULL) return SML_ERR_MGR_INVALID_INSTANCE_INFO; 7413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Initialize Encoder for evaluation mode --- */ 7443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = xltStartEvaluation((XltEncoderPtr_t)(pInstanceInfo->encoderState)); 7463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return rc; 7483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 7493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 7523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smlEndEvaluation 7533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 7543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Stops an evaluation run which prevents further API-Calls to write tags - 7553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * the remaining free buffer size after all Tags are written is returned 7563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 7573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 7583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the used instance 7593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 7603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN/OUT: MemSize_t 7613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Size of free buffer for data after all tags are written 7623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 7633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Ret_t 7643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Return Code 7653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 7663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySML_API Ret_t smlEndEvaluation(InstanceID_t id, MemSize_t *freemem) 7673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 7683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby InstanceInfoPtr_t pInstanceInfo; // pointer the the instance info structure for this id 7693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Ret_t rc; 7703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #ifdef NOWSM 7723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = (InstanceInfoPtr_t)id; // ID is the instance info pointer 7733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #else 7743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Retrieve the corresponding instanceInfo structure --- */ 7753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #ifdef __SML_LITE__ /* Only ONE instance is supported in the Toolkit lite version */ 7763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = mgrGetInstanceListAnchor(); 7773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #else 7783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = (InstanceInfoPtr_t) findInfo(id); 7793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #endif 7803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #endif 7813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pInstanceInfo==NULL) return SML_ERR_MGR_INVALID_INSTANCE_INFO; 7833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // %%% luz 2002-09-03: encoder can be null here if fatal error occurred before 7853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pInstanceInfo->encoderState==NULL) 7863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SML_ERR_WRONG_USAGE; 7873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = xltEndEvaluation(id, (XltEncoderPtr_t)(pInstanceInfo->encoderState), freemem); 7893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SML_ERR_OK; 7903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 7913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 7933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************************************************************************* 7963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Private Functions 7973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *************************************************************************/ 7983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 8013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: 8023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Calls the encoding routines of the Encoder Module for a given Command Type 8033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * and Command Content 8043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 8053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 8063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 8073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the Instance 8083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 8093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: ProtoElement_t 8103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Type of the command (defined by the Proto Element Enumeration) 8113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 8123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: VoidPtr_t 8133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Content of the command to encode 8143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 8153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Return value, 8163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_OK if command has been encoded successfully 8173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 8183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambystatic Ret_t mgrCreateNextCommand(InstanceID_t id, SmlProtoElement_t cmdType, VoidPtr_t pContent) 8193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 8203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Definitions --- */ 8213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby InstanceInfoPtr_t pInstanceInfo; // pointer the the instance info structure for this id 8223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Ret_t rc; 8233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemPtr_t pCurrentWritePosition; // current Position from to which to write 8243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemPtr_t pBeginPosition; // saves the first position which has been written 8253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemSize_t freeSize; // size of free memory for writing 8263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #ifdef NOWSM 8293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = (InstanceInfoPtr_t)id; // ID is the instance info pointer 8303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #else 8313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Retrieve the corresponding instanceInfo structure --- */ 8323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #ifdef __SML_LITE__ /* Only ONE instance is supported in the Toolkit lite version */ 8333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = mgrGetInstanceListAnchor(); 8343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #else 8353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo = (InstanceInfoPtr_t) findInfo(id); 8363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #endif 8373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #endif 8383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pInstanceInfo==NULL) return SML_ERR_MGR_INVALID_INSTANCE_INFO; 8403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // %%% luz 2002-11-27: added NULL check as previously failed encoding will delete encoder 8413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pInstanceInfo->encoderState==NULL) return SML_ERR_MGR_INVALID_INSTANCE_INFO; 8423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Get Write Access to the workspace --- */ 8443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = smlLockWriteBuffer(id, &pCurrentWritePosition, &freeSize); 8453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (rc!=SML_ERR_OK) { 8473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // abort, unlock the buffer again without changing it's current position 8483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlUnlockWriteBuffer(id, (MemSize_t)0); 8493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return rc; 8503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // Remember the position we have started writing 8543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pBeginPosition=pCurrentWritePosition; 8553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- Call the encoder module --- */ 8583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = xltEncAppend(pInstanceInfo->encoderState, cmdType, pCurrentWritePosition+freeSize, pContent, &pCurrentWritePosition); 8593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (rc!=SML_ERR_OK) { 8613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* check for full buffer and call TransmitChunk */ 8623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (rc == SML_ERR_XLT_BUF_ERR) { 8633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // first check wether callback is defined 8643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pInstanceInfo->callbacks->transmitChunkFunc!= NULL) { 8653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // abort, unlock the buffer again without changing it's current position 8663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlUnlockWriteBuffer(id, (MemSize_t)0); 8673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // call the callback 8683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo->callbacks->transmitChunkFunc(id,NULL); 8693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // lock -> returns the amount of free buffer space 8703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlLockWriteBuffer(id, &pCurrentWritePosition, &freeSize); 8713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pBeginPosition = pCurrentWritePosition; 8723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // now try again to encode and see wether we now have enough mem available 8733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = xltEncAppend(pInstanceInfo->encoderState, cmdType, pCurrentWritePosition+freeSize, pContent, &pCurrentWritePosition); 8743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // if rc == SML_ERR_OK continue else 8753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // return the errorcode 8763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if( rc != SML_ERR_OK) 8773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlUnlockWriteBuffer(id, (MemSize_t)0); 8793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // Reset the encoder module (free the encoding object) 8803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby xltEncReset(pInstanceInfo->encoderState); 8813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // this encoding job is over! reset instanceInfo pointer 8823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo->encoderState=NULL; 8833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return rc; 8843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } else { 8873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // abort, unlock the buffer again without changing it's current position 8883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby smlUnlockWriteBuffer(id, (MemSize_t)0); 8893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // Reset the encoder module (free the encoding object) 8903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby xltEncReset(pInstanceInfo->encoderState); 8913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // this encoding job is over! reset instanceInfo pointer 8923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInstanceInfo->encoderState=NULL; 8933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return rc; 8943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* --- End Write Access to the workspace --- */ 8973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rc = smlUnlockWriteBuffer(id, (MemSize_t)pCurrentWritePosition-(MemSize_t)pBeginPosition); 8983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return rc; 8993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 9003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* eof */ 902