xmlsrv_plat/cxml_library_api/inc/nw_tinydom.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 - 2001 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_TinyDom
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
hgs
parents:
diff changeset
    28
#ifndef NW_TINY_DOM_H
hgs
parents:
diff changeset
    29
#define NW_TINY_DOM_H
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#include <xml/cxml/cxml_proj.h>
hgs
parents:
diff changeset
    32
#include <xml/cxml/nw_tinytree.h>
hgs
parents:
diff changeset
    33
#include <xml/cxml/nw_wbxml_document.h>
hgs
parents:
diff changeset
    34
#include <xml/cxml/nw_wbxml_parse.h>
hgs
parents:
diff changeset
    35
#include <xml/cxml/nw_wbxml_opaque.h>
hgs
parents:
diff changeset
    36
#include <xml/cxml/nw_encoder_wbxmlwriter.h>
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
#ifdef __cplusplus
hgs
parents:
diff changeset
    39
extern "C" {
hgs
parents:
diff changeset
    40
#endif /* __cplusplus */
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
enum NW_TinyDom_ExtensionType_e {
hgs
parents:
diff changeset
    46
  NW_TINYDOM_EXTENSION_TYPE_NORMAL,
hgs
parents:
diff changeset
    47
  NW_TINYDOM_EXTENSION_TYPE_EXT_T_INTEGER
hgs
parents:
diff changeset
    48
};
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    52
    @struct:      NW_TinyDom_Extension
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
    @synopsis:    Extension structure.
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
    @scope:       public
hgs
parents:
diff changeset
    57
    @variables:
hgs
parents:
diff changeset
    58
       NW_Uint32 token
hgs
parents:
diff changeset
    59
                  Token.
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
       NW_String_t string
hgs
parents:
diff changeset
    62
                  Extension string.
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
    @description: Extension structure.
hgs
parents:
diff changeset
    65
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
    66
typedef struct NW_TinyDom_Extension_s{
hgs
parents:
diff changeset
    67
  /* type is either NW_TINYDOM_EXTENSION_TYPE_NORMAL or
hgs
parents:
diff changeset
    68
     NW_TINYDOM_EXTENSION_TYPE_EXT_T_INTEGER */
hgs
parents:
diff changeset
    69
  NW_Uint8 type;
hgs
parents:
diff changeset
    70
  NW_Uint32 token;
hgs
parents:
diff changeset
    71
  union {
hgs
parents:
diff changeset
    72
    NW_String_t string;
hgs
parents:
diff changeset
    73
    NW_Uint32 x;
hgs
parents:
diff changeset
    74
  } value;
hgs
parents:
diff changeset
    75
} NW_TinyDom_Extension_t;
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    79
    @union:      NW_TinyDom_AttrValComponent
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
    @synopsis:    Attribute value component union.
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
    @scope:       public
hgs
parents:
diff changeset
    84
    @variables:
hgs
parents:
diff changeset
    85
       NW_Uint32 value_token
hgs
parents:
diff changeset
    86
                  token
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
       NW_String_t string
hgs
parents:
diff changeset
    89
                  string
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
       NW_TinyDom_Extension_t ext
hgs
parents:
diff changeset
    92
                  extension
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
       NW_Uint32 entity
hgs
parents:
diff changeset
    95
                  entity.
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
       NW_WBXML_Opaque_t opaque
hgs
parents:
diff changeset
    98
                  opaque
hgs
parents:
diff changeset
    99
hgs
parents:
diff changeset
   100
    @description: Union of all possible attribute value types.
hgs
parents:
diff changeset
   101
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   102
typedef union NW_TinyDom_AttrValComponent_u{
hgs
parents:
diff changeset
   103
  NW_Uint32 value_token;
hgs
parents:
diff changeset
   104
  NW_String_t string;
hgs
parents:
diff changeset
   105
  NW_TinyDom_Extension_t ext;
hgs
parents:
diff changeset
   106
  NW_Uint32 entity;
hgs
parents:
diff changeset
   107
  NW_WBXML_Opaque_t opaque;
hgs
parents:
diff changeset
   108
}NW_TinyDom_AttrValComponent_t;
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   112
    @struct:       NW_TinyDom_AttrVal
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
    @synopsis:    Attribute value.
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
    @scope:       public
hgs
parents:
diff changeset
   117
    @variables:
hgs
parents:
diff changeset
   118
       NW_Uint32 type
hgs
parents:
diff changeset
   119
                  type
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
       NW_TinyDom_AttrValComponent_t component
hgs
parents:
diff changeset
   122
                  attribute value union of all possible types.
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
    @description: An attribute value has a type info field and a union of
hgs
parents:
diff changeset
   125
                  all the possible types. The type info values are defined
hgs
parents:
diff changeset
   126
                  in NW_WBXML_Attribute.h. This type is designed to be
hgs
parents:
diff changeset
   127
                  passed as an in/out param to the attribute value iterator.
hgs
parents:
diff changeset
   128
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   129
typedef struct NW_TinyDom_AttrVal_s {
hgs
parents:
diff changeset
   130
  NW_Uint32 type;
hgs
parents:
diff changeset
   131
  NW_TinyDom_AttrValComponent_t component;
hgs
parents:
diff changeset
   132
} NW_TinyDom_AttrVal_t;
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
/* Node type bits */
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
#define T_DOM_NODE_DOC          (NW_Uint16)00
hgs
parents:
diff changeset
   138
#define T_DOM_NODE_TAG          (NW_Uint16)01
hgs
parents:
diff changeset
   139
#define T_DOM_NODE_ATTR         (NW_Uint16)02
hgs
parents:
diff changeset
   140
#define T_DOM_NODE_TEXT         (NW_Uint16)03
hgs
parents:
diff changeset
   141
#define T_DOM_NODE_PI           (NW_Uint16)04
hgs
parents:
diff changeset
   142
#define T_DOM_NODE_COMMENT      (NW_Uint16)05
hgs
parents:
diff changeset
   143
#define T_DOM_NODE_CDATASECTION (NW_Uint16)06
hgs
parents:
diff changeset
   144
#define T_DOM_NODE_XML          (NW_Uint16)80
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   148
    @struct:      NW_TinyDom_Tree
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
    @synopsis:    Wrapper for tree components.
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
    @scope:       public
hgs
parents:
diff changeset
   153
    @variables:
hgs
parents:
diff changeset
   154
       NW_WBXML_Document_t* doc
hgs
parents:
diff changeset
   155
                  The document.
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
       NW_TinyTree_t tree
hgs
parents:
diff changeset
   158
                  The tree.
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
       NW_WBXML_Parser_t* parser
hgs
parents:
diff changeset
   161
                  Parser associated with this tree.
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
       NW_WBXML_Writer_t* writer
hgs
parents:
diff changeset
   164
                  Writer for this tree.
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
       NW_TinyTree_Node_t* root_node
hgs
parents:
diff changeset
   167
                  Root node of tree.
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
    @description:  Wrapper for tree components.
hgs
parents:
diff changeset
   170
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   171
typedef struct NW_TinyDom_Tree_s{
hgs
parents:
diff changeset
   172
  NW_WBXML_Document_t* doc;
hgs
parents:
diff changeset
   173
  NW_TinyTree_t tree;
hgs
parents:
diff changeset
   174
  NW_WBXML_Parser_t* parser;
hgs
parents:
diff changeset
   175
  NW_WBXML_Writer_t* writer;
hgs
parents:
diff changeset
   176
  NW_TinyTree_Node_t* root_node;
hgs
parents:
diff changeset
   177
}NW_TinyDom_Tree_t;
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   181
    @struct:      NW_TinyDom_Parser
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
    @synopsis:    Parser structure.
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
    @scope:       public
hgs
parents:
diff changeset
   186
    @variables:
hgs
parents:
diff changeset
   187
       NW_Uint32 state
hgs
parents:
diff changeset
   188
                  State.
hgs
parents:
diff changeset
   189
hgs
parents:
diff changeset
   190
       NW_TinyTree_Offset_t node_count
hgs
parents:
diff changeset
   191
                  default
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
       NW_TinyTree_Offset_t cp_count
hgs
parents:
diff changeset
   194
                  Current offset.
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
       NW_TinyDom_Tree_t* dom_tree
hgs
parents:
diff changeset
   197
                  The tree.
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
       NW_TinyTree_Node_t* current_node
hgs
parents:
diff changeset
   200
                  Present position in tree.
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
       NW_TinyTree_Offset_t content_offset
hgs
parents:
diff changeset
   203
                  Present offset into buffer.
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205
    @description: Parser structure.
hgs
parents:
diff changeset
   206
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   207
typedef struct NW_TinyDom_Parser_s{
hgs
parents:
diff changeset
   208
  NW_Uint32 state;
hgs
parents:
diff changeset
   209
  NW_TinyTree_Offset_t node_count;
hgs
parents:
diff changeset
   210
  NW_TinyTree_Offset_t cp_count;
hgs
parents:
diff changeset
   211
  NW_TinyDom_Tree_t* dom_tree;
hgs
parents:
diff changeset
   212
  NW_TinyTree_Node_t* current_node;
hgs
parents:
diff changeset
   213
  /* Offset where current content begins */
hgs
parents:
diff changeset
   214
  NW_TinyTree_Offset_t content_offset;
hgs
parents:
diff changeset
   215
}NW_TinyDom_Parser_t;
hgs
parents:
diff changeset
   216
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   219
    @function:    NW_TinyDom_Tree_construct
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
    @synopsis:    Constructor.
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
    @scope:       public
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
    @parameters:
hgs
parents:
diff changeset
   226
       [in-out] NW_TinyDom_Tree_t* domTree
hgs
parents:
diff changeset
   227
                  The tree.
hgs
parents:
diff changeset
   228
hgs
parents:
diff changeset
   229
       [in] NW_WBXML_Parser_t* wbxmlParser
hgs
parents:
diff changeset
   230
                  The parser
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
       [in] NW_WBXML_Document_t* doc
hgs
parents:
diff changeset
   233
                  The document.
hgs
parents:
diff changeset
   234
hgs
parents:
diff changeset
   235
       [in] NW_WBXML_Writer_t* writer
hgs
parents:
diff changeset
   236
                  The writer.
hgs
parents:
diff changeset
   237
hgs
parents:
diff changeset
   238
    @description: Constructor.
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   241
void
hgs
parents:
diff changeset
   242
NW_TinyDom_Tree_construct(NW_TinyDom_Tree_t* domTree,
hgs
parents:
diff changeset
   243
                          NW_WBXML_Parser_t* wbxmlParser,
hgs
parents:
diff changeset
   244
                          NW_WBXML_Document_t* doc,
hgs
parents:
diff changeset
   245
                          NW_WBXML_Writer_t* writer);
hgs
parents:
diff changeset
   246
hgs
parents:
diff changeset
   247
hgs
parents:
diff changeset
   248
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   249
    @function:    NW_TinyDom_Tree_destruct
hgs
parents:
diff changeset
   250
hgs
parents:
diff changeset
   251
    @synopsis:    Destructor.
hgs
parents:
diff changeset
   252
hgs
parents:
diff changeset
   253
    @scope:       public
hgs
parents:
diff changeset
   254
hgs
parents:
diff changeset
   255
    @parameters:
hgs
parents:
diff changeset
   256
       [in-out] NW_TinyDom_Tree_t* domTree
hgs
parents:
diff changeset
   257
                  The DOM tree.
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
    @description: Destructor.
hgs
parents:
diff changeset
   260
hgs
parents:
diff changeset
   261
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   262
void
hgs
parents:
diff changeset
   263
NW_TinyDom_Tree_destruct(NW_TinyDom_Tree_t* domTree);
hgs
parents:
diff changeset
   264
hgs
parents:
diff changeset
   265
hgs
parents:
diff changeset
   266
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   267
    @function:    NW_TinyDom_Parser_construct
hgs
parents:
diff changeset
   268
hgs
parents:
diff changeset
   269
    @synopsis:    Constructor.
hgs
parents:
diff changeset
   270
hgs
parents:
diff changeset
   271
    @scope:       public
hgs
parents:
diff changeset
   272
hgs
parents:
diff changeset
   273
    @parameters:
hgs
parents:
diff changeset
   274
       [in] NW_TinyDom_Parser_t* domParser
hgs
parents:
diff changeset
   275
                  The DOM parser.
hgs
parents:
diff changeset
   276
hgs
parents:
diff changeset
   277
       [in] NW_TinyDom_Tree_t* domTree
hgs
parents:
diff changeset
   278
                  The DOM tree.
hgs
parents:
diff changeset
   279
hgs
parents:
diff changeset
   280
    @description: Constructor.
hgs
parents:
diff changeset
   281
hgs
parents:
diff changeset
   282
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   283
IMPORT_C void
hgs
parents:
diff changeset
   284
NW_TinyDom_Parser_construct(NW_TinyDom_Parser_t* domParser,
hgs
parents:
diff changeset
   285
                            NW_TinyDom_Tree_t* domTree);
hgs
parents:
diff changeset
   286
hgs
parents:
diff changeset
   287
hgs
parents:
diff changeset
   288
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   289
    @function:    NW_TinyDom_Parser_destruct
hgs
parents:
diff changeset
   290
hgs
parents:
diff changeset
   291
    @synopsis:    Desctructor.
hgs
parents:
diff changeset
   292
hgs
parents:
diff changeset
   293
    @scope:       public
hgs
parents:
diff changeset
   294
hgs
parents:
diff changeset
   295
    @parameters:
hgs
parents:
diff changeset
   296
       [in-out] NW_TinyDom_Parser_t* domParser
hgs
parents:
diff changeset
   297
                  The DOM parser.
hgs
parents:
diff changeset
   298
hgs
parents:
diff changeset
   299
    @description: Destructor.
hgs
parents:
diff changeset
   300
hgs
parents:
diff changeset
   301
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   302
void
hgs
parents:
diff changeset
   303
NW_TinyDom_Parser_destruct(NW_TinyDom_Parser_t* domParser);
hgs
parents:
diff changeset
   304
hgs
parents:
diff changeset
   305
hgs
parents:
diff changeset
   306
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   307
    @function:    NW_TinyDom_Parser_buildTree
hgs
parents:
diff changeset
   308
hgs
parents:
diff changeset
   309
    @synopsis:    Build tiny DOM tree.
hgs
parents:
diff changeset
   310
hgs
parents:
diff changeset
   311
    @scope:       public
hgs
parents:
diff changeset
   312
hgs
parents:
diff changeset
   313
    @parameters:
hgs
parents:
diff changeset
   314
       [in] NW_TinyDom_Parser_t* domParser
hgs
parents:
diff changeset
   315
                  The DOM parser.
hgs
parents:
diff changeset
   316
hgs
parents:
diff changeset
   317
       [in] char* buffer
hgs
parents:
diff changeset
   318
                  The buffer containing the document data.
hgs
parents:
diff changeset
   319
hgs
parents:
diff changeset
   320
       [in] NW_Uint32 buffsize
hgs
parents:
diff changeset
   321
                  The size of the document buffer.
hgs
parents:
diff changeset
   322
hgs
parents:
diff changeset
   323
       [in] NW_Bool freeBuff
hgs
parents:
diff changeset
   324
                  Flag
hgs
parents:
diff changeset
   325
hgs
parents:
diff changeset
   326
    @description: Builds a DOM tree. The DOM parser must previously have
hgs
parents:
diff changeset
   327
                  been initialized to use a parser (WBXML or XML) that
hgs
parents:
diff changeset
   328
                  knows how to parse the contents of the buffer.Build tiny
hgs
parents:
diff changeset
   329
                  DOM tree. Run Pass1 and Pass 2.
hgs
parents:
diff changeset
   330
hgs
parents:
diff changeset
   331
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   332
                  default
hgs
parents:
diff changeset
   333
hgs
parents:
diff changeset
   334
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   335
                  Tree built.
hgs
parents:
diff changeset
   336
hgs
parents:
diff changeset
   337
       [NW_STAT_WBXML_ERROR_BYTECODE]
hgs
parents:
diff changeset
   338
                  General error.
hgs
parents:
diff changeset
   339
hgs
parents:
diff changeset
   340
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   341
                  Out of memory.
hgs
parents:
diff changeset
   342
hgs
parents:
diff changeset
   343
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   344
NW_Status_t
hgs
parents:
diff changeset
   345
NW_TinyDom_Parser_buildTree(NW_TinyDom_Parser_t* domParser,
hgs
parents:
diff changeset
   346
                            char* buffer,
hgs
parents:
diff changeset
   347
                            NW_Uint32 buffsize,
hgs
parents:
diff changeset
   348
                            NW_Bool freeBuff);
hgs
parents:
diff changeset
   349
hgs
parents:
diff changeset
   350
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   351
    @function:    NW_TinyDom_Parser_incrementalBuildTree
hgs
parents:
diff changeset
   352
hgs
parents:
diff changeset
   353
    @synopsis:    build/append tiny DOM tree.
hgs
parents:
diff changeset
   354
hgs
parents:
diff changeset
   355
    @scope:       public
hgs
parents:
diff changeset
   356
hgs
parents:
diff changeset
   357
    @parameters:
hgs
parents:
diff changeset
   358
       [in] NW_TinyDom_Parser_t* domParser
hgs
parents:
diff changeset
   359
                  The DOM parser.
hgs
parents:
diff changeset
   360
hgs
parents:
diff changeset
   361
       [in] char* buffer
hgs
parents:
diff changeset
   362
                  The buffer containing the document data.
hgs
parents:
diff changeset
   363
hgs
parents:
diff changeset
   364
       [in] NW_Uint32 buffsize
hgs
parents:
diff changeset
   365
                  The size of the document buffer.
hgs
parents:
diff changeset
   366
hgs
parents:
diff changeset
   367
       [in] NW_Bool freeBuff
hgs
parents:
diff changeset
   368
                  Flag
hgs
parents:
diff changeset
   369
hgs
parents:
diff changeset
   370
    @description: Builds a DOM tree. The DOM parser must previously have
hgs
parents:
diff changeset
   371
                  been initialized to use a parser (WBXML or XML) that
hgs
parents:
diff changeset
   372
                  knows how to parse the contents of the buffer.Build tiny
hgs
parents:
diff changeset
   373
                  DOM tree. Run Pass1 and Pass 2.
hgs
parents:
diff changeset
   374
hgs
parents:
diff changeset
   375
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   376
                  default
hgs
parents:
diff changeset
   377
hgs
parents:
diff changeset
   378
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   379
                  Tree built.
hgs
parents:
diff changeset
   380
hgs
parents:
diff changeset
   381
       [NW_STAT_WBXML_ERROR_BYTECODE]
hgs
parents:
diff changeset
   382
                  General error.
hgs
parents:
diff changeset
   383
hgs
parents:
diff changeset
   384
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   385
                  Out of memory.
hgs
parents:
diff changeset
   386
hgs
parents:
diff changeset
   387
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   388
NW_Status_t
hgs
parents:
diff changeset
   389
NW_TinyDom_Parser_incrementalBuildTree(NW_TinyDom_Parser_t* domParser,
hgs
parents:
diff changeset
   390
                            char* buffer,
hgs
parents:
diff changeset
   391
                            NW_Uint32 buffsize,
hgs
parents:
diff changeset
   392
                            NW_Bool freeBuff,
hgs
parents:
diff changeset
   393
                            NW_Int32 lastValid);
hgs
parents:
diff changeset
   394
hgs
parents:
diff changeset
   395
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   396
    @function:    NW_TinyDom_Node_getType
hgs
parents:
diff changeset
   397
hgs
parents:
diff changeset
   398
    @synopsis:    Get node type.
hgs
parents:
diff changeset
   399
hgs
parents:
diff changeset
   400
    @scope:       public
hgs
parents:
diff changeset
   401
hgs
parents:
diff changeset
   402
    @parameters:
hgs
parents:
diff changeset
   403
       [in] NW_TinyTree_Node_t* node
hgs
parents:
diff changeset
   404
                  The DOM parser.
hgs
parents:
diff changeset
   405
hgs
parents:
diff changeset
   406
    @description: Get node type.
hgs
parents:
diff changeset
   407
hgs
parents:
diff changeset
   408
    @returns:     NW_Uint16
hgs
parents:
diff changeset
   409
                  Node flag.
hgs
parents:
diff changeset
   410
hgs
parents:
diff changeset
   411
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   412
NW_Uint16
hgs
parents:
diff changeset
   413
NW_TinyDom_Node_getType(NW_TinyTree_Node_t* node);
hgs
parents:
diff changeset
   414
hgs
parents:
diff changeset
   415
hgs
parents:
diff changeset
   416
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   417
    @struct:      NW_TinyDom_ListIterator
hgs
parents:
diff changeset
   418
hgs
parents:
diff changeset
   419
    @synopsis:    ListIterator structure.
hgs
parents:
diff changeset
   420
hgs
parents:
diff changeset
   421
    @scope:       public
hgs
parents:
diff changeset
   422
    @variables:
hgs
parents:
diff changeset
   423
       NW_Uint32 state
hgs
parents:
diff changeset
   424
                  Iterator state.
hgs
parents:
diff changeset
   425
hgs
parents:
diff changeset
   426
       void* segment
hgs
parents:
diff changeset
   427
                  Segment
hgs
parents:
diff changeset
   428
hgs
parents:
diff changeset
   429
       NW_TinyTree_Offset_t segSize
hgs
parents:
diff changeset
   430
                  Segment size
hgs
parents:
diff changeset
   431
hgs
parents:
diff changeset
   432
       NW_TinyTree_Offset_t offset
hgs
parents:
diff changeset
   433
                  Offset into document.
hgs
parents:
diff changeset
   434
hgs
parents:
diff changeset
   435
       NW_TinyDom_Parser_t* tiny_parser
hgs
parents:
diff changeset
   436
                  Parser used for iteration.
hgs
parents:
diff changeset
   437
hgs
parents:
diff changeset
   438
       void* context
hgs
parents:
diff changeset
   439
                  Context.
hgs
parents:
diff changeset
   440
hgs
parents:
diff changeset
   441
    @description: ListIterator structure.
hgs
parents:
diff changeset
   442
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   443
typedef struct NW_TinyDom_ListIterator_s {
hgs
parents:
diff changeset
   444
  NW_Uint32 state;
hgs
parents:
diff changeset
   445
  void* segment;
hgs
parents:
diff changeset
   446
  NW_TinyTree_Offset_t segSize;
hgs
parents:
diff changeset
   447
  NW_TinyTree_Offset_t offset;
hgs
parents:
diff changeset
   448
  NW_TinyDom_Parser_t* tiny_parser;
hgs
parents:
diff changeset
   449
  void* context;
hgs
parents:
diff changeset
   450
}NW_TinyDom_ListIterator_t;
hgs
parents:
diff changeset
   451
hgs
parents:
diff changeset
   452
hgs
parents:
diff changeset
   453
/* Tiny dom routines to support tags */
hgs
parents:
diff changeset
   454
hgs
parents:
diff changeset
   455
hgs
parents:
diff changeset
   456
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   457
    @struct:      NW_TinyDom_Tag
hgs
parents:
diff changeset
   458
hgs
parents:
diff changeset
   459
    @synopsis:    Tag structure.
hgs
parents:
diff changeset
   460
hgs
parents:
diff changeset
   461
    @scope:       public
hgs
parents:
diff changeset
   462
    @variables:
hgs
parents:
diff changeset
   463
       NW_TinyDom_Parser_t* tiny_parser
hgs
parents:
diff changeset
   464
                  This parser.
hgs
parents:
diff changeset
   465
hgs
parents:
diff changeset
   466
       NW_Uint32 fq_token
hgs
parents:
diff changeset
   467
                  Token with codepage and attribute/element tag.
hgs
parents:
diff changeset
   468
hgs
parents:
diff changeset
   469
       NW_Uint32 name_index
hgs
parents:
diff changeset
   470
                  Index of first character of name into string table.
hgs
parents:
diff changeset
   471
hgs
parents:
diff changeset
   472
    @description: Tag structure.
hgs
parents:
diff changeset
   473
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   474
typedef struct NW_TinyDom_Tag_s {
hgs
parents:
diff changeset
   475
  NW_TinyDom_Parser_t* tiny_parser;
hgs
parents:
diff changeset
   476
  NW_Uint32 fq_token;
hgs
parents:
diff changeset
   477
  NW_Uint32 name_index;
hgs
parents:
diff changeset
   478
}NW_TinyDom_Tag_t;
hgs
parents:
diff changeset
   479
hgs
parents:
diff changeset
   480
hgs
parents:
diff changeset
   481
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   482
    @function:    NW_TinyDom_getTagToken
hgs
parents:
diff changeset
   483
hgs
parents:
diff changeset
   484
    @synopsis:    Get tag token.
hgs
parents:
diff changeset
   485
hgs
parents:
diff changeset
   486
    @scope:       public
hgs
parents:
diff changeset
   487
hgs
parents:
diff changeset
   488
    @parameters:
hgs
parents:
diff changeset
   489
       [in] NW_TinyDom_Parser_t* parser
hgs
parents:
diff changeset
   490
                  The parser.
hgs
parents:
diff changeset
   491
hgs
parents:
diff changeset
   492
       [in] NW_TinyTree_Node_t* node
hgs
parents:
diff changeset
   493
                  Node to use.
hgs
parents:
diff changeset
   494
hgs
parents:
diff changeset
   495
    @description: Get tag token.
hgs
parents:
diff changeset
   496
hgs
parents:
diff changeset
   497
    @returns:     NW_Uint32
hgs
parents:
diff changeset
   498
                  Tag token.
hgs
parents:
diff changeset
   499
hgs
parents:
diff changeset
   500
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   501
IMPORT_C NW_Uint32
hgs
parents:
diff changeset
   502
NW_TinyDom_getTagToken(NW_TinyDom_Parser_t* parser,
hgs
parents:
diff changeset
   503
                       NW_TinyTree_Node_t* node);
hgs
parents:
diff changeset
   504
hgs
parents:
diff changeset
   505
hgs
parents:
diff changeset
   506
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   507
    @function:    NW_TinyDom_getTagName
hgs
parents:
diff changeset
   508
hgs
parents:
diff changeset
   509
    @synopsis:    Get tag name.
hgs
parents:
diff changeset
   510
hgs
parents:
diff changeset
   511
    @scope:       public
hgs
parents:
diff changeset
   512
hgs
parents:
diff changeset
   513
    @parameters:
hgs
parents:
diff changeset
   514
       [in] NW_TinyDom_Parser_t* parser
hgs
parents:
diff changeset
   515
                  This parser.
hgs
parents:
diff changeset
   516
hgs
parents:
diff changeset
   517
       [in] NW_TinyTree_Node_t* node
hgs
parents:
diff changeset
   518
                  This node.
hgs
parents:
diff changeset
   519
hgs
parents:
diff changeset
   520
       [out] NW_String_t* name
hgs
parents:
diff changeset
   521
                  Name of tag.
hgs
parents:
diff changeset
   522
hgs
parents:
diff changeset
   523
    @description: Get tag name.
hgs
parents:
diff changeset
   524
hgs
parents:
diff changeset
   525
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   526
                  Status of operation.
hgs
parents:
diff changeset
   527
hgs
parents:
diff changeset
   528
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   529
                  Name found.
hgs
parents:
diff changeset
   530
hgs
parents:
diff changeset
   531
       [NW_STAT_WBXML_NO_NAME]
hgs
parents:
diff changeset
   532
                  No name found.
hgs
parents:
diff changeset
   533
hgs
parents:
diff changeset
   534
       [NW_STAT_WBXML_ERROR_BYTECODE]
hgs
parents:
diff changeset
   535
                  No name found.
hgs
parents:
diff changeset
   536
hgs
parents:
diff changeset
   537
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   538
NW_Status_t
hgs
parents:
diff changeset
   539
NW_TinyDom_getTagName(NW_TinyDom_Parser_t* parser,
hgs
parents:
diff changeset
   540
                      NW_TinyTree_Node_t* node,
hgs
parents:
diff changeset
   541
                      NW_String_t* name);
hgs
parents:
diff changeset
   542
hgs
parents:
diff changeset
   543
/* Tiny dom routines to support attributes */
hgs
parents:
diff changeset
   544
hgs
parents:
diff changeset
   545
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   546
    @typedef:     NW_TinyDom_AttrListHandle
hgs
parents:
diff changeset
   547
hgs
parents:
diff changeset
   548
    @synopsis:    Attribute list handle.
hgs
parents:
diff changeset
   549
hgs
parents:
diff changeset
   550
    @scope:       public
hgs
parents:
diff changeset
   551
    @type:        NW_TinyDom_ListIterator_t
hgs
parents:
diff changeset
   552
hgs
parents:
diff changeset
   553
    @description: Attribute list handle.
hgs
parents:
diff changeset
   554
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   555
typedef NW_TinyDom_ListIterator_t NW_TinyDom_AttrListHandle_t;
hgs
parents:
diff changeset
   556
hgs
parents:
diff changeset
   557
hgs
parents:
diff changeset
   558
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   559
    @function:    NW_TinyDom_AttrListHandle_init
hgs
parents:
diff changeset
   560
hgs
parents:
diff changeset
   561
    @synopsis:    Initialize attribute list handle.
hgs
parents:
diff changeset
   562
hgs
parents:
diff changeset
   563
    @scope:       public
hgs
parents:
diff changeset
   564
hgs
parents:
diff changeset
   565
    @parameters:
hgs
parents:
diff changeset
   566
       [in] NW_TinyDom_AttrListHandle_t* handle
hgs
parents:
diff changeset
   567
                  This handle.
hgs
parents:
diff changeset
   568
hgs
parents:
diff changeset
   569
       [in] NW_TinyDom_Parser_t* parser
hgs
parents:
diff changeset
   570
                  This parser.
hgs
parents:
diff changeset
   571
hgs
parents:
diff changeset
   572
       [in] NW_TinyTree_Node_t* node
hgs
parents:
diff changeset
   573
                  This node.
hgs
parents:
diff changeset
   574
hgs
parents:
diff changeset
   575
    @description: Initialize attribute list handle.
hgs
parents:
diff changeset
   576
hgs
parents:
diff changeset
   577
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   578
void
hgs
parents:
diff changeset
   579
NW_TinyDom_AttrListHandle_init(NW_TinyDom_AttrListHandle_t* handle,
hgs
parents:
diff changeset
   580
                               NW_TinyDom_Parser_t* parser,
hgs
parents:
diff changeset
   581
                               NW_TinyTree_Node_t* node);
hgs
parents:
diff changeset
   582
hgs
parents:
diff changeset
   583
hgs
parents:
diff changeset
   584
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   585
    @function:    NW_TinyDom_AttrListHandle_iterate
hgs
parents:
diff changeset
   586
hgs
parents:
diff changeset
   587
    @synopsis:    Iterate through a list of attributes.
hgs
parents:
diff changeset
   588
hgs
parents:
diff changeset
   589
    @scope:       public
hgs
parents:
diff changeset
   590
hgs
parents:
diff changeset
   591
    @parameters:
hgs
parents:
diff changeset
   592
       [in-out] NW_TinyDom_AttrListHandle_t* handle
hgs
parents:
diff changeset
   593
                  The handle.
hgs
parents:
diff changeset
   594
hgs
parents:
diff changeset
   595
    @description: Iterate through a list of attributes. There are no
hgs
parents:
diff changeset
   596
                  attribute list callbacks since we just want to iterate
hgs
parents:
diff changeset
   597
                  the attribute list, returning the start of each attribute.
hgs
parents:
diff changeset
   598
hgs
parents:
diff changeset
   599
    @returns:     NW_TinyTree_Offset_t
hgs
parents:
diff changeset
   600
                  Tree offset  or NULL if at end of iteration.
hgs
parents:
diff changeset
   601
hgs
parents:
diff changeset
   602
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   603
NW_TinyTree_Offset_t
hgs
parents:
diff changeset
   604
NW_TinyDom_AttrListHandle_iterate(NW_TinyDom_AttrListHandle_t* handle);
hgs
parents:
diff changeset
   605
hgs
parents:
diff changeset
   606
hgs
parents:
diff changeset
   607
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   608
    @struct:      NW_TinyDom_AttributeHandle
hgs
parents:
diff changeset
   609
hgs
parents:
diff changeset
   610
    @synopsis:    An attribute handle, for iteration over values.
hgs
parents:
diff changeset
   611
hgs
parents:
diff changeset
   612
    @scope:       public
hgs
parents:
diff changeset
   613
    @variables:
hgs
parents:
diff changeset
   614
       NW_TinyDom_ListIterator_t tlit
hgs
parents:
diff changeset
   615
                  The iterator structure.
hgs
parents:
diff changeset
   616
hgs
parents:
diff changeset
   617
       void* value
hgs
parents:
diff changeset
   618
                  The current value.
hgs
parents:
diff changeset
   619
hgs
parents:
diff changeset
   620
       NW_Uint32 fq_token
hgs
parents:
diff changeset
   621
                  Fully qualified token. That is: token, codepage and
hgs
parents:
diff changeset
   622
                  attribute flag.
hgs
parents:
diff changeset
   623
hgs
parents:
diff changeset
   624
       NW_Uint32 name_index
hgs
parents:
diff changeset
   625
                  Index into string table.
hgs
parents:
diff changeset
   626
hgs
parents:
diff changeset
   627
    @description: An attribute handle, for iteration over values.
hgs
parents:
diff changeset
   628
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   629
typedef struct NW_TinyDom_AttributeHandle_s {
hgs
parents:
diff changeset
   630
  NW_TinyDom_ListIterator_t tlit;
hgs
parents:
diff changeset
   631
  /* field value is a pointer to the struct to fill in by parsing */
hgs
parents:
diff changeset
   632
  NW_TinyDom_AttrVal_t* value;
hgs
parents:
diff changeset
   633
  NW_Uint32 fq_token;
hgs
parents:
diff changeset
   634
  NW_Uint32 name_index;
hgs
parents:
diff changeset
   635
} NW_TinyDom_AttributeHandle_t;
hgs
parents:
diff changeset
   636
hgs
parents:
diff changeset
   637
hgs
parents:
diff changeset
   638
/* ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   639
   Attribute values are made up of components of several types. These are
hgs
parents:
diff changeset
   640
   defined in WBXML/types.h
hgs
parents:
diff changeset
   641
** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   642
hgs
parents:
diff changeset
   643
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   644
    @function:    NW_TinyDom_AttributeHandle_init
hgs
parents:
diff changeset
   645
hgs
parents:
diff changeset
   646
    @synopsis:    Initialize an attribute handle.
hgs
parents:
diff changeset
   647
hgs
parents:
diff changeset
   648
    @scope:       public
hgs
parents:
diff changeset
   649
hgs
parents:
diff changeset
   650
    @parameters:
hgs
parents:
diff changeset
   651
       [in-out] NW_TinyDom_AttributeHandle_t* handle
hgs
parents:
diff changeset
   652
                  The handle.
hgs
parents:
diff changeset
   653
hgs
parents:
diff changeset
   654
       [in-out] NW_TinyDom_Parser_t* parser
hgs
parents:
diff changeset
   655
                  The parser.
hgs
parents:
diff changeset
   656
hgs
parents:
diff changeset
   657
       [in] NW_TinyTree_Offset_t offset
hgs
parents:
diff changeset
   658
                  Offset into buffer.
hgs
parents:
diff changeset
   659
hgs
parents:
diff changeset
   660
    @description: Initialize an attribute handle by parsing an attribute's
hgs
parents:
diff changeset
   661
                  start token and values, calling the attribute handlers.
hgs
parents:
diff changeset
   662
hgs
parents:
diff changeset
   663
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   664
void
hgs
parents:
diff changeset
   665
NW_TinyDom_AttributeHandle_init(NW_TinyDom_AttributeHandle_t* handle,
hgs
parents:
diff changeset
   666
                                NW_TinyDom_Parser_t* parser,
hgs
parents:
diff changeset
   667
                                NW_TinyTree_Offset_t offset);
hgs
parents:
diff changeset
   668
hgs
parents:
diff changeset
   669
hgs
parents:
diff changeset
   670
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   671
    @function:    NW_TinyDom_AttributeHandle_valsIterate
hgs
parents:
diff changeset
   672
hgs
parents:
diff changeset
   673
    @synopsis:    Iterate over attribute values.
hgs
parents:
diff changeset
   674
hgs
parents:
diff changeset
   675
    @scope:       public
hgs
parents:
diff changeset
   676
hgs
parents:
diff changeset
   677
    @parameters:
hgs
parents:
diff changeset
   678
       [in-out] NW_TinyDom_ListIterator_t *it
hgs
parents:
diff changeset
   679
                  The iterator.
hgs
parents:
diff changeset
   680
hgs
parents:
diff changeset
   681
    @description: Initialize an attribute handle by parsing an attribute's
hgs
parents:
diff changeset
   682
                  start token and values, calling the attribute handlers.
hgs
parents:
diff changeset
   683
hgs
parents:
diff changeset
   684
    @returns:     NW_TinyTree_Offset_t
hgs
parents:
diff changeset
   685
                  Offset.  If offset is 0, then at end of iteration.
hgs
parents:
diff changeset
   686
hgs
parents:
diff changeset
   687
hgs
parents:
diff changeset
   688
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   689
NW_TinyTree_Offset_t
hgs
parents:
diff changeset
   690
NW_TinyDom_AttributeHandle_valsIterate(NW_TinyDom_ListIterator_t *it);
hgs
parents:
diff changeset
   691
hgs
parents:
diff changeset
   692
hgs
parents:
diff changeset
   693
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   694
    @function:    NW_TinyDom_AttributeHandle_getToken
hgs
parents:
diff changeset
   695
hgs
parents:
diff changeset
   696
    @synopsis:    Get the token from the handle.
hgs
parents:
diff changeset
   697
hgs
parents:
diff changeset
   698
    @scope:       public
hgs
parents:
diff changeset
   699
hgs
parents:
diff changeset
   700
    @parameters:
hgs
parents:
diff changeset
   701
       [in] NW_TinyDom_AttributeHandle_t* handle
hgs
parents:
diff changeset
   702
                  dThe handle.
hgs
parents:
diff changeset
   703
hgs
parents:
diff changeset
   704
    @description: Get the fully qualified token.
hgs
parents:
diff changeset
   705
hgs
parents:
diff changeset
   706
    @returns:     NW_Uint32
hgs
parents:
diff changeset
   707
                  Token in handle structure.
hgs
parents:
diff changeset
   708
hgs
parents:
diff changeset
   709
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   710
NW_Uint32
hgs
parents:
diff changeset
   711
NW_TinyDom_AttributeHandle_getToken(NW_TinyDom_AttributeHandle_t* handle);
hgs
parents:
diff changeset
   712
hgs
parents:
diff changeset
   713
hgs
parents:
diff changeset
   714
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   715
    @function:    NW_TinyDom_AttributeHandle_getName
hgs
parents:
diff changeset
   716
hgs
parents:
diff changeset
   717
    @synopsis:    Get the name from the handle.
hgs
parents:
diff changeset
   718
hgs
parents:
diff changeset
   719
    @scope:       public
hgs
parents:
diff changeset
   720
hgs
parents:
diff changeset
   721
    @parameters:
hgs
parents:
diff changeset
   722
       [in] NW_TinyDom_AttributeHandle_t* handle
hgs
parents:
diff changeset
   723
                  The handle.
hgs
parents:
diff changeset
   724
hgs
parents:
diff changeset
   725
       [out] NW_String_t* name
hgs
parents:
diff changeset
   726
                  The name.
hgs
parents:
diff changeset
   727
hgs
parents:
diff changeset
   728
    @description: Get the name, if any, from the handle.
hgs
parents:
diff changeset
   729
hgs
parents:
diff changeset
   730
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   731
                  Status of operation.
hgs
parents:
diff changeset
   732
hgs
parents:
diff changeset
   733
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   734
                  Name found.
hgs
parents:
diff changeset
   735
hgs
parents:
diff changeset
   736
       [NW_STAT_WBXML_NO_NAME]
hgs
parents:
diff changeset
   737
                  Name not found.
hgs
parents:
diff changeset
   738
hgs
parents:
diff changeset
   739
       [NW_STAT_WBXML_ERROR_BYTECODE]
hgs
parents:
diff changeset
   740
                  Invalid string in table.
hgs
parents:
diff changeset
   741
hgs
parents:
diff changeset
   742
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   743
NW_Status_t
hgs
parents:
diff changeset
   744
NW_TinyDom_AttributeHandle_getName(NW_TinyDom_AttributeHandle_t* handle,
hgs
parents:
diff changeset
   745
                                   NW_String_t* name);
hgs
parents:
diff changeset
   746
hgs
parents:
diff changeset
   747
hgs
parents:
diff changeset
   748
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   749
    @function:    NW_TinyDom_AttributeHandle_iterateValues
hgs
parents:
diff changeset
   750
hgs
parents:
diff changeset
   751
    @synopsis:    Iterate the values.
hgs
parents:
diff changeset
   752
hgs
parents:
diff changeset
   753
    @scope:       public
hgs
parents:
diff changeset
   754
hgs
parents:
diff changeset
   755
    @parameters:
hgs
parents:
diff changeset
   756
       [in] NW_TinyDom_AttributeHandle_t* handle
hgs
parents:
diff changeset
   757
                  The handle.
hgs
parents:
diff changeset
   758
hgs
parents:
diff changeset
   759
       [out] NW_TinyDom_AttrVal_t* value
hgs
parents:
diff changeset
   760
                  Attribute value.
hgs
parents:
diff changeset
   761
hgs
parents:
diff changeset
   762
    @description: Iterate the values.
hgs
parents:
diff changeset
   763
hgs
parents:
diff changeset
   764
    @returns:     NW_TinyTree_Offset_t
hgs
parents:
diff changeset
   765
                  Buffer offset or zero if done.
hgs
parents:
diff changeset
   766
hgs
parents:
diff changeset
   767
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   768
NW_TinyTree_Offset_t
hgs
parents:
diff changeset
   769
NW_TinyDom_AttributeHandle_iterateValues(NW_TinyDom_AttributeHandle_t* handle,
hgs
parents:
diff changeset
   770
                                         NW_TinyDom_AttrVal_t* value);
hgs
parents:
diff changeset
   771
hgs
parents:
diff changeset
   772
hgs
parents:
diff changeset
   773
/* TODO: Add method to get values as a string */
hgs
parents:
diff changeset
   774
hgs
parents:
diff changeset
   775
hgs
parents:
diff changeset
   776
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   777
    @typedef:     NW_TinyDom_TextHandle
hgs
parents:
diff changeset
   778
hgs
parents:
diff changeset
   779
    @synopsis:    A text handle, for iteration over text components.
hgs
parents:
diff changeset
   780
hgs
parents:
diff changeset
   781
    @scope:       public
hgs
parents:
diff changeset
   782
    @type:        NW_TinyDom_AttributeHandle_t
hgs
parents:
diff changeset
   783
hgs
parents:
diff changeset
   784
    @description: A text handle, for iteration over text components.
hgs
parents:
diff changeset
   785
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   786
typedef NW_TinyDom_AttributeHandle_t NW_TinyDom_TextHandle_t;
hgs
parents:
diff changeset
   787
hgs
parents:
diff changeset
   788
hgs
parents:
diff changeset
   789
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   790
    @function:    NW_TinyDom_TextHandle_init
hgs
parents:
diff changeset
   791
hgs
parents:
diff changeset
   792
    @synopsis:    Initialize a text handle.
hgs
parents:
diff changeset
   793
hgs
parents:
diff changeset
   794
    @scope:       public
hgs
parents:
diff changeset
   795
hgs
parents:
diff changeset
   796
    @parameters:
hgs
parents:
diff changeset
   797
       [in] NW_TinyDom_TextHandle_t* handle
hgs
parents:
diff changeset
   798
                  The handle.
hgs
parents:
diff changeset
   799
hgs
parents:
diff changeset
   800
       [in] NW_TinyDom_Parser_t* parser
hgs
parents:
diff changeset
   801
                  The parser.
hgs
parents:
diff changeset
   802
hgs
parents:
diff changeset
   803
       [in] NW_TinyTree_Offset_t offset
hgs
parents:
diff changeset
   804
                  The offset.
hgs
parents:
diff changeset
   805
hgs
parents:
diff changeset
   806
    @description: Initialize a text handle.
hgs
parents:
diff changeset
   807
hgs
parents:
diff changeset
   808
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   809
void
hgs
parents:
diff changeset
   810
NW_TinyDom_TextHandle_init(NW_TinyDom_TextHandle_t* handle,
hgs
parents:
diff changeset
   811
                           NW_TinyDom_Parser_t* parser,
hgs
parents:
diff changeset
   812
                           NW_TinyTree_Offset_t offset);
hgs
parents:
diff changeset
   813
hgs
parents:
diff changeset
   814
hgs
parents:
diff changeset
   815
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   816
    @typedef:     NW_TinyDom_Text
hgs
parents:
diff changeset
   817
hgs
parents:
diff changeset
   818
    @synopsis:    Text item types are a subset of attribute value types.
hgs
parents:
diff changeset
   819
hgs
parents:
diff changeset
   820
    @scope:       public
hgs
parents:
diff changeset
   821
    @type:        NW_TinyDom_AttrVal_t
hgs
parents:
diff changeset
   822
hgs
parents:
diff changeset
   823
    @description: Text item types are a subset of attribute value types.
hgs
parents:
diff changeset
   824
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   825
typedef NW_TinyDom_AttrVal_t NW_TinyDom_Text_t;
hgs
parents:
diff changeset
   826
hgs
parents:
diff changeset
   827
hgs
parents:
diff changeset
   828
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   829
    @function:    NW_TinyDom_TextHandle_iterate
hgs
parents:
diff changeset
   830
hgs
parents:
diff changeset
   831
    @synopsis:    Text item iterator.
hgs
parents:
diff changeset
   832
hgs
parents:
diff changeset
   833
    @scope:       public
hgs
parents:
diff changeset
   834
hgs
parents:
diff changeset
   835
    @parameters:
hgs
parents:
diff changeset
   836
       [in] NW_TinyDom_TextHandle_t* handle
hgs
parents:
diff changeset
   837
                  The handle.
hgs
parents:
diff changeset
   838
hgs
parents:
diff changeset
   839
       [out] NW_TinyDom_Text_t* item
hgs
parents:
diff changeset
   840
                  The returned text item.
hgs
parents:
diff changeset
   841
    @description: Iterate through the text items in a text element, calling
hgs
parents:
diff changeset
   842
                  the text handlers
hgs
parents:
diff changeset
   843
hgs
parents:
diff changeset
   844
    @returns:     NW_TinyTree_Offset_t
hgs
parents:
diff changeset
   845
                  Offset into buffer or zero if no item returned.
hgs
parents:
diff changeset
   846
hgs
parents:
diff changeset
   847
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   848
NW_TinyTree_Offset_t
hgs
parents:
diff changeset
   849
NW_TinyDom_TextHandle_iterate(NW_TinyDom_TextHandle_t* handle,
hgs
parents:
diff changeset
   850
                              NW_TinyDom_Text_t* item);
hgs
parents:
diff changeset
   851
hgs
parents:
diff changeset
   852
hgs
parents:
diff changeset
   853
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   854
    @function:    NW_TinyDom_getDocHeader
hgs
parents:
diff changeset
   855
hgs
parents:
diff changeset
   856
    @synopsis:    Get the doc header from the tiny tree.
hgs
parents:
diff changeset
   857
hgs
parents:
diff changeset
   858
    @scope:       public
hgs
parents:
diff changeset
   859
hgs
parents:
diff changeset
   860
    @parameters:
hgs
parents:
diff changeset
   861
       [in] NW_TinyTree_t* tree
hgs
parents:
diff changeset
   862
                  The tree.
hgs
parents:
diff changeset
   863
hgs
parents:
diff changeset
   864
    @description: Get the doc header from the tiny tree.
hgs
parents:
diff changeset
   865
hgs
parents:
diff changeset
   866
    @returns:     NW_WBXML_Document_t*
hgs
parents:
diff changeset
   867
                  Doc header or NULL if NULL tree.
hgs
parents:
diff changeset
   868
hgs
parents:
diff changeset
   869
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   870
NW_WBXML_Document_t*
hgs
parents:
diff changeset
   871
NW_TinyDom_getDocHeader(NW_TinyTree_t* tree);
hgs
parents:
diff changeset
   872
hgs
parents:
diff changeset
   873
hgs
parents:
diff changeset
   874
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   875
    @function:    NW_TinyDom_getParser
hgs
parents:
diff changeset
   876
hgs
parents:
diff changeset
   877
    @synopsis:    Get a pointer to the dom parser from the tiny_tree.
hgs
parents:
diff changeset
   878
hgs
parents:
diff changeset
   879
    @scope:       public
hgs
parents:
diff changeset
   880
hgs
parents:
diff changeset
   881
    @parameters:
hgs
parents:
diff changeset
   882
       [in] NW_TinyTree_t* tree
hgs
parents:
diff changeset
   883
                  The tree.
hgs
parents:
diff changeset
   884
hgs
parents:
diff changeset
   885
    @description: Get a pointer to the dom parser from the tiny_tree.
hgs
parents:
diff changeset
   886
hgs
parents:
diff changeset
   887
    @returns:     NW_TinyDom_Parser_t*
hgs
parents:
diff changeset
   888
                  default
hgs
parents:
diff changeset
   889
hgs
parents:
diff changeset
   890
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   891
IMPORT_C NW_TinyDom_Parser_t*
hgs
parents:
diff changeset
   892
NW_TinyDom_getParser(NW_TinyTree_t* tree);
hgs
parents:
diff changeset
   893
hgs
parents:
diff changeset
   894
hgs
parents:
diff changeset
   895
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   896
    @function:    NW_TinyDom_getTree
hgs
parents:
diff changeset
   897
hgs
parents:
diff changeset
   898
    @synopsis:    Get a pointer to the dom tree from a tiny tree.
hgs
parents:
diff changeset
   899
hgs
parents:
diff changeset
   900
    @scope:       public
hgs
parents:
diff changeset
   901
hgs
parents:
diff changeset
   902
    @parameters:
hgs
parents:
diff changeset
   903
       [in] NW_TinyTree_t* tree
hgs
parents:
diff changeset
   904
                  The tree.
hgs
parents:
diff changeset
   905
hgs
parents:
diff changeset
   906
    @description: Get a pointer to the dom tree from a tiny tree.
hgs
parents:
diff changeset
   907
hgs
parents:
diff changeset
   908
    @returns:     NW_TinyDom_Tree_t*
hgs
parents:
diff changeset
   909
                  POinter to the DOM tree or NULL if not found.
hgs
parents:
diff changeset
   910
hgs
parents:
diff changeset
   911
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   912
IMPORT_C NW_TinyDom_Tree_t*
hgs
parents:
diff changeset
   913
NW_TinyDom_getTree(NW_TinyTree_t* tree);
hgs
parents:
diff changeset
   914
hgs
parents:
diff changeset
   915
/* ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   916
   Dom write support methods: These are created as orphan nodes that
hgs
parents:
diff changeset
   917
   then need to be attached to the tree.
hgs
parents:
diff changeset
   918
** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   919
hgs
parents:
diff changeset
   920
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   921
    @function:    NW_TinyDom_createAttributeByToken
hgs
parents:
diff changeset
   922
hgs
parents:
diff changeset
   923
    @synopsis:    Create attribute by token.
hgs
parents:
diff changeset
   924
hgs
parents:
diff changeset
   925
    @scope:       public
hgs
parents:
diff changeset
   926
hgs
parents:
diff changeset
   927
    @parameters:
hgs
parents:
diff changeset
   928
       [in] NW_TinyDom_Tree_t* dom_tree
hgs
parents:
diff changeset
   929
                  The DOM tree.
hgs
parents:
diff changeset
   930
hgs
parents:
diff changeset
   931
       [in] NW_Uint16 token
hgs
parents:
diff changeset
   932
                  The token.
hgs
parents:
diff changeset
   933
hgs
parents:
diff changeset
   934
       [in] NW_TinyDom_AttrVal_t* value
hgs
parents:
diff changeset
   935
                  The new attribute.
hgs
parents:
diff changeset
   936
hgs
parents:
diff changeset
   937
    @description: Create attribute by token as an orphan node that
hgs
parents:
diff changeset
   938
                  then need to be attached to the tree.
hgs
parents:
diff changeset
   939
hgs
parents:
diff changeset
   940
    @returns:     NW_TinyTree_Node_t*
hgs
parents:
diff changeset
   941
                  Pointer to the new node or NULL if not successful.
hgs
parents:
diff changeset
   942
hgs
parents:
diff changeset
   943
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   944
NW_TinyTree_Node_t*
hgs
parents:
diff changeset
   945
NW_TinyDom_createAttributeByToken(NW_TinyDom_Tree_t* dom_tree,
hgs
parents:
diff changeset
   946
                                  NW_Uint16 token,
hgs
parents:
diff changeset
   947
                                  NW_TinyDom_AttrVal_t* value);
hgs
parents:
diff changeset
   948
hgs
parents:
diff changeset
   949
hgs
parents:
diff changeset
   950
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   951
    @function:    NW_TinyDom_createAttributeByName
hgs
parents:
diff changeset
   952
hgs
parents:
diff changeset
   953
    @synopsis:    Create attribute by name.
hgs
parents:
diff changeset
   954
hgs
parents:
diff changeset
   955
    @scope:       public
hgs
parents:
diff changeset
   956
hgs
parents:
diff changeset
   957
    @parameters:
hgs
parents:
diff changeset
   958
       [in] NW_TinyDom_Tree_t* dom_tree
hgs
parents:
diff changeset
   959
                  The tree.
hgs
parents:
diff changeset
   960
hgs
parents:
diff changeset
   961
       [in] NW_String_t* name
hgs
parents:
diff changeset
   962
                  The name.
hgs
parents:
diff changeset
   963
hgs
parents:
diff changeset
   964
       [in] NW_TinyDom_AttrVal_t* value
hgs
parents:
diff changeset
   965
                  The new attribute.
hgs
parents:
diff changeset
   966
hgs
parents:
diff changeset
   967
    @description: Create attribute by name as an orphan node that
hgs
parents:
diff changeset
   968
                  then need to be attached to the tree.
hgs
parents:
diff changeset
   969
hgs
parents:
diff changeset
   970
    @returns:     NW_TinyTree_Node_t*
hgs
parents:
diff changeset
   971
                  Pointer to the new node or NULL if not successful.
hgs
parents:
diff changeset
   972
hgs
parents:
diff changeset
   973
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   974
NW_TinyTree_Node_t*
hgs
parents:
diff changeset
   975
NW_TinyDom_createAttributeByName(NW_TinyDom_Tree_t* dom_tree,
hgs
parents:
diff changeset
   976
                                 NW_String_t* name,
hgs
parents:
diff changeset
   977
                                 NW_TinyDom_AttrVal_t* value);
hgs
parents:
diff changeset
   978
hgs
parents:
diff changeset
   979
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   980
    @function:    NW_TinyDom_AttributeHandle_initWithStartToken
hgs
parents:
diff changeset
   981
hgs
parents:
diff changeset
   982
    @synopsis:    Initialize the handle with a start token.
hgs
parents:
diff changeset
   983
hgs
parents:
diff changeset
   984
    @scope:       public
hgs
parents:
diff changeset
   985
hgs
parents:
diff changeset
   986
    @parameters:
hgs
parents:
diff changeset
   987
       [in] NW_TinyDom_AttributeHandle_t* tinyHandle
hgs
parents:
diff changeset
   988
                  The handle.
hgs
parents:
diff changeset
   989
hgs
parents:
diff changeset
   990
       [out] NW_TinyTree_Node_t** ppNode
hgs
parents:
diff changeset
   991
                  The tree node.
hgs
parents:
diff changeset
   992
hgs
parents:
diff changeset
   993
       [in] NW_TinyDom_Parser_t* parser
hgs
parents:
diff changeset
   994
                  The parser.
hgs
parents:
diff changeset
   995
hgs
parents:
diff changeset
   996
       [in] NW_Uint16 fqToken
hgs
parents:
diff changeset
   997
                  The token with page.
hgs
parents:
diff changeset
   998
hgs
parents:
diff changeset
   999
    @description: Initialize the handle with a start token.
hgs
parents:
diff changeset
  1000
hgs
parents:
diff changeset
  1001
    @returns:     NW_Status_t
hgs
parents:
diff changeset
  1002
hgs
parents:
diff changeset
  1003
        [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
  1004
                  Success
hgs
parents:
diff changeset
  1005
hgs
parents:
diff changeset
  1006
        [NW_STAT_FAILURE]
hgs
parents:
diff changeset
  1007
                  A failure other than out-of-memory.
hgs
parents:
diff changeset
  1008
hgs
parents:
diff changeset
  1009
        [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
  1010
                  Out of memory.
hgs
parents:
diff changeset
  1011
hgs
parents:
diff changeset
  1012
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
  1013
NW_Status_t
hgs
parents:
diff changeset
  1014
NW_TinyDom_AttributeHandle_initWithStartToken(NW_TinyDom_AttributeHandle_t* tinyHandle,
hgs
parents:
diff changeset
  1015
                                              NW_TinyTree_Node_t** ppNode,
hgs
parents:
diff changeset
  1016
                                              NW_TinyDom_Parser_t* parser,
hgs
parents:
diff changeset
  1017
                                              NW_Uint16 fqToken);
hgs
parents:
diff changeset
  1018
hgs
parents:
diff changeset
  1019
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
  1020
    @function:    NW_TinyDom_AttributeHandle_addVal
hgs
parents:
diff changeset
  1021
hgs
parents:
diff changeset
  1022
    @synopsis:    Append the attribute value to the attribute handle.
hgs
parents:
diff changeset
  1023
hgs
parents:
diff changeset
  1024
    @scope:       public
hgs
parents:
diff changeset
  1025
hgs
parents:
diff changeset
  1026
    @parameters:
hgs
parents:
diff changeset
  1027
       [in] NW_TinyDom_AttributeHandle_t* tinyHandle
hgs
parents:
diff changeset
  1028
                  The handle.
hgs
parents:
diff changeset
  1029
hgs
parents:
diff changeset
  1030
       [in] NW_TinyTree_Node_t* node
hgs
parents:
diff changeset
  1031
                  The tree node.
hgs
parents:
diff changeset
  1032
hgs
parents:
diff changeset
  1033
       [in] NW_DOM_AttrVal_t* value
hgs
parents:
diff changeset
  1034
                  The attribute value to append to handle
hgs
parents:
diff changeset
  1035
hgs
parents:
diff changeset
  1036
    @description: Append the attribute value to the attribute handle.
hgs
parents:
diff changeset
  1037
hgs
parents:
diff changeset
  1038
    @returns:     NW_Status_t
hgs
parents:
diff changeset
  1039
hgs
parents:
diff changeset
  1040
        [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
  1041
                  Success
hgs
parents:
diff changeset
  1042
hgs
parents:
diff changeset
  1043
        [NW_STAT_FAILURE]
hgs
parents:
diff changeset
  1044
                  A failure other than out-of-memory.
hgs
parents:
diff changeset
  1045
hgs
parents:
diff changeset
  1046
        [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
  1047
                  Out of memory.
hgs
parents:
diff changeset
  1048
hgs
parents:
diff changeset
  1049
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
  1050
NW_Status_t
hgs
parents:
diff changeset
  1051
NW_TinyDom_AttributeHandle_addVal(NW_TinyDom_AttributeHandle_t* tinyHandle,
hgs
parents:
diff changeset
  1052
                                  NW_TinyTree_Node_t* node,
hgs
parents:
diff changeset
  1053
                                  NW_TinyDom_AttrVal_t* val);
hgs
parents:
diff changeset
  1054
hgs
parents:
diff changeset
  1055
hgs
parents:
diff changeset
  1056
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
  1057
    @function:    NW_TinyDom_createElementByToken
hgs
parents:
diff changeset
  1058
hgs
parents:
diff changeset
  1059
    @synopsis:    Create element by token.
hgs
parents:
diff changeset
  1060
hgs
parents:
diff changeset
  1061
    @scope:       public
hgs
parents:
diff changeset
  1062
hgs
parents:
diff changeset
  1063
    @parameters:
hgs
parents:
diff changeset
  1064
       [in] NW_TinyDom_Tree_t* dom_tree
hgs
parents:
diff changeset
  1065
                  The tree.
hgs
parents:
diff changeset
  1066
hgs
parents:
diff changeset
  1067
       [in] NW_Uint16 token
hgs
parents:
diff changeset
  1068
                  The token.
hgs
parents:
diff changeset
  1069
hgs
parents:
diff changeset
  1070
    @description: Create element by token as an orphan node that
hgs
parents:
diff changeset
  1071
                  then need to be attached to the tree.
hgs
parents:
diff changeset
  1072
hgs
parents:
diff changeset
  1073
    @returns:     NW_TinyTree_Node_t*
hgs
parents:
diff changeset
  1074
                  Pointer to the new node or NULL if not successful.
hgs
parents:
diff changeset
  1075
hgs
parents:
diff changeset
  1076
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
  1077
NW_TinyTree_Node_t*
hgs
parents:
diff changeset
  1078
NW_TinyDom_createElementByToken(NW_TinyDom_Tree_t* dom_tree,
hgs
parents:
diff changeset
  1079
                                NW_Uint16 token);
hgs
parents:
diff changeset
  1080
hgs
parents:
diff changeset
  1081
hgs
parents:
diff changeset
  1082
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
  1083
    @function:    NW_TinyDom_createElementByName
hgs
parents:
diff changeset
  1084
hgs
parents:
diff changeset
  1085
    @synopsis:    Create element by name.
hgs
parents:
diff changeset
  1086
hgs
parents:
diff changeset
  1087
    @scope:       public
hgs
parents:
diff changeset
  1088
hgs
parents:
diff changeset
  1089
    @parameters:
hgs
parents:
diff changeset
  1090
       [in] NW_TinyDom_Tree_t* dom_tree
hgs
parents:
diff changeset
  1091
                  The tree.
hgs
parents:
diff changeset
  1092
hgs
parents:
diff changeset
  1093
       [in] NW_String_t* name
hgs
parents:
diff changeset
  1094
                  The name.
hgs
parents:
diff changeset
  1095
hgs
parents:
diff changeset
  1096
    @description: Create element by name as an orphan node that
hgs
parents:
diff changeset
  1097
                  then need to be attached to the tree.
hgs
parents:
diff changeset
  1098
hgs
parents:
diff changeset
  1099
    @returns:     NW_TinyTree_Node_t*
hgs
parents:
diff changeset
  1100
                  Pointer to the new node or NULL if not successful.
hgs
parents:
diff changeset
  1101
hgs
parents:
diff changeset
  1102
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
  1103
NW_TinyTree_Node_t*
hgs
parents:
diff changeset
  1104
NW_TinyDom_createElementByName(NW_TinyDom_Tree_t* dom_tree,
hgs
parents:
diff changeset
  1105
                               NW_String_t* name);
hgs
parents:
diff changeset
  1106
hgs
parents:
diff changeset
  1107
hgs
parents:
diff changeset
  1108
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
  1109
    @function:    NW_TinyDom_createTextNode
hgs
parents:
diff changeset
  1110
hgs
parents:
diff changeset
  1111
    @synopsis:    Create text node.
hgs
parents:
diff changeset
  1112
hgs
parents:
diff changeset
  1113
    @scope:       public
hgs
parents:
diff changeset
  1114
hgs
parents:
diff changeset
  1115
    @parameters:
hgs
parents:
diff changeset
  1116
       [in] NW_TinyDom_Tree_t* dom_tree
hgs
parents:
diff changeset
  1117
                  The tree.
hgs
parents:
diff changeset
  1118
hgs
parents:
diff changeset
  1119
       [in] NW_TinyDom_Text_t* text
hgs
parents:
diff changeset
  1120
                  The value.
hgs
parents:
diff changeset
  1121
hgs
parents:
diff changeset
  1122
    @description: Create element by name as an orphan node that
hgs
parents:
diff changeset
  1123
                  then needs to be attached to the tree.
hgs
parents:
diff changeset
  1124
hgs
parents:
diff changeset
  1125
    @returns:     NW_TinyTree_Node_t*
hgs
parents:
diff changeset
  1126
                  Pointer to the new node or NULL if not successful.
hgs
parents:
diff changeset
  1127
hgs
parents:
diff changeset
  1128
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
  1129
NW_TinyTree_Node_t*
hgs
parents:
diff changeset
  1130
NW_TinyDom_createTextNode(NW_TinyDom_Tree_t* dom_tree,
hgs
parents:
diff changeset
  1131
                          NW_TinyDom_Text_t* text);
hgs
parents:
diff changeset
  1132
hgs
parents:
diff changeset
  1133
hgs
parents:
diff changeset
  1134
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
  1135
    @function:    NW_TinyDom_addDataFromTextItem
hgs
parents:
diff changeset
  1136
hgs
parents:
diff changeset
  1137
    @synopsis:    Adds data to a text node from a text item.
hgs
parents:
diff changeset
  1138
hgs
parents:
diff changeset
  1139
    @scope:       public
hgs
parents:
diff changeset
  1140
hgs
parents:
diff changeset
  1141
    @parameters:
hgs
parents:
diff changeset
  1142
       [in] NW_TinyTree_t* tinyTree
hgs
parents:
diff changeset
  1143
                  The tree.
hgs
parents:
diff changeset
  1144
hgs
parents:
diff changeset
  1145
       [in] NW_TinyDom_Tree_t* tinyDomTree
hgs
parents:
diff changeset
  1146
                  The DOM tree.
hgs
parents:
diff changeset
  1147
hgs
parents:
diff changeset
  1148
       [in] NW_TinyTree_Node_t* node
hgs
parents:
diff changeset
  1149
                  The text node.
hgs
parents:
diff changeset
  1150
hgs
parents:
diff changeset
  1151
       [in] NW_TinyTree_Text_t text
hgs
parents:
diff changeset
  1152
                  The value.
hgs
parents:
diff changeset
  1153
hgs
parents:
diff changeset
  1154
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
  1155
                  The IANA MIBenum for the character encoding.
hgs
parents:
diff changeset
  1156
hgs
parents:
diff changeset
  1157
    @description: Adds data to a text node from a text item.
hgs
parents:
diff changeset
  1158
hgs
parents:
diff changeset
  1159
    @returns:     NW_Status_t
hgs
parents:
diff changeset
  1160
                  Status of operation.
hgs
parents:
diff changeset
  1161
hgs
parents:
diff changeset
  1162
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
  1163
                  Data added.
hgs
parents:
diff changeset
  1164
hgs
parents:
diff changeset
  1165
       [NW_STAT_FAILURE]
hgs
parents:
diff changeset
  1166
                  Data not added.
hgs
parents:
diff changeset
  1167
hgs
parents:
diff changeset
  1168
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
  1169
NW_Status_t
hgs
parents:
diff changeset
  1170
NW_TinyDom_addDataFromTextItem(NW_TinyTree_t* tinyTree,
hgs
parents:
diff changeset
  1171
                               NW_TinyDom_Tree_t* tinyDomTree,
hgs
parents:
diff changeset
  1172
                               NW_TinyTree_Node_t* node,
hgs
parents:
diff changeset
  1173
                               NW_TinyDom_Text_t* val,
hgs
parents:
diff changeset
  1174
                               NW_Uint32 encoding);
hgs
parents:
diff changeset
  1175
hgs
parents:
diff changeset
  1176
hgs
parents:
diff changeset
  1177
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
  1178
    @function:    NW_TinyDom_Tree_create
hgs
parents:
diff changeset
  1179
hgs
parents:
diff changeset
  1180
    @synopsis:    Create a new tree.
hgs
parents:
diff changeset
  1181
hgs
parents:
diff changeset
  1182
    @scope:       public
hgs
parents:
diff changeset
  1183
hgs
parents:
diff changeset
  1184
    @parameters:
hgs
parents:
diff changeset
  1185
       [in] NW_TinyDom_Tree_t* dom_tree
hgs
parents:
diff changeset
  1186
                  The DOM tree.
hgs
parents:
diff changeset
  1187
hgs
parents:
diff changeset
  1188
       [in] NW_TinyDom_Parser_t* dom_parser
hgs
parents:
diff changeset
  1189
                  The parser to associate with this tree.
hgs
parents:
diff changeset
  1190
hgs
parents:
diff changeset
  1191
       [in] NW_WBXML_Document_t* doc
hgs
parents:
diff changeset
  1192
                  The source document.
hgs
parents:
diff changeset
  1193
hgs
parents:
diff changeset
  1194
       [in] NW_WBXML_Parser_t* parser
hgs
parents:
diff changeset
  1195
                  The WBXML parser.
hgs
parents:
diff changeset
  1196
hgs
parents:
diff changeset
  1197
       [in] NW_WBXML_Writer_t* writer
hgs
parents:
diff changeset
  1198
                  Tree writer.
hgs
parents:
diff changeset
  1199
hgs
parents:
diff changeset
  1200
       [in] NW_Uint16 init_node_count
hgs
parents:
diff changeset
  1201
                  Initial allocation.
hgs
parents:
diff changeset
  1202
hgs
parents:
diff changeset
  1203
       [in] NW_Bool enableStringTable
hgs
parents:
diff changeset
  1204
                  Set to true for normal WBXML.  Set to false to disable
hgs
parents:
diff changeset
  1205
                  writing from using a string table.
hgs
parents:
diff changeset
  1206
hgs
parents:
diff changeset
  1207
    @description: Create a new tree.
hgs
parents:
diff changeset
  1208
hgs
parents:
diff changeset
  1209
    @returns:     NW_Status_t
hgs
parents:
diff changeset
  1210
                  Status of operation.
hgs
parents:
diff changeset
  1211
hgs
parents:
diff changeset
  1212
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
  1213
                  Tree created.
hgs
parents:
diff changeset
  1214
hgs
parents:
diff changeset
  1215
       [NW_STAT_FAILURE]
hgs
parents:
diff changeset
  1216
                  Dictionary not found or root node not created.
hgs
parents:
diff changeset
  1217
hgs
parents:
diff changeset
  1218
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
  1219
NW_Status_t
hgs
parents:
diff changeset
  1220
NW_TinyDom_Tree_create(NW_TinyDom_Tree_t* dom_tree,
hgs
parents:
diff changeset
  1221
                       NW_TinyDom_Parser_t* dom_parser,
hgs
parents:
diff changeset
  1222
                       NW_WBXML_Document_t* doc,
hgs
parents:
diff changeset
  1223
                       NW_WBXML_Parser_t* parser,
hgs
parents:
diff changeset
  1224
                       NW_WBXML_Writer_t* writer,
hgs
parents:
diff changeset
  1225
                       NW_Uint16 init_node_count,
hgs
parents:
diff changeset
  1226
                       NW_Bool enableStringTable);
hgs
parents:
diff changeset
  1227
hgs
parents:
diff changeset
  1228
hgs
parents:
diff changeset
  1229
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
  1230
    @function:    NW_TinyDom_writeDocHeader
hgs
parents:
diff changeset
  1231
hgs
parents:
diff changeset
  1232
    @synopsis:    Write doc header.
hgs
parents:
diff changeset
  1233
hgs
parents:
diff changeset
  1234
    @scope:       public
hgs
parents:
diff changeset
  1235
hgs
parents:
diff changeset
  1236
    @parameters:
hgs
parents:
diff changeset
  1237
       [in] NW_TinyDom_Tree_t* dom_tree
hgs
parents:
diff changeset
  1238
                  The tree.
hgs
parents:
diff changeset
  1239
hgs
parents:
diff changeset
  1240
       [in] NW_Uint8 version
hgs
parents:
diff changeset
  1241
                  The version.
hgs
parents:
diff changeset
  1242
hgs
parents:
diff changeset
  1243
       [in] NW_Uint32 publicid
hgs
parents:
diff changeset
  1244
                  The dictionary public ID.
hgs
parents:
diff changeset
  1245
hgs
parents:
diff changeset
  1246
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
  1247
                  Character encoding.
hgs
parents:
diff changeset
  1248
hgs
parents:
diff changeset
  1249
    @description: Write doc header.
hgs
parents:
diff changeset
  1250
hgs
parents:
diff changeset
  1251
    @returns:     NW_TinyTree_Node_t*
hgs
parents:
diff changeset
  1252
                  New node or NULL if not successful.
hgs
parents:
diff changeset
  1253
hgs
parents:
diff changeset
  1254
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
  1255
NW_TinyTree_Node_t*
hgs
parents:
diff changeset
  1256
NW_TinyDom_writeDocHeader(NW_TinyDom_Tree_t* dom_tree,
hgs
parents:
diff changeset
  1257
                                      NW_Uint8 version,
hgs
parents:
diff changeset
  1258
                                      NW_Uint32 publicid,
hgs
parents:
diff changeset
  1259
                                      NW_Uint32 encoding);
hgs
parents:
diff changeset
  1260
hgs
parents:
diff changeset
  1261
hgs
parents:
diff changeset
  1262
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
  1263
    @function:    NW_TinyDom_removeAttrFromListNode
hgs
parents:
diff changeset
  1264
hgs
parents:
diff changeset
  1265
    @synopsis:    Remove attribute from list node.
hgs
parents:
diff changeset
  1266
hgs
parents:
diff changeset
  1267
    @scope:       public
hgs
parents:
diff changeset
  1268
hgs
parents:
diff changeset
  1269
    @parameters:
hgs
parents:
diff changeset
  1270
       [in] NW_TinyDom_AttrListHandle_t* h
hgs
parents:
diff changeset
  1271
                  The handle.
hgs
parents:
diff changeset
  1272
hgs
parents:
diff changeset
  1273
       [in] NW_Uint32 length
hgs
parents:
diff changeset
  1274
                  Length of attribute.
hgs
parents:
diff changeset
  1275
hgs
parents:
diff changeset
  1276
    @description: Remove attribute from list node.
hgs
parents:
diff changeset
  1277
hgs
parents:
diff changeset
  1278
    @returns:     NW_Status_t
hgs
parents:
diff changeset
  1279
                  Success of operation.
hgs
parents:
diff changeset
  1280
hgs
parents:
diff changeset
  1281
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
  1282
                  Always returns success.
hgs
parents:
diff changeset
  1283
hgs
parents:
diff changeset
  1284
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
  1285
NW_Status_t
hgs
parents:
diff changeset
  1286
NW_TinyDom_removeAttrFromListNode(NW_TinyDom_AttrListHandle_t* h,
hgs
parents:
diff changeset
  1287
                                  NW_Uint32 length);
hgs
parents:
diff changeset
  1288
hgs
parents:
diff changeset
  1289
void
hgs
parents:
diff changeset
  1290
NW_TinyDom_setLastValid(NW_TinyDom_Tree_t* dom_tree, NW_Int32 lastValid);
hgs
parents:
diff changeset
  1291
hgs
parents:
diff changeset
  1292
NW_Int32
hgs
parents:
diff changeset
  1293
NW_TinyDom_getLastValid(NW_TinyDom_Tree_t* dom_tree);
hgs
parents:
diff changeset
  1294
hgs
parents:
diff changeset
  1295
#ifdef __cplusplus
hgs
parents:
diff changeset
  1296
} /* extern "C" { */
hgs
parents:
diff changeset
  1297
#endif /* __cplusplus */
hgs
parents:
diff changeset
  1298
hgs
parents:
diff changeset
  1299
hgs
parents:
diff changeset
  1300
#endif  /* NW_TINY_DOM_H */