xmlsrv_plat/cxml_library_api/inc/nw_encoder_stringtable.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_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
hgs
parents:
diff changeset
    28
#ifndef _NW_ENCODER_STRING_TABLE_HEADER_GUARD_
hgs
parents:
diff changeset
    29
#define _NW_ENCODER_STRING_TABLE_HEADER_GUARD_
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#include <xml/cxml/nw_string_string.h>
hgs
parents:
diff changeset
    32
#include <xml/cxml/nw_tinytree.h>
hgs
parents:
diff changeset
    33
#include <xml/cxml/nw_wbxml_dictionary.h>
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
#ifdef __cplusplus
hgs
parents:
diff changeset
    36
extern "C"
hgs
parents:
diff changeset
    37
{
hgs
parents:
diff changeset
    38
#endif /* __cplusplus */
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
#define CXML_MAX_STRTBL_ITEMS 150 
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    43
    @typedef:     NW_DOM_DocumentNode
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
    @synopsis:    default
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
    @scope:       public
hgs
parents:
diff changeset
    48
    @type:        NW_TinyTree_Node_t
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
    @description: default
hgs
parents:
diff changeset
    51
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
    52
typedef NW_TinyTree_Node_t NW_DOM_DocumentNode_t;
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
/*
hgs
parents:
diff changeset
    56
 * StringItem methods
hgs
parents:
diff changeset
    57
 */
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    60
    @struct:      NW_Encoder_StringTable
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
    @synopsis:    Container for the strings in a document.
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
    @scope:       public
hgs
parents:
diff changeset
    65
    @variables:
hgs
parents:
diff changeset
    66
      CXML_Vector_t* vector
hgs
parents:
diff changeset
    67
                  Array of strings.
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
    @description: Container for the strings in a document.
hgs
parents:
diff changeset
    70
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
    71
typedef struct NW_Encoder_StringTable_s{
hgs
parents:
diff changeset
    72
  CXML_Vector_t* vector;
hgs
parents:
diff changeset
    73
}NW_Encoder_StringTable_t;
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    77
    @function:    NW_Encoder_StringTable_new
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
    @synopsis:    Creates a new String Table.
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
    @scope:       public
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
    @description: Creates a new String Table.
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
    @returns:     NW_Encoder_StringTable_t*
hgs
parents:
diff changeset
    86
                  POinter to string table or NULL if not successful.
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
  ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
    89
IMPORT_C
hgs
parents:
diff changeset
    90
NW_Encoder_StringTable_t*
hgs
parents:
diff changeset
    91
NW_Encoder_StringTable_new(void);
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    95
    @function:    NW_Encoder_StringTable_delete
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
    @synopsis:    Deletes a String Table.
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
    @scope:       public
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
    @parameters:
hgs
parents:
diff changeset
   102
       [in-out] NW_Encoder_StringTable_t* strTable
hgs
parents:
diff changeset
   103
                  Table to delete.
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
    @description: Deletes a String Table
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   108
IMPORT_C void
hgs
parents:
diff changeset
   109
NW_Encoder_StringTable_delete(NW_Encoder_StringTable_t* strTable);
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   113
    @struct:      NW_Encoder_StringItem
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
    @synopsis:    String item structure.
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
    @scope:       public
hgs
parents:
diff changeset
   118
    @variables:
hgs
parents:
diff changeset
   119
       NW_String_t data
hgs
parents:
diff changeset
   120
                  The string data.
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
       NW_Uint16 frequency
hgs
parents:
diff changeset
   123
                  Reference count.
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
    @description: This structures is used to count the frequency of
hgs
parents:
diff changeset
   126
                  string occurance.
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   129
typedef struct NW_Encoder_StringItem_s{
hgs
parents:
diff changeset
   130
  NW_String_t data;
hgs
parents:
diff changeset
   131
  NW_Uint16 frequency;
hgs
parents:
diff changeset
   132
} NW_Encoder_StringItem_t;
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   136
    @struct:       NW_Encoder_StringTableIterator
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
    @synopsis:    Iterator for walking through the string table.
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
    @scope:       public
hgs
parents:
diff changeset
   141
    @variables:
hgs
parents:
diff changeset
   142
       NW_Encoder_StringTable_t* strTable
hgs
parents:
diff changeset
   143
                  The string table.
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
       NW_Uint16 currentIndex
hgs
parents:
diff changeset
   146
                  Current iterator cursor.
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
    @description: Iterator for walking through the string table.
hgs
parents:
diff changeset
   149
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   150
typedef struct NW_Encoder_StringTableIterator_s{
hgs
parents:
diff changeset
   151
  NW_Encoder_StringTable_t* strTable;
hgs
parents:
diff changeset
   152
  NW_Uint16 currentIndex;
hgs
parents:
diff changeset
   153
} NW_Encoder_StringTableIterator_t;
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   157
    @function:    NW_Encoder_StringTable_new
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
    @synopsis:    Creates a new String Item.
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
    @scope:       public
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
    @description: Creates a new String Item.
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
    @returns:     NW_Encoder_StringTable_t*
hgs
parents:
diff changeset
   166
                  The string table or NULL if not success.
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   169
IMPORT_C
hgs
parents:
diff changeset
   170
NW_Encoder_StringTable_t*
hgs
parents:
diff changeset
   171
NW_Encoder_StringTable_new(void);
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   175
    @function:    NW_Encoder_StringTable_GetSize
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
    @synopsis:    Returns number of strings in the string table.
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
    @scope:       public
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
    @parameters:
hgs
parents:
diff changeset
   182
       [in] NW_Encoder_StringTable_t* table
hgs
parents:
diff changeset
   183
                  The string table.
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
    @description: Returns number of strings in the string table.
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
    @returns:     CXML_Vector_Metric_t
hgs
parents:
diff changeset
   188
                  Number of strings in the table.
hgs
parents:
diff changeset
   189
hgs
parents:
diff changeset
   190
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   191
IMPORT_C CXML_Vector_Metric_t
hgs
parents:
diff changeset
   192
NW_Encoder_StringTable_GetSize(NW_Encoder_StringTable_t* table);
hgs
parents:
diff changeset
   193
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   196
    @function:    NW_Encoder_StringTable_append
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
    @synopsis:    Appends string to list.
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
    @scope:       public
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
    @parameters:
hgs
parents:
diff changeset
   203
       [in] NW_Encoder_StringTable_t* table
hgs
parents:
diff changeset
   204
                  The string table.
hgs
parents:
diff changeset
   205
hgs
parents:
diff changeset
   206
       [in] NW_String_t* string
hgs
parents:
diff changeset
   207
                  String to add.
hgs
parents:
diff changeset
   208
hgs
parents:
diff changeset
   209
       [in] NW_Bool literal
hgs
parents:
diff changeset
   210
                  String literal.
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
       [out] NW_Uint32* extensionByteOffset
hgs
parents:
diff changeset
   213
                  byte offset position of inserted or found string
hgs
parents:
diff changeset
   214
                  in string table
hgs
parents:
diff changeset
   215
hgs
parents:
diff changeset
   216
    @description: Appends new found string in the document to the list.
hgs
parents:
diff changeset
   217
                  If the string was already present in the list, then it
hgs
parents:
diff changeset
   218
                  increases its frequency (e.g. reference count), otherwise
hgs
parents:
diff changeset
   219
                  it creates a new StringItem in the list.
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   222
                  Status of operation.
hgs
parents:
diff changeset
   223
hgs
parents:
diff changeset
   224
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   225
                  Appended or found.
hgs
parents:
diff changeset
   226
hgs
parents:
diff changeset
   227
       [NW_STAT_BAD_INPUT_PARAM]
hgs
parents:
diff changeset
   228
                  Required parameter is NULL.
hgs
parents:
diff changeset
   229
hgs
parents:
diff changeset
   230
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   231
NW_Status_t
hgs
parents:
diff changeset
   232
NW_Encoder_StringTable_append(NW_Encoder_StringTable_t* table,
hgs
parents:
diff changeset
   233
                              NW_String_t* string,
hgs
parents:
diff changeset
   234
                              NW_Bool literal,
hgs
parents:
diff changeset
   235
                              NW_Uint32* extensionByteOffset);
hgs
parents:
diff changeset
   236
hgs
parents:
diff changeset
   237
hgs
parents:
diff changeset
   238
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   239
    @function:    NW_Encoder_StringTable_find
hgs
parents:
diff changeset
   240
hgs
parents:
diff changeset
   241
    @synopsis:    Find a string in the table.
hgs
parents:
diff changeset
   242
hgs
parents:
diff changeset
   243
    @scope:       public
hgs
parents:
diff changeset
   244
hgs
parents:
diff changeset
   245
    @parameters:
hgs
parents:
diff changeset
   246
       [in] NW_Encoder_StringTable_t* strTable
hgs
parents:
diff changeset
   247
                  The string table.
hgs
parents:
diff changeset
   248
hgs
parents:
diff changeset
   249
       [in] NW_String_t* string
hgs
parents:
diff changeset
   250
                  default
hgs
parents:
diff changeset
   251
hgs
parents:
diff changeset
   252
       [out] NW_Uint32* strIndex
hgs
parents:
diff changeset
   253
                  Index of entry.
hgs
parents:
diff changeset
   254
hgs
parents:
diff changeset
   255
       [out] NW_Uint32* byteOffset
hgs
parents:
diff changeset
   256
                  Offset of text into the table.
hgs
parents:
diff changeset
   257
hgs
parents:
diff changeset
   258
    @description: Finds a string in the list and returns the corresponding
hgs
parents:
diff changeset
   259
                  StringItem, otherwise returns NULL.
hgs
parents:
diff changeset
   260
hgs
parents:
diff changeset
   261
    @returns:     NW_Encoder_StringItem_t*
hgs
parents:
diff changeset
   262
                  Poiter to string item or NULL if not in the list.
hgs
parents:
diff changeset
   263
hgs
parents:
diff changeset
   264
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   265
NW_Encoder_StringItem_t*
hgs
parents:
diff changeset
   266
NW_Encoder_StringTable_find(NW_Encoder_StringTable_t* strTable,
hgs
parents:
diff changeset
   267
                            NW_String_t* string,
hgs
parents:
diff changeset
   268
                            NW_Uint32* strIndex,
hgs
parents:
diff changeset
   269
                            NW_Uint32* byteOffset);
hgs
parents:
diff changeset
   270
hgs
parents:
diff changeset
   271
hgs
parents:
diff changeset
   272
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   273
    @function:    NW_Encoder_StringTable_get
hgs
parents:
diff changeset
   274
hgs
parents:
diff changeset
   275
    @synopsis:    Finds the string at a given index.
hgs
parents:
diff changeset
   276
hgs
parents:
diff changeset
   277
    @scope:       public
hgs
parents:
diff changeset
   278
hgs
parents:
diff changeset
   279
    @parameters:
hgs
parents:
diff changeset
   280
       [in] NW_Encoder_StringTable_t* strTable
hgs
parents:
diff changeset
   281
                  The string table.
hgs
parents:
diff changeset
   282
hgs
parents:
diff changeset
   283
       [in] NW_Uint32 index
hgs
parents:
diff changeset
   284
                  Index to get from.
hgs
parents:
diff changeset
   285
hgs
parents:
diff changeset
   286
       [out] NW_String_t* string
hgs
parents:
diff changeset
   287
                  Returned string. Check status for validity.
hgs
parents:
diff changeset
   288
hgs
parents:
diff changeset
   289
    @description: Finds the string at a given index.
hgs
parents:
diff changeset
   290
hgs
parents:
diff changeset
   291
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   292
                  Status of operation.
hgs
parents:
diff changeset
   293
hgs
parents:
diff changeset
   294
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   295
                  String found.
hgs
parents:
diff changeset
   296
hgs
parents:
diff changeset
   297
       [NW_STAT_FAILURE]
hgs
parents:
diff changeset
   298
                  String not found.
hgs
parents:
diff changeset
   299
hgs
parents:
diff changeset
   300
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   301
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   302
NW_Encoder_StringTable_get(NW_Encoder_StringTable_t* strTable,
hgs
parents:
diff changeset
   303
                           NW_Uint32 index,
hgs
parents:
diff changeset
   304
                           NW_String_t* string);
hgs
parents:
diff changeset
   305
hgs
parents:
diff changeset
   306
hgs
parents:
diff changeset
   307
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   308
    @function:    NW_Encoder_StringTable_getItemAt
hgs
parents:
diff changeset
   309
hgs
parents:
diff changeset
   310
    @synopsis:    Finds the string at a given index.
hgs
parents:
diff changeset
   311
hgs
parents:
diff changeset
   312
    @scope:       public
hgs
parents:
diff changeset
   313
hgs
parents:
diff changeset
   314
    @parameters:
hgs
parents:
diff changeset
   315
       [in] NW_Encoder_StringTable_t* strTable
hgs
parents:
diff changeset
   316
                  The string table.
hgs
parents:
diff changeset
   317
hgs
parents:
diff changeset
   318
       [in] NW_Uint32 index
hgs
parents:
diff changeset
   319
                  Index to get from.
hgs
parents:
diff changeset
   320
hgs
parents:
diff changeset
   321
    @description: Finds the string at a given index.
hgs
parents:
diff changeset
   322
hgs
parents:
diff changeset
   323
    @returns:     NW_Encoder_StringItem_t*
hgs
parents:
diff changeset
   324
                  String item at index or NULL if not found.
hgs
parents:
diff changeset
   325
hgs
parents:
diff changeset
   326
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   327
NW_Encoder_StringItem_t*
hgs
parents:
diff changeset
   328
NW_Encoder_StringTable_getItemAt(NW_Encoder_StringTable_t* strTable,
hgs
parents:
diff changeset
   329
                                 NW_Uint32 index);
hgs
parents:
diff changeset
   330
hgs
parents:
diff changeset
   331
hgs
parents:
diff changeset
   332
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   333
    @function:    NW_Encoder_StringTable_removeAt
hgs
parents:
diff changeset
   334
hgs
parents:
diff changeset
   335
    @synopsis:    Removes a string item.
hgs
parents:
diff changeset
   336
hgs
parents:
diff changeset
   337
    @scope:       public
hgs
parents:
diff changeset
   338
hgs
parents:
diff changeset
   339
    @parameters:
hgs
parents:
diff changeset
   340
       [in] NW_Encoder_StringTable_t* strTable
hgs
parents:
diff changeset
   341
                  The string table.
hgs
parents:
diff changeset
   342
hgs
parents:
diff changeset
   343
       [in] CXML_Vector_Metric_t index
hgs
parents:
diff changeset
   344
                  Index to remove from.
hgs
parents:
diff changeset
   345
hgs
parents:
diff changeset
   346
    @description: Removes a string item.
hgs
parents:
diff changeset
   347
hgs
parents:
diff changeset
   348
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   349
                  Status of operation.
hgs
parents:
diff changeset
   350
hgs
parents:
diff changeset
   351
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   352
                  Item removed.
hgs
parents:
diff changeset
   353
hgs
parents:
diff changeset
   354
       [NW_STAT_FAILURE]
hgs
parents:
diff changeset
   355
                  Invalid index.
hgs
parents:
diff changeset
   356
hgs
parents:
diff changeset
   357
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   358
NW_Status_t
hgs
parents:
diff changeset
   359
NW_Encoder_StringTable_removeAt(NW_Encoder_StringTable_t* strTable,
hgs
parents:
diff changeset
   360
                                CXML_Vector_Metric_t index);
hgs
parents:
diff changeset
   361
hgs
parents:
diff changeset
   362
hgs
parents:
diff changeset
   363
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   364
    @function:    NW_Encoder_StringTable_getTotalBytes
hgs
parents:
diff changeset
   365
hgs
parents:
diff changeset
   366
    @synopsis:    Returns the total number of bytes used for storing all
hgs
parents:
diff changeset
   367
                  the strings in the list.
hgs
parents:
diff changeset
   368
hgs
parents:
diff changeset
   369
    @scope:       public
hgs
parents:
diff changeset
   370
hgs
parents:
diff changeset
   371
    @parameters:
hgs
parents:
diff changeset
   372
       [in] NW_Encoder_StringTable_t* strTable
hgs
parents:
diff changeset
   373
                  The string table.
hgs
parents:
diff changeset
   374
hgs
parents:
diff changeset
   375
    @description: Returns the total number of bytes used for storing all
hgs
parents:
diff changeset
   376
                  the strings in the list.
hgs
parents:
diff changeset
   377
hgs
parents:
diff changeset
   378
    @returns:     NW_Uint32
hgs
parents:
diff changeset
   379
                  Total byte count.
hgs
parents:
diff changeset
   380
hgs
parents:
diff changeset
   381
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   382
IMPORT_C NW_Uint32
hgs
parents:
diff changeset
   383
NW_Encoder_StringTable_getTotalBytes(NW_Encoder_StringTable_t* strTable);
hgs
parents:
diff changeset
   384
hgs
parents:
diff changeset
   385
hgs
parents:
diff changeset
   386
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   387
    @function:    NW_Encoder_StringTable_createFromDOM
hgs
parents:
diff changeset
   388
hgs
parents:
diff changeset
   389
    @synopsis:    Creates table for a given document.
hgs
parents:
diff changeset
   390
hgs
parents:
diff changeset
   391
    @scope:       public
hgs
parents:
diff changeset
   392
hgs
parents:
diff changeset
   393
    @parameters:
hgs
parents:
diff changeset
   394
       [in] NW_Encoder_StringTable_t* strTable
hgs
parents:
diff changeset
   395
                  The string table.
hgs
parents:
diff changeset
   396
hgs
parents:
diff changeset
   397
       [in] NW_DOM_DocumentNode_t* doc
hgs
parents:
diff changeset
   398
                  Root node of DOM to encode.
hgs
parents:
diff changeset
   399
hgs
parents:
diff changeset
   400
       [in] NW_WBXML_Dictionary_t* dictionary
hgs
parents:
diff changeset
   401
                  The dictionary.
hgs
parents:
diff changeset
   402
hgs
parents:
diff changeset
   403
    @description: Creates table for a given document.
hgs
parents:
diff changeset
   404
hgs
parents:
diff changeset
   405
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   406
                  Status of operation.
hgs
parents:
diff changeset
   407
hgs
parents:
diff changeset
   408
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   409
                  Created.
hgs
parents:
diff changeset
   410
hgs
parents:
diff changeset
   411
       [NW_STAT_FAILURE]
hgs
parents:
diff changeset
   412
                  No bytes found.
hgs
parents:
diff changeset
   413
hgs
parents:
diff changeset
   414
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   415
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   416
NW_Encoder_StringTable_createFromDOM(NW_Encoder_StringTable_t* strTable,
hgs
parents:
diff changeset
   417
                                     NW_DOM_DocumentNode_t* doc,
hgs
parents:
diff changeset
   418
                                     NW_WBXML_Dictionary_t* dictionary);
hgs
parents:
diff changeset
   419
hgs
parents:
diff changeset
   420
hgs
parents:
diff changeset
   421
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   422
    @function:    NW_Encoder_StringTable_getStringTableOffset
hgs
parents:
diff changeset
   423
hgs
parents:
diff changeset
   424
    @synopsis:    Looks for occurrence of a string with the specified content.
hgs
parents:
diff changeset
   425
hgs
parents:
diff changeset
   426
    @scope:       public
hgs
parents:
diff changeset
   427
hgs
parents:
diff changeset
   428
    @parameters:
hgs
parents:
diff changeset
   429
       [in] void* pStringTableObject
hgs
parents:
diff changeset
   430
                  The string table.
hgs
parents:
diff changeset
   431
hgs
parents:
diff changeset
   432
       [in] NW_Uint32 byteCount
hgs
parents:
diff changeset
   433
                  Length of text.
hgs
parents:
diff changeset
   434
hgs
parents:
diff changeset
   435
       [in] const NW_Uint8* pString
hgs
parents:
diff changeset
   436
                  Text.
hgs
parents:
diff changeset
   437
hgs
parents:
diff changeset
   438
       [out] NW_Bool* pFound
hgs
parents:
diff changeset
   439
                  True if found in table.
hgs
parents:
diff changeset
   440
hgs
parents:
diff changeset
   441
       [out] NW_Uint32* pTableOffset
hgs
parents:
diff changeset
   442
                  Offset if found.
hgs
parents:
diff changeset
   443
hgs
parents:
diff changeset
   444
    @description: Looks for occurrence of a string with the specified content.
hgs
parents:
diff changeset
   445
                  Creates a string with the specified storage and byte length.
hgs
parents:
diff changeset
   446
hgs
parents:
diff changeset
   447
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   448
                  Status of operation.
hgs
parents:
diff changeset
   449
hgs
parents:
diff changeset
   450
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   451
                  Always returns success.
hgs
parents:
diff changeset
   452
hgs
parents:
diff changeset
   453
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   454
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   455
NW_Encoder_StringTable_getStringTableOffset(void* pStringTableObject,
hgs
parents:
diff changeset
   456
                                            NW_Uint32 byteCount,
hgs
parents:
diff changeset
   457
                                            const NW_Uint8* pString,
hgs
parents:
diff changeset
   458
                                            NW_Bool* pFound,
hgs
parents:
diff changeset
   459
                                            NW_Uint32* pTableOffset);
hgs
parents:
diff changeset
   460
hgs
parents:
diff changeset
   461
hgs
parents:
diff changeset
   462
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   463
    @function:    NW_Encoder_StringTable_addToStringTable
hgs
parents:
diff changeset
   464
hgs
parents:
diff changeset
   465
    @synopsis:    Add string to string table.
hgs
parents:
diff changeset
   466
hgs
parents:
diff changeset
   467
    @scope:       public
hgs
parents:
diff changeset
   468
hgs
parents:
diff changeset
   469
    @parameters:
hgs
parents:
diff changeset
   470
       [in-out] void* pStringTableObject
hgs
parents:
diff changeset
   471
                  The string table.
hgs
parents:
diff changeset
   472
hgs
parents:
diff changeset
   473
       [in] NW_Uint32 byteCount
hgs
parents:
diff changeset
   474
                  Length of text.
hgs
parents:
diff changeset
   475
hgs
parents:
diff changeset
   476
       [in] const NW_Uint8* pString
hgs
parents:
diff changeset
   477
                  Text to add to table.
hgs
parents:
diff changeset
   478
hgs
parents:
diff changeset
   479
       [in] NW_Uint32* pTableOffset
hgs
parents:
diff changeset
   480
                  Offset installed at.
hgs
parents:
diff changeset
   481
hgs
parents:
diff changeset
   482
    @description: Adds the string to the table if it is not already there.
hgs
parents:
diff changeset
   483
                  Otherwise it increases the reference count.
hgs
parents:
diff changeset
   484
hgs
parents:
diff changeset
   485
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   486
                  Status of operation.
hgs
parents:
diff changeset
   487
hgs
parents:
diff changeset
   488
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   489
                  Added to table.
hgs
parents:
diff changeset
   490
hgs
parents:
diff changeset
   491
       [NW_STAT_BAD_INPUT_PARAM]
hgs
parents:
diff changeset
   492
                  Required parameter is NULL or invalid.
hgs
parents:
diff changeset
   493
hgs
parents:
diff changeset
   494
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   495
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   496
NW_Encoder_StringTable_addToStringTable(void* pStringTableObject,
hgs
parents:
diff changeset
   497
                                        NW_Uint32 byteCount,
hgs
parents:
diff changeset
   498
                                        const NW_Uint8* pString,
hgs
parents:
diff changeset
   499
                                        NW_Uint32* pTableOffset);
hgs
parents:
diff changeset
   500
hgs
parents:
diff changeset
   501
hgs
parents:
diff changeset
   502
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   503
    @function:    NW_Encoder_StringTable_StringTableIterateInit
hgs
parents:
diff changeset
   504
hgs
parents:
diff changeset
   505
    @synopsis:    Initializes a string table iterator.
hgs
parents:
diff changeset
   506
hgs
parents:
diff changeset
   507
    @scope:       public
hgs
parents:
diff changeset
   508
hgs
parents:
diff changeset
   509
    @parameters:
hgs
parents:
diff changeset
   510
       [in] void* pStringTableObject
hgs
parents:
diff changeset
   511
                  The string table.
hgs
parents:
diff changeset
   512
hgs
parents:
diff changeset
   513
       [in-out] void* pStringTableIterator
hgs
parents:
diff changeset
   514
                  Initialized iterator.
hgs
parents:
diff changeset
   515
hgs
parents:
diff changeset
   516
    @description: Initializes a string table iterator.
hgs
parents:
diff changeset
   517
hgs
parents:
diff changeset
   518
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   519
                  Status of operation.
hgs
parents:
diff changeset
   520
hgs
parents:
diff changeset
   521
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   522
                  Always returns success.
hgs
parents:
diff changeset
   523
hgs
parents:
diff changeset
   524
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   525
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   526
NW_Encoder_StringTable_StringTableIterateInit(void* pStringTableObject,
hgs
parents:
diff changeset
   527
                                              void* pStringTableIterator);
hgs
parents:
diff changeset
   528
hgs
parents:
diff changeset
   529
hgs
parents:
diff changeset
   530
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   531
    @function:    NW_Encoder_StringTable_StringTableIterateNext
hgs
parents:
diff changeset
   532
hgs
parents:
diff changeset
   533
    @synopsis:    Iterates through the table.
hgs
parents:
diff changeset
   534
hgs
parents:
diff changeset
   535
    @scope:       public
hgs
parents:
diff changeset
   536
hgs
parents:
diff changeset
   537
    @parameters:
hgs
parents:
diff changeset
   538
       [in-out] void* pStringTableIterator
hgs
parents:
diff changeset
   539
                  The iterator.
hgs
parents:
diff changeset
   540
hgs
parents:
diff changeset
   541
       [out] NW_Uint32* pByteCount
hgs
parents:
diff changeset
   542
                  Byte count for returned value or 0.
hgs
parents:
diff changeset
   543
hgs
parents:
diff changeset
   544
       [out] NW_Uint8** ppBuf
hgs
parents:
diff changeset
   545
                  The returned text.
hgs
parents:
diff changeset
   546
hgs
parents:
diff changeset
   547
    @description: Iterates through the table. At end of string table
hgs
parents:
diff changeset
   548
                  return byteCount = 0.
hgs
parents:
diff changeset
   549
hgs
parents:
diff changeset
   550
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   551
                  Status of operation.
hgs
parents:
diff changeset
   552
hgs
parents:
diff changeset
   553
       [NW_STAT_WBXML_ITERATE_MORE]
hgs
parents:
diff changeset
   554
                  More to iterate. This value valid.
hgs
parents:
diff changeset
   555
hgs
parents:
diff changeset
   556
       [NW_STAT_WBXML_ITERATE_DONE]
hgs
parents:
diff changeset
   557
                  Nothing more to iterate. This value not valid.
hgs
parents:
diff changeset
   558
hgs
parents:
diff changeset
   559
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   560
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   561
NW_Encoder_StringTable_StringTableIterateNext(void* pStringTableIterator,
hgs
parents:
diff changeset
   562
                                              NW_Uint32* pByteCount,
hgs
parents:
diff changeset
   563
                                              NW_Uint8** ppBuf);
hgs
parents:
diff changeset
   564
hgs
parents:
diff changeset
   565
hgs
parents:
diff changeset
   566
#ifdef __cplusplus
hgs
parents:
diff changeset
   567
} /* extern "C" { */
hgs
parents:
diff changeset
   568
#endif /* __cplusplus */
hgs
parents:
diff changeset
   569
hgs
parents:
diff changeset
   570
#endif