xmlsrv_plat/cxml_library_api/inc/nw_encoder_domencoder.h
author hgs
Wed, 23 Jun 2010 20:27:15 +0530
changeset 24 74f0b3eb154c
permissions -rw-r--r--
201024
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2000 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    20
    @package:     NW_Encoder
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
    @synopsis:    default
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
    @description: default
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
    27
#ifndef _NW_ENCODER_WRITER_HEADER_GUARD_
hgs
parents:
diff changeset
    28
#define _NW_ENCODER_WRITER_HEADER_GUARD_
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
#include <xml/cxml/nw_encoder_stringtable.h>
hgs
parents:
diff changeset
    31
#include <xml/cxml/nw_encoder_wbxmlwriter.h>
hgs
parents:
diff changeset
    32
#include <xml/cxml/nw_dom_attribute.h>
hgs
parents:
diff changeset
    33
#include <xml/cxml/nw_dom_element.h>
hgs
parents:
diff changeset
    34
#include <xml/cxml/nw_dom_text.h>
hgs
parents:
diff changeset
    35
#include <xml/cxml/nw_dom_document.h>
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
#ifdef __cplusplus
hgs
parents:
diff changeset
    38
extern "C"
hgs
parents:
diff changeset
    39
{
hgs
parents:
diff changeset
    40
#endif /* __cplusplus */
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
#define MEMORY_INCREMENT 100
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    46
    @struct:      NW_Encoder_Encoder
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
    @synopsis:    Encoder structure.
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
    @scope:       public
hgs
parents:
diff changeset
    51
    @variables:
hgs
parents:
diff changeset
    52
       NW_WBXML_Writer_t writer
hgs
parents:
diff changeset
    53
                  The writer.
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
       NW_Uint32 encoding
hgs
parents:
diff changeset
    56
                  Current encoding.
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
       NW_Encoder_StringTable_t* table
hgs
parents:
diff changeset
    59
                  The string table.
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
    @description: Encoder structure.
hgs
parents:
diff changeset
    62
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
    63
typedef struct NW_Encoder_Encoder_s{
hgs
parents:
diff changeset
    64
  NW_WBXML_Writer_t writer;
hgs
parents:
diff changeset
    65
  NW_Uint32 encoding;
hgs
parents:
diff changeset
    66
  NW_Encoder_StringTable_t* stringTable;
hgs
parents:
diff changeset
    67
  /* Some servers (for example, Wireless Villiage Oz as of January 2003)
hgs
parents:
diff changeset
    68
     don't parse the string table references so this switch controls use of
hgs
parents:
diff changeset
    69
     the string table during WBXML generation.  Set TRUE for normal WBXML.
hgs
parents:
diff changeset
    70
     Set FALSE to prevent building a string table. */
hgs
parents:
diff changeset
    71
  NW_Bool enableStringTable;
hgs
parents:
diff changeset
    72
} NW_Encoder_Encoder_t;
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
/* Deprecated - here for backward compatibility */
hgs
parents:
diff changeset
    75
typedef struct NW_Encoder_Encoder_s NW_Encoder_t;
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    79
    @function:    NW_Encoder_encodeWBXML
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
    @synopsis:    Encodes the document represented by the given
hgs
parents:
diff changeset
    82
                  NW_DOM_DocumentNode_t.
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
    @scope:       public
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
    @parameters:
hgs
parents:
diff changeset
    87
       [in] NW_Encoder_Encoder_t* encoder
hgs
parents:
diff changeset
    88
                  The encoder.
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
       [in] NW_DOM_DocumentNode_t* docNode
hgs
parents:
diff changeset
    91
                  Document node for the document to be encoded.
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
       [in] NW_Bool enableStringTableUse
hgs
parents:
diff changeset
    94
                  Set to TRUE for normal WBXML.
hgs
parents:
diff changeset
    95
                  Set to FALSE to prevent use of the string table.
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
       [out] NW_Uint32* length
hgs
parents:
diff changeset
    98
                  Length of the encoded buffer.
hgs
parents:
diff changeset
    99
hgs
parents:
diff changeset
   100
       [out] NW_Byte** buffer
hgs
parents:
diff changeset
   101
                  The encoded buffer.
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
    @description: Encodes the document represented by the given
hgs
parents:
diff changeset
   104
                  NW_DOM_DocumentNode_t.
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   107
                  Status of operation.
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   110
                  Document encoded.
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
       [NW_STAT_BAD_INPUT_PARAM]
hgs
parents:
diff changeset
   113
                  Required parameter is NULL.
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   116
                  Memory could not be allocated for buffer.
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
       [NW_STAT_DOM_NODE_TYPE_ERR]
hgs
parents:
diff changeset
   119
                  Internal error.
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   122
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   123
NW_Encoder_encodeWBXML(NW_Encoder_Encoder_t* encoder,
hgs
parents:
diff changeset
   124
                       NW_DOM_DocumentNode_t* docNode,
hgs
parents:
diff changeset
   125
                       NW_Bool enableStringTableUse,
hgs
parents:
diff changeset
   126
                       NW_Uint32* length,
hgs
parents:
diff changeset
   127
                       NW_Byte** buffer);
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
#ifdef __cplusplus
hgs
parents:
diff changeset
   130
} /* extern "C" { */
hgs
parents:
diff changeset
   131
#endif /* __cplusplus */
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
#endif