1/*************************************************************************/ 2/* module: Type definitions for SyncML */ 3/* */ 4/* file: SMLDef.h */ 5/* target system: all */ 6/* target OS: all */ 7/* */ 8/* Description: */ 9/* Platform independent header with syncML types and definitions */ 10/*************************************************************************/ 11 12 13/* 14 * Copyright Notice 15 * Copyright (c) Ericsson, IBM, Lotus, Matsushita Communication 16 * Industrial Co., Ltd., Motorola, Nokia, Openwave Systems, Inc., 17 * Palm, Inc., Psion, Starfish Software, Symbian, Ltd. (2001). 18 * All Rights Reserved. 19 * Implementation of all or part of any Specification may require 20 * licenses under third party intellectual property rights, 21 * including without limitation, patent rights (such a third party 22 * may or may not be a Supporter). The Sponsors of the Specification 23 * are not responsible and shall not be held responsible in any 24 * manner for identifying or failing to identify any or all such 25 * third party intellectual property rights. 26 * 27 * THIS DOCUMENT AND THE INFORMATION CONTAINED HEREIN ARE PROVIDED 28 * ON AN "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND AND ERICSSON, IBM, 29 * LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO. LTD, MOTOROLA, 30 * NOKIA, PALM INC., PSION, STARFISH SOFTWARE AND ALL OTHER SYNCML 31 * SPONSORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 32 * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 33 * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 34 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT 35 * SHALL ERICSSON, IBM, LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO., 36 * LTD, MOTOROLA, NOKIA, PALM INC., PSION, STARFISH SOFTWARE OR ANY 37 * OTHER SYNCML SPONSOR BE LIABLE TO ANY PARTY FOR ANY LOSS OF 38 * PROFITS, LOSS OF BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF 39 * BUSINESS, OR FOR DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, 40 * PUNITIVE OR CONSEQUENTIAL DAMAGES OF ANY KIND IN CONNECTION WITH 41 * THIS DOCUMENT OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED 42 * OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE. 43 * 44 * The above notice and this paragraph must be included on all copies 45 * of this document that are made. 46 * 47 */ 48 49 50 51 52#ifndef _SML_DEF_H 53 #define _SML_DEF_H 54 55 56 57/************************************************************************* 58 * Definitions 59 *************************************************************************/ 60 61 62 63/** 64 * include target/compiler specific defines/options/settings 65 **/ 66#include <define.h> 67 68 69/** 70 * =================================== 71 * Common all-purpose type definitions 72 * =================================== 73 **/ 74 75 76 77/** 78 * ================================== 79 * Basic data types 80 * ================================== 81 **/ 82typedef short Short_t; // short integer, 16 Bytes 83typedef long Long_t; // long integer, 32 Bytes 84typedef char* String_t; // String pointer, 85typedef unsigned char Byte_t; // a single byte 86typedef Byte_t Boolean_t; // a boolean 87#ifndef NULL // a NULL pointer 88 #define NULL (void*) 0 89#endif 90 91 92typedef Short_t Ret_t; // Return Type of API Commands 93typedef Long_t Length_t; // System dependent string length 94typedef Short_t MemHandle_t; // Memory object Handle 95typedef unsigned char *MemPtr_t; // Memory object Pointer 96typedef void *VoidPtr_t; // Void Pointer 97typedef Long_t MemSize_t; // System dependent memory object size 98typedef unsigned char MemByte_t; // Memory element 99typedef unsigned int Flag_t; // A generic flag type. This type is used to 100 // declare variables in structures wherever 101 // flags are used. 102 103 104 105 106/** 107 * ================================== 108 * Definitions used in the SyncML API 109 * ================================== 110 **/ 111 112 113/** 114 * Application callback function displaying output strings to the user 115 **/ 116typedef void (*smlPrintFunc) (String_t outputString); 117 118 119/** 120 * structure describing the options and setting of this syncml process 121 **/ 122typedef struct sml_options_s { 123 smlPrintFunc defaultPrintFunc; // default application callback for displaying strings, 124 MemSize_t maxWorkspaceAvailMem; // size which all workspaces in total MUST not exceed 125} *SmlOptionsPtr_t, SmlOptions_t; 126 127 128/** 129 * Reference of an instance 130 **/ 131#ifdef NOWSM 132typedef void *InstanceID_t; // without wsm, instance ID is direct pointer to instance info 133#else 134typedef MemHandle_t InstanceID_t; // Handle, used as a unique ID of 135#endif // an synchronization instance 136 137 138/** 139 * Type of used encoding 140 **/ 141typedef enum { 142 SML_UNDEF = 0, 143 SML_WBXML, 144 SML_XML 145} SmlEncoding_t; 146 147 148/** %%% added luz 2003-07-31: 149 * SyncML version 150 **/ 151typedef enum { 152 SML_VERS_UNDEF = 0, 153 SML_VERS_1_0, 154 SML_VERS_1_1, 155 SML_VERS_1_2, 156 SML_NUM_VERS 157} SmlVersion_t; 158 159/** 160 * structure describing the options of an instance, 161 **/ 162typedef struct sml_instance_options_s { 163 SmlEncoding_t encoding; // Used encoding type, 164 MemSize_t workspaceSize; // size of the workspace to allocate (instance buffer size if NOWSM defined) 165 #ifndef NOWSM 166 String_t workspaceName; // name of the workspace 167 #else 168 MemSize_t maxOutgoingSize; // max size of outgoing message, 0 if no restriction 169 #endif 170} *SmlInstanceOptionsPtr_t, SmlInstanceOptions_t; 171 172 173/** 174 * Processing modes 175 **/ 176typedef enum { 177 SML_DO_NOTHING = 0, 178 SML_FIRST_COMMAND, 179 SML_NEXT_COMMAND, 180 SML_NEXT_MESSAGE, 181 SML_ALL_COMMANDS 182} SmlProcessMode_t; 183 184 185/** 186 * Requested buffer pointer position 187 **/ 188typedef enum { 189 SML_FIRST_DATA_ITEM = 0, 190 SML_FIRST_FREE_ITEM 191} SmlBufPtrPos_t; 192 193 194 195/** 196 * SyncML Protocol Management and Command Elements (PE) 197 **/ 198typedef enum { 199 SML_PE_UNDEF = 0, 200 SML_PE_ERROR, 201 SML_PE_ADD, 202 SML_PE_ALERT, 203 SML_PE_ATOMIC_START, 204 SML_PE_ATOMIC_END, 205 SML_PE_COPY, 206 SML_PE_DELETE, 207 SML_PE_EXEC, 208 SML_PE_GET, 209 SML_PE_MAP, 210 SML_PE_PUT, 211 SML_PE_RESULTS, 212 SML_PE_SEARCH, 213 SML_PE_SEQUENCE_START, 214 SML_PE_SEQUENCE_END, 215 SML_PE_STATUS, 216 SML_PE_SYNC_START, 217 SML_PE_SYNC_END, 218 SML_PE_REPLACE, 219 SML_PE_HEADER, 220 SML_PE_PUT_GET, 221 SML_PE_CMD_GROUP, 222 SML_PE_GENERIC, 223 SML_PE_FINAL 224} SmlProtoElement_t; 225 226typedef struct 227{ 228 Byte_t token; 229 String_t escape_str; 230} ESCAPE_CHAR_TABLE_T; 231 232#endif 233