Home | History | Annotate | Download | only in src
      1 /*
      2  * Copyright Notice
      3  * Copyright (c) Ericsson, IBM, Lotus, Matsushita Communication
      4  * Industrial Co., Ltd., Motorola, Nokia, Openwave Systems, Inc.,
      5  * Palm, Inc., Psion, Starfish Software, Symbian, Ltd. (2001).
      6  * All Rights Reserved.
      7  * Implementation of all or part of any Specification may require
      8  * licenses under third party intellectual property rights,
      9  * including without limitation, patent rights (such a third party
     10  * may or may not be a Supporter). The Sponsors of the Specification
     11  * are not responsible and shall not be held responsible in any
     12  * manner for identifying or failing to identify any or all such
     13  * third party intellectual property rights.
     14  *
     15  * THIS DOCUMENT AND THE INFORMATION CONTAINED HEREIN ARE PROVIDED
     16  * ON AN "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND AND ERICSSON, IBM,
     17  * LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO. LTD, MOTOROLA,
     18  * NOKIA, PALM INC., PSION, STARFISH SOFTWARE AND ALL OTHER SYNCML
     19  * SPONSORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
     20  * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
     21  * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
     22  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
     23  * SHALL ERICSSON, IBM, LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO.,
     24  * LTD, MOTOROLA, NOKIA, PALM INC., PSION, STARFISH SOFTWARE OR ANY
     25  * OTHER SYNCML SPONSOR BE LIABLE TO ANY PARTY FOR ANY LOSS OF
     26  * PROFITS, LOSS OF BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF
     27  * BUSINESS, OR FOR DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL,
     28  * PUNITIVE OR CONSEQUENTIAL DAMAGES OF ANY KIND IN CONNECTION WITH
     29  * THIS DOCUMENT OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED
     30  * OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
     31  *
     32  * The above notice and this paragraph must be included on all copies
     33  * of this document that are made.
     34  *
     35  */
     36 /*************************************************************************/
     37 /*  Definitions                                                          */
     38 /*************************************************************************/
     39 
     40 #ifndef _XLT_ENC_COM_H
     41 #define _XLT_ENC_COM_H
     42 
     43 #include <smldef.h>
     44 #include <smldtd.h>
     45 #include <sml.h>
     46 
     47 #include "xlttags.h"
     48 
     49 
     50 #ifdef _cplusplus
     51 extern "C" {
     52 #endif
     53 
     54 // flags if a (WB)XML block is required or optional
     55 typedef enum {
     56   OPTIONAL = 0,
     57   REQUIRED
     58 } XltRO_t;
     59 
     60 /* Tag Types (TT) - begin tags, end tags, ...
     61  */
     62 typedef enum {
     63   TT_END = 0,
     64   TT_BEG,
     65   TT_ALL
     66 } XltTagType_t;
     67 
     68 /* Structure elements which are not directly relied to a tag
     69 */
     70 typedef enum {
     71   ITEM_LIST,
     72   TARGET_LIST,
     73   SOURCE_LIST,
     74   META_LIST,
     75   MAPITEM_LIST,
     76   TARGETREF_LIST,
     77   SOURCEREF_LIST
     78 } XltListType_t;
     79 
     80 // Type for storing free mem size evaluation information
     81 typedef struct XltSpaceEvaluation_s
     82 {
     83   MemSize_t written_bytes;
     84   MemSize_t end_tag_size;
     85   // %%% luz 2002-09-03: evaluation needs private shadow copies of these:
     86   SmlPcdataExtension_t cur_ext;
     87   SmlPcdataExtension_t last_ext;
     88 } XltSpaceEvaluation_t, *XltSpaceEvaluationPtr_t;
     89 
     90 
     91 typedef struct bufferMgmt_s
     92 {
     93   MemPtr_t smlXltBufferP;
     94   MemPtr_t smlXltStoreBufP;
     95   MemSize_t smlXltWrittenBytes;
     96   MemSize_t smlXltBufferLen;
     97   XltTagID_t           switchExtTag;
     98   SmlPcdataExtension_t smlCurExt;
     99   SmlPcdataExtension_t smlLastExt;
    100   SmlPcdataExtension_t smlActiveExt;
    101   MemSize_t endTagSize;
    102   Boolean_t spaceEvaluation;
    103   // %%% luz:2003-04-24: added syncmlvers
    104   // %%% luz:2003-07-31: made it an enum, now called vers
    105   SmlVersion_t vers;
    106 } BufferMgmt_t, *BufferMgmtPtr_t;
    107 
    108 /**
    109  * FUNCTION: xltAddToBuffer
    110  *
    111  * Add a string to the global buffer
    112  *
    113  * PRE-Condition:  pContent contains some content bytes to write to the (WB) XML buffer
    114  *
    115  * POST-Condition: content is written to the buffer
    116  *
    117  * IN:             pContent, the character pointer referencing the content to
    118  *                           write to the buffer
    119  *                 size, the content length
    120  *
    121  * IN/OUT:         pBufMgr, pointer to a structure containing buffer management elements
    122  *
    123  * RETURN:         shows error codes of function,
    124  *                 0, if OK
    125  */
    126 Ret_t xltAddToBuffer(const MemPtr_t pContent, MemSize_t size, BufferMgmtPtr_t pBufMgr);
    127 
    128 #ifdef _cplusplus
    129 }
    130 #endif
    131 
    132 #endif
    133