xmlsrv_plat/cxml_library_api/inc/nw_string_string.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_String
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_STRING_STRING_H
hgs
parents:
diff changeset
    29
#define NW_STRING_STRING_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_string_char.h>
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
#ifdef __cplusplus
hgs
parents:
diff changeset
    35
extern "C"
hgs
parents:
diff changeset
    36
{
hgs
parents:
diff changeset
    37
#endif /* __cplusplus */
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    41
    @struct:      NW_String_String
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
    @synopsis:    The basic wbxml string type.
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
    @scope:       public
hgs
parents:
diff changeset
    46
    @variables:
hgs
parents:
diff changeset
    47
       NW_Uint32 length
hgs
parents:
diff changeset
    48
                  In bytes.
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
       NW_Byte* storage
hgs
parents:
diff changeset
    51
                  default
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
    @description: The basic wbxml string type.
hgs
parents:
diff changeset
    54
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
    55
typedef struct NW_String_String_s{
hgs
parents:
diff changeset
    56
  NW_Uint32 length;
hgs
parents:
diff changeset
    57
  NW_Byte* storage;
hgs
parents:
diff changeset
    58
}NW_String_String_t;
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
/* Deprecated - Left in for backward compatibility */
hgs
parents:
diff changeset
    61
typedef struct NW_String_String_s NW_String_t;
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
typedef struct NW_String_String_s NW_String_UCS2String_t;
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    66
    @function:    NW_String_new
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
    @synopsis:    Consructor.
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
    @scope:       public
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
    @description: Constructor.
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
    @returns:     NW_String_t*
hgs
parents:
diff changeset
    75
                  New string or NULL if out of memory.
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
    78
IMPORT_C NW_String_t*
hgs
parents:
diff changeset
    79
NW_String_new (void);
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    83
    @function:    NW_String_initialize
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
    @synopsis:    Initialize.
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
    @scope:       public
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
    @parameters:
hgs
parents:
diff changeset
    90
       [in] NW_String_t* string
hgs
parents:
diff changeset
    91
                  The string.
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
       [in] void* storage
hgs
parents:
diff changeset
    94
                  The storage.
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
    97
                  The encoding.
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
    @description: Initialize the string by assigning length, encoding 
hgs
parents:
diff changeset
   100
                  and storage. Note that the length is calculated.
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   103
                  Status of operation.
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   106
                  String initialized.
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
       [NW_STAT_FAILURE]
hgs
parents:
diff changeset
   109
                  String not initialized.
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
       [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
hgs
parents:
diff changeset
   112
                  Unsupported charset.
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   115
IMPORT_C NW_Status_t 
hgs
parents:
diff changeset
   116
NW_String_initialize (NW_String_t* string, void *storage, NW_Uint32 encoding);
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   120
    @function:    NW_String_delete
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
    @synopsis:    Delete.
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
    @scope:       public
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
    @parameters:
hgs
parents:
diff changeset
   127
       [in-out] NW_String_t* string
hgs
parents:
diff changeset
   128
                  The string.
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
    @description: Freeing a string may not free the storage. String storage 
hgs
parents:
diff changeset
   131
                  is complicated by the fact that it can be allocated outside 
hgs
parents:
diff changeset
   132
                  the bounds of the parser. If so, it is not freed here.
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   135
IMPORT_C void 
hgs
parents:
diff changeset
   136
NW_String_delete(NW_String_t* string);
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   140
    @function:    NW_String_getByteCount
hgs
parents:
diff changeset
   141
hgs
parents:
diff changeset
   142
    @synopsis:    Returns number of bytes in the string including NULL 
hgs
parents:
diff changeset
   143
                  terminator.
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
    @scope:       public
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
    @parameters:
hgs
parents:
diff changeset
   148
       [in] NW_String_t* string
hgs
parents:
diff changeset
   149
                  The string.
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
    @description: Returns number of bytes in the string including NULL 
hgs
parents:
diff changeset
   152
                  terminator.
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
    @returns:     NW_Uint16
hgs
parents:
diff changeset
   155
                  Length in bytes.
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   158
IMPORT_C NW_Uint32 
hgs
parents:
diff changeset
   159
NW_String_getByteCount (NW_String_t* string);
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   163
    @function:    NW_String_getCharCount
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
    @synopsis:    Returns number of characters in the string excluding NULL 
hgs
parents:
diff changeset
   166
                  terminator.
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
    @scope:       public
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
    @parameters:
hgs
parents:
diff changeset
   171
       [in] NW_String_t* string
hgs
parents:
diff changeset
   172
                  The string.
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
   175
                  The encoding.
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
    @description: Returns number of characters in the string excluding NULL 
hgs
parents:
diff changeset
   178
                  terminator.
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
    @returns:     NW_Uint16
hgs
parents:
diff changeset
   181
                  Length of string in characters.
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   184
IMPORT_C NW_Uint16 
hgs
parents:
diff changeset
   185
NW_String_getCharCount(NW_String_t* string, NW_Uint32 encoding);
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
/* 
hgs
parents:
diff changeset
   188
 * The following function is a duplication of NW_String_getByteCount to
hgs
parents:
diff changeset
   189
 * handle big files.  For not affecting the components other than
hgs
parents:
diff changeset
   190
 * browser, this function is only called inside the browser.).
hgs
parents:
diff changeset
   191
 *
hgs
parents:
diff changeset
   192
 * INSTEAD OF CALLING NW_String_getByteCount, ALL THE BROWSER CODES SHOULD
hgs
parents:
diff changeset
   193
 * CALL THIS DUPLICATE FUNCTION TO GET CHARACTER COUNTS.
hgs
parents:
diff changeset
   194
 * 
hgs
parents:
diff changeset
   195
 */
hgs
parents:
diff changeset
   196
IMPORT_C NW_Uint32 
hgs
parents:
diff changeset
   197
NW_String_getCharCount32(NW_String_t* string, NW_Uint32 encoding);
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   200
    @function:    NW_String_getStorage
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
    @synopsis:    Returns NULL or valid storage.
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
    @scope:       public
hgs
parents:
diff changeset
   205
hgs
parents:
diff changeset
   206
    @parameters:
hgs
parents:
diff changeset
   207
       [in] NW_String_t* str
hgs
parents:
diff changeset
   208
                  The string.
hgs
parents:
diff changeset
   209
hgs
parents:
diff changeset
   210
    @description: Returns the storage occupied by the string (in bytes).
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
    @returns:     NW_Byte*
hgs
parents:
diff changeset
   213
                  String storage. 
hgs
parents:
diff changeset
   214
hgs
parents:
diff changeset
   215
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   216
IMPORT_C NW_Byte*
hgs
parents:
diff changeset
   217
NW_String_getStorage(NW_String_t* str);
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
hgs
parents:
diff changeset
   220
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   221
    @function:    NW_String_equals
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
    @synopsis:    Determines if strings are equal.
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
    @scope:       public
hgs
parents:
diff changeset
   226
hgs
parents:
diff changeset
   227
    @parameters:
hgs
parents:
diff changeset
   228
       [in] const NW_String_t* string1
hgs
parents:
diff changeset
   229
                  The string.
hgs
parents:
diff changeset
   230
hgs
parents:
diff changeset
   231
       [in] const NW_String_t* string2
hgs
parents:
diff changeset
   232
                  The other string.
hgs
parents:
diff changeset
   233
hgs
parents:
diff changeset
   234
    @description: This function assumes the encoding of each string is 
hgs
parents:
diff changeset
   235
                  the same. It does not attempt to convert strings of 
hgs
parents:
diff changeset
   236
                  different encodings because encoding is regarded as 
hgs
parents:
diff changeset
   237
                  implicit for XML strings. NOte that if both string 
hgs
parents:
diff changeset
   238
                  pointers are NULL thay are considered unequal. 
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
    @returns:     NW_Int32
hgs
parents:
diff changeset
   241
                  1 if the strings are equal; otherwise 0.
hgs
parents:
diff changeset
   242
hgs
parents:
diff changeset
   243
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   244
IMPORT_C NW_Int32 
hgs
parents:
diff changeset
   245
NW_String_equals(const NW_String_t* string1, const NW_String_t* string2);
hgs
parents:
diff changeset
   246
hgs
parents:
diff changeset
   247
hgs
parents:
diff changeset
   248
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   249
    @function:    NW_String_getUserOwnsStorage
hgs
parents:
diff changeset
   250
hgs
parents:
diff changeset
   251
    @synopsis:    Get user owns storage flag.
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] NW_String_t* s
hgs
parents:
diff changeset
   257
                  The string.
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
    @description: Get user owns storage flag. If the user owns the storage
hgs
parents:
diff changeset
   260
                  it means that this string is the sole user of the storage
hgs
parents:
diff changeset
   261
                  and can delete it when done.
hgs
parents:
diff changeset
   262
hgs
parents:
diff changeset
   263
    @returns:     NW_Bool
hgs
parents:
diff changeset
   264
                  NW_TRUE if user owns storage, otherwise NW_FALSE.
hgs
parents:
diff changeset
   265
hgs
parents:
diff changeset
   266
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   267
IMPORT_C NW_Bool
hgs
parents:
diff changeset
   268
NW_String_getUserOwnsStorage(NW_String_t* s);
hgs
parents:
diff changeset
   269
hgs
parents:
diff changeset
   270
hgs
parents:
diff changeset
   271
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   272
    @function:    NW_String_setUserOwnsStorage
hgs
parents:
diff changeset
   273
hgs
parents:
diff changeset
   274
    @synopsis:    Set user owns storage flag.
hgs
parents:
diff changeset
   275
hgs
parents:
diff changeset
   276
    @scope:       public
hgs
parents:
diff changeset
   277
hgs
parents:
diff changeset
   278
    @parameters:
hgs
parents:
diff changeset
   279
       [in-out] NW_String_t* s
hgs
parents:
diff changeset
   280
                  The string.
hgs
parents:
diff changeset
   281
hgs
parents:
diff changeset
   282
    @description: Set user owns storage flag. (see NW_String_getUserOwnsStorage)
hgs
parents:
diff changeset
   283
hgs
parents:
diff changeset
   284
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   285
                  Status of operation.
hgs
parents:
diff changeset
   286
hgs
parents:
diff changeset
   287
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   288
                  Always returns success.
hgs
parents:
diff changeset
   289
hgs
parents:
diff changeset
   290
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   291
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   292
NW_String_setUserOwnsStorage(NW_String_t* s);
hgs
parents:
diff changeset
   293
hgs
parents:
diff changeset
   294
hgs
parents:
diff changeset
   295
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   296
    @function:    NW_String_clearUserOwnsStorage
hgs
parents:
diff changeset
   297
hgs
parents:
diff changeset
   298
    @synopsis:    Clear user owns storage flag.
hgs
parents:
diff changeset
   299
hgs
parents:
diff changeset
   300
    @scope:       public
hgs
parents:
diff changeset
   301
hgs
parents:
diff changeset
   302
    @parameters:
hgs
parents:
diff changeset
   303
       [in-out] NW_String_t* s
hgs
parents:
diff changeset
   304
                  The string.
hgs
parents:
diff changeset
   305
hgs
parents:
diff changeset
   306
    @description: Clear user owns storage flag. This means that someone
hgs
parents:
diff changeset
   307
                  else may own the storage.
hgs
parents:
diff changeset
   308
hgs
parents:
diff changeset
   309
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   310
                  Status of operation.
hgs
parents:
diff changeset
   311
hgs
parents:
diff changeset
   312
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   313
                  Always returns success.
hgs
parents:
diff changeset
   314
hgs
parents:
diff changeset
   315
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   316
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   317
NW_String_clearUserOwnsStorage(NW_String_t* s);
hgs
parents:
diff changeset
   318
hgs
parents:
diff changeset
   319
/* ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   320
   Conversion routines   
hgs
parents:
diff changeset
   321
** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   322
hgs
parents:
diff changeset
   323
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   324
    @function:    NW_String_stringToUCS2
hgs
parents:
diff changeset
   325
hgs
parents:
diff changeset
   326
    @synopsis:    Convert string to UCS2.
hgs
parents:
diff changeset
   327
hgs
parents:
diff changeset
   328
    @scope:       public
hgs
parents:
diff changeset
   329
hgs
parents:
diff changeset
   330
    @parameters:
hgs
parents:
diff changeset
   331
       [out] NW_String_UCS2String_t** u
hgs
parents:
diff changeset
   332
                  The converted string.
hgs
parents:
diff changeset
   333
hgs
parents:
diff changeset
   334
       [in] NW_String_t* string
hgs
parents:
diff changeset
   335
                  The string to convert.
hgs
parents:
diff changeset
   336
hgs
parents:
diff changeset
   337
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
   338
                  The encoding of the string to be converted
hgs
parents:
diff changeset
   339
hgs
parents:
diff changeset
   340
    @description: Converts a string of a given encoding to ucs2_char.
hgs
parents:
diff changeset
   341
hgs
parents:
diff changeset
   342
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   343
                  Status of operation.
hgs
parents:
diff changeset
   344
hgs
parents:
diff changeset
   345
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   346
                  String converted.
hgs
parents:
diff changeset
   347
hgs
parents:
diff changeset
   348
       [NW_STAT_FAILURE]
hgs
parents:
diff changeset
   349
                  String not converted.
hgs
parents:
diff changeset
   350
hgs
parents:
diff changeset
   351
       [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
hgs
parents:
diff changeset
   352
                  Unsupported charset.
hgs
parents:
diff changeset
   353
hgs
parents:
diff changeset
   354
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   355
NW_Status_t 
hgs
parents:
diff changeset
   356
NW_String_stringToUCS2(NW_String_UCS2String_t** u, NW_String_t* string, NW_Uint32 encoding);
hgs
parents:
diff changeset
   357
hgs
parents:
diff changeset
   358
hgs
parents:
diff changeset
   359
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   360
    @function:    NW_String_UCS2BuffToString
hgs
parents:
diff changeset
   361
hgs
parents:
diff changeset
   362
    @synopsis:    Convert UCS2 buffer to string.
hgs
parents:
diff changeset
   363
hgs
parents:
diff changeset
   364
    @scope:       public
hgs
parents:
diff changeset
   365
hgs
parents:
diff changeset
   366
    @parameters:
hgs
parents:
diff changeset
   367
       [in] NW_String_UCS2Buff_t* u
hgs
parents:
diff changeset
   368
                  Source of data to convert.
hgs
parents:
diff changeset
   369
hgs
parents:
diff changeset
   370
       [out] NW_String_t* string
hgs
parents:
diff changeset
   371
                  The converted string.
hgs
parents:
diff changeset
   372
hgs
parents:
diff changeset
   373
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
   374
                  default
hgs
parents:
diff changeset
   375
hgs
parents:
diff changeset
   376
    @description: Convert UCS2 buffer to string.
hgs
parents:
diff changeset
   377
hgs
parents:
diff changeset
   378
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   379
                  Status of operation.
hgs
parents:
diff changeset
   380
hgs
parents:
diff changeset
   381
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   382
                  String converted.
hgs
parents:
diff changeset
   383
hgs
parents:
diff changeset
   384
       [NW_STAT_OUT_OFMEMORY]
hgs
parents:
diff changeset
   385
                  Out of memory.
hgs
parents:
diff changeset
   386
hgs
parents:
diff changeset
   387
       [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
hgs
parents:
diff changeset
   388
                  Unsupported charset.
hgs
parents:
diff changeset
   389
hgs
parents:
diff changeset
   390
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   391
IMPORT_C NW_Status_t 
hgs
parents:
diff changeset
   392
NW_String_UCS2BuffToString(NW_String_UCS2Buff_t* u, NW_String_t* string, NW_Uint32 encoding);
hgs
parents:
diff changeset
   393
hgs
parents:
diff changeset
   394
hgs
parents:
diff changeset
   395
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   396
    @function:    NW_String_stringToUCS2Buff
hgs
parents:
diff changeset
   397
hgs
parents:
diff changeset
   398
    @synopsis:    Convert string to UCS2 buffer.
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_String_t* string
hgs
parents:
diff changeset
   404
                  The string.
hgs
parents:
diff changeset
   405
hgs
parents:
diff changeset
   406
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
   407
                  Initial encoding.
hgs
parents:
diff changeset
   408
hgs
parents:
diff changeset
   409
    @description: Convert a NW_String_t (in any of the supported character
hgs
parents:
diff changeset
   410
                  set encodings) to a UCS2Buff string. Caller is responsible
hgs
parents:
diff changeset
   411
                  for freeing the pointer returned by this function. Returned
hgs
parents:
diff changeset
   412
                  array is null-terminated.
hgs
parents:
diff changeset
   413
hgs
parents:
diff changeset
   414
    @returns:     NW_String_UCS2Buff_t* 
hgs
parents:
diff changeset
   415
                  USC2 buffer or NULL if it fails.
hgs
parents:
diff changeset
   416
hgs
parents:
diff changeset
   417
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   418
NW_String_UCS2Buff_t* 
hgs
parents:
diff changeset
   419
NW_String_stringToUCS2Buff(NW_String_t* string, NW_Uint32 encoding);
hgs
parents:
diff changeset
   420
hgs
parents:
diff changeset
   421
hgs
parents:
diff changeset
   422
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   423
    @function:    NW_String_ucs2CharToString
hgs
parents:
diff changeset
   424
hgs
parents:
diff changeset
   425
    @synopsis:    Convert UCS2 characters to string.
hgs
parents:
diff changeset
   426
    @scope:       public
hgs
parents:
diff changeset
   427
hgs
parents:
diff changeset
   428
    @parameters:
hgs
parents:
diff changeset
   429
       [in-out] NW_String_t* string
hgs
parents:
diff changeset
   430
                  The string.
hgs
parents:
diff changeset
   431
hgs
parents:
diff changeset
   432
       [in] NW_Ucs2* u
hgs
parents:
diff changeset
   433
                  The characters to convert.
hgs
parents:
diff changeset
   434
hgs
parents:
diff changeset
   435
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
   436
                  Target encoding.
hgs
parents:
diff changeset
   437
hgs
parents:
diff changeset
   438
    @description: Convert UCS2 characters to string.
hgs
parents:
diff changeset
   439
hgs
parents:
diff changeset
   440
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   441
                  The status of the operation.
hgs
parents:
diff changeset
   442
hgs
parents:
diff changeset
   443
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   444
                  String filled with chars.
hgs
parents:
diff changeset
   445
hgs
parents:
diff changeset
   446
       [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
hgs
parents:
diff changeset
   447
                  Unsupported encoding.
hgs
parents:
diff changeset
   448
hgs
parents:
diff changeset
   449
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   450
                  String storage could not be allocated.
hgs
parents:
diff changeset
   451
hgs
parents:
diff changeset
   452
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   453
IMPORT_C NW_Status_t 
hgs
parents:
diff changeset
   454
NW_String_ucs2CharToString (NW_String_t* string, NW_Ucs2* u, NW_Uint32 encoding);
hgs
parents:
diff changeset
   455
hgs
parents:
diff changeset
   456
hgs
parents:
diff changeset
   457
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   458
    @function:    NW_String_entityToString
hgs
parents:
diff changeset
   459
hgs
parents:
diff changeset
   460
    @synopsis:    Convert entity to string.
hgs
parents:
diff changeset
   461
    @scope:       public
hgs
parents:
diff changeset
   462
hgs
parents:
diff changeset
   463
    @parameters:
hgs
parents:
diff changeset
   464
       [in] NW_Uint32 entity
hgs
parents:
diff changeset
   465
                  default
hgs
parents:
diff changeset
   466
hgs
parents:
diff changeset
   467
       [in-out] NW_String_t* str
hgs
parents:
diff changeset
   468
                  The string.
hgs
parents:
diff changeset
   469
hgs
parents:
diff changeset
   470
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
   471
                  Target encoding.
hgs
parents:
diff changeset
   472
hgs
parents:
diff changeset
   473
    @description: Convert entity to string.
hgs
parents:
diff changeset
   474
hgs
parents:
diff changeset
   475
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   476
                  The status of the operation.
hgs
parents:
diff changeset
   477
hgs
parents:
diff changeset
   478
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   479
                  String initialized from entity.
hgs
parents:
diff changeset
   480
hgs
parents:
diff changeset
   481
       [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
hgs
parents:
diff changeset
   482
                  Unsupported encoding.
hgs
parents:
diff changeset
   483
hgs
parents:
diff changeset
   484
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   485
                  String storage could not be allocated.
hgs
parents:
diff changeset
   486
hgs
parents:
diff changeset
   487
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   488
IMPORT_C NW_Status_t 
hgs
parents:
diff changeset
   489
NW_String_entityToString(NW_Uint32 entity, NW_String_t* str, NW_Uint32 encoding);
hgs
parents:
diff changeset
   490
hgs
parents:
diff changeset
   491
hgs
parents:
diff changeset
   492
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   493
    @function:    NW_String_byteToString
hgs
parents:
diff changeset
   494
hgs
parents:
diff changeset
   495
    @synopsis:    Convert byte array to string.
hgs
parents:
diff changeset
   496
hgs
parents:
diff changeset
   497
    @scope:       public
hgs
parents:
diff changeset
   498
hgs
parents:
diff changeset
   499
    @parameters:
hgs
parents:
diff changeset
   500
       [in] NW_Byte* s
hgs
parents:
diff changeset
   501
                  Bytes to initialize string with.
hgs
parents:
diff changeset
   502
hgs
parents:
diff changeset
   503
       [in-out] NW_String_t* str
hgs
parents:
diff changeset
   504
                  The string.
hgs
parents:
diff changeset
   505
hgs
parents:
diff changeset
   506
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
   507
                  The encoding.
hgs
parents:
diff changeset
   508
hgs
parents:
diff changeset
   509
    @description: Convert byte to string.
hgs
parents:
diff changeset
   510
hgs
parents:
diff changeset
   511
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   512
                  The status of the operation.
hgs
parents:
diff changeset
   513
hgs
parents:
diff changeset
   514
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   515
                  String initialized from bytes.
hgs
parents:
diff changeset
   516
hgs
parents:
diff changeset
   517
       [NW_STAT_FAILURE]
hgs
parents:
diff changeset
   518
                  String not initialized.
hgs
parents:
diff changeset
   519
hgs
parents:
diff changeset
   520
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   521
NW_Status_t 
hgs
parents:
diff changeset
   522
NW_String_byteToString(NW_Byte* s, NW_String_t* str, NW_Uint32 encoding);
hgs
parents:
diff changeset
   523
hgs
parents:
diff changeset
   524
hgs
parents:
diff changeset
   525
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   526
    @function:    NW_String_tokenToString
hgs
parents:
diff changeset
   527
hgs
parents:
diff changeset
   528
    @synopsis:    Token to string.
hgs
parents:
diff changeset
   529
hgs
parents:
diff changeset
   530
    @scope:       public
hgs
parents:
diff changeset
   531
hgs
parents:
diff changeset
   532
    @parameters:
hgs
parents:
diff changeset
   533
       [in] NW_Uint32 token
hgs
parents:
diff changeset
   534
                  default
hgs
parents:
diff changeset
   535
hgs
parents:
diff changeset
   536
       [in-out] NW_String_t* str
hgs
parents:
diff changeset
   537
                  The string.
hgs
parents:
diff changeset
   538
hgs
parents:
diff changeset
   539
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
   540
                  default
hgs
parents:
diff changeset
   541
hgs
parents:
diff changeset
   542
    @description: Token to string.
hgs
parents:
diff changeset
   543
hgs
parents:
diff changeset
   544
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   545
                  Status of operation.
hgs
parents:
diff changeset
   546
hgs
parents:
diff changeset
   547
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   548
                  String converted.
hgs
parents:
diff changeset
   549
hgs
parents:
diff changeset
   550
       [NW_STAT_FAILURE]
hgs
parents:
diff changeset
   551
                  Token not found in current dictionary.
hgs
parents:
diff changeset
   552
hgs
parents:
diff changeset
   553
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   554
                  Out of memory.
hgs
parents:
diff changeset
   555
hgs
parents:
diff changeset
   556
       [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
hgs
parents:
diff changeset
   557
                  Unsupported charset.
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_String_tokenToString(NW_Uint32 token, NW_String_t* str, NW_Uint32 encoding);
hgs
parents:
diff changeset
   562
hgs
parents:
diff changeset
   563
/* ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   564
   String manipulation functions
hgs
parents:
diff changeset
   565
** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   566
hgs
parents:
diff changeset
   567
hgs
parents:
diff changeset
   568
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   569
    @function:    NW_String_copy
hgs
parents:
diff changeset
   570
hgs
parents:
diff changeset
   571
    @synopsis:    Copy string duplicating storage.
hgs
parents:
diff changeset
   572
hgs
parents:
diff changeset
   573
    @scope:       public
hgs
parents:
diff changeset
   574
hgs
parents:
diff changeset
   575
    @parameters:
hgs
parents:
diff changeset
   576
       [out] NW_String_t* dest
hgs
parents:
diff changeset
   577
                  The destination string.
hgs
parents:
diff changeset
   578
hgs
parents:
diff changeset
   579
       [in] NW_String_t* source
hgs
parents:
diff changeset
   580
                  The source string.
hgs
parents:
diff changeset
   581
hgs
parents:
diff changeset
   582
    @description: If the source owns the storage (i.e. it can modify and/or 
hgs
parents:
diff changeset
   583
                  delete it) than performs a deep copy. This duplicates the 
hgs
parents:
diff changeset
   584
                  storage. Otherwise it performs a shallow copy.
hgs
parents:
diff changeset
   585
hgs
parents:
diff changeset
   586
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   587
                  Status of operation.
hgs
parents:
diff changeset
   588
hgs
parents:
diff changeset
   589
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   590
                  String copied.
hgs
parents:
diff changeset
   591
  
hgs
parents:
diff changeset
   592
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   593
                  Ran out of memory.
hgs
parents:
diff changeset
   594
hgs
parents:
diff changeset
   595
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   596
NW_Status_t 
hgs
parents:
diff changeset
   597
NW_String_copy(NW_String_t* dest, NW_String_t* source);
hgs
parents:
diff changeset
   598
hgs
parents:
diff changeset
   599
hgs
parents:
diff changeset
   600
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   601
    @function:    NW_String_shallowCopy
hgs
parents:
diff changeset
   602
hgs
parents:
diff changeset
   603
    @synopsis:    Copies without duplicating storage.
hgs
parents:
diff changeset
   604
hgs
parents:
diff changeset
   605
    @scope:       public
hgs
parents:
diff changeset
   606
hgs
parents:
diff changeset
   607
    @parameters:
hgs
parents:
diff changeset
   608
       [out] NW_String_t* dest
hgs
parents:
diff changeset
   609
                  The destination string.
hgs
parents:
diff changeset
   610
hgs
parents:
diff changeset
   611
       [in] NW_String_t* source
hgs
parents:
diff changeset
   612
                  The source string.
hgs
parents:
diff changeset
   613
hgs
parents:
diff changeset
   614
    @description: Performs a shallow copy. The storage is shared with 
hgs
parents:
diff changeset
   615
                  the copy, not duplicated.
hgs
parents:
diff changeset
   616
hgs
parents:
diff changeset
   617
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   618
                  Status of operation.
hgs
parents:
diff changeset
   619
hgs
parents:
diff changeset
   620
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   621
                  Always returns success.
hgs
parents:
diff changeset
   622
hgs
parents:
diff changeset
   623
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   624
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   625
NW_String_shallowCopy(NW_String_t* dest, NW_String_t* source);
hgs
parents:
diff changeset
   626
hgs
parents:
diff changeset
   627
hgs
parents:
diff changeset
   628
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   629
    @function:    NW_String_deepCopy
hgs
parents:
diff changeset
   630
hgs
parents:
diff changeset
   631
    @synopsis:    Copy string duplicating storage.
hgs
parents:
diff changeset
   632
hgs
parents:
diff changeset
   633
    @scope:       public
hgs
parents:
diff changeset
   634
hgs
parents:
diff changeset
   635
    @parameters:
hgs
parents:
diff changeset
   636
       [out] NW_String_t* dest
hgs
parents:
diff changeset
   637
                  The destination string.
hgs
parents:
diff changeset
   638
hgs
parents:
diff changeset
   639
       [in] NW_String_t* source
hgs
parents:
diff changeset
   640
                  The source string.
hgs
parents:
diff changeset
   641
hgs
parents:
diff changeset
   642
    @description: Performs a deep copy. The storage is duplicated so it 
hgs
parents:
diff changeset
   643
                  is not shared with the original.
hgs
parents:
diff changeset
   644
hgs
parents:
diff changeset
   645
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   646
                  Status of operation.
hgs
parents:
diff changeset
   647
hgs
parents:
diff changeset
   648
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   649
                  String copied.
hgs
parents:
diff changeset
   650
  
hgs
parents:
diff changeset
   651
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   652
                  Ran out of memory.
hgs
parents:
diff changeset
   653
hgs
parents:
diff changeset
   654
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   655
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   656
NW_String_deepCopy(NW_String_t* dest, NW_String_t* source);
hgs
parents:
diff changeset
   657
hgs
parents:
diff changeset
   658
hgs
parents:
diff changeset
   659
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   660
    @function:    NW_String_concatenate
hgs
parents:
diff changeset
   661
hgs
parents:
diff changeset
   662
    @synopsis:    Concatenates two strings together.
hgs
parents:
diff changeset
   663
hgs
parents:
diff changeset
   664
    @scope:       public
hgs
parents:
diff changeset
   665
hgs
parents:
diff changeset
   666
    @parameters:
hgs
parents:
diff changeset
   667
       [in-out] NW_String_t* dest
hgs
parents:
diff changeset
   668
                  The destination string.
hgs
parents:
diff changeset
   669
hgs
parents:
diff changeset
   670
       [in] NW_String_t* source
hgs
parents:
diff changeset
   671
                  The source string.
hgs
parents:
diff changeset
   672
hgs
parents:
diff changeset
   673
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
   674
                  Encoding both strings are assumed to have.
hgs
parents:
diff changeset
   675
hgs
parents:
diff changeset
   676
    @description: Concatenated two strings together.
hgs
parents:
diff changeset
   677
hgs
parents:
diff changeset
   678
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   679
                  Status of operation.
hgs
parents:
diff changeset
   680
hgs
parents:
diff changeset
   681
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   682
                  String copied.
hgs
parents:
diff changeset
   683
  
hgs
parents:
diff changeset
   684
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   685
                  Ran out of memory.
hgs
parents:
diff changeset
   686
hgs
parents:
diff changeset
   687
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   688
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   689
NW_String_concatenate(NW_String_t* dest, NW_String_t* source, NW_Uint32 encoding);
hgs
parents:
diff changeset
   690
hgs
parents:
diff changeset
   691
hgs
parents:
diff changeset
   692
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   693
    @function:    NW_String_findChar
hgs
parents:
diff changeset
   694
hgs
parents:
diff changeset
   695
    @synopsis:    Finds char in string.
hgs
parents:
diff changeset
   696
hgs
parents:
diff changeset
   697
    @scope:       public
hgs
parents:
diff changeset
   698
hgs
parents:
diff changeset
   699
    @parameters:
hgs
parents:
diff changeset
   700
       [in] NW_String_t* string
hgs
parents:
diff changeset
   701
                  The string.
hgs
parents:
diff changeset
   702
hgs
parents:
diff changeset
   703
       [in] NW_Int32 character
hgs
parents:
diff changeset
   704
                  Character to find.
hgs
parents:
diff changeset
   705
hgs
parents:
diff changeset
   706
    @description: Find char in string.
hgs
parents:
diff changeset
   707
hgs
parents:
diff changeset
   708
    @returns:     NW_Byte*
hgs
parents:
diff changeset
   709
                  Pointer to character if found, otherwise NULL.
hgs
parents:
diff changeset
   710
hgs
parents:
diff changeset
   711
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   712
NW_Byte*
hgs
parents:
diff changeset
   713
NW_String_findChar(NW_String_t* string, NW_Int32 character, NW_Uint32 encoding);
hgs
parents:
diff changeset
   714
hgs
parents:
diff changeset
   715
hgs
parents:
diff changeset
   716
/* ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   717
   Functions
hgs
parents:
diff changeset
   718
** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   719
hgs
parents:
diff changeset
   720
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   721
    @function:    NW_String_ucs2CharInit
hgs
parents:
diff changeset
   722
hgs
parents:
diff changeset
   723
    @synopsis:    Initialize UCS2 characters.
hgs
parents:
diff changeset
   724
hgs
parents:
diff changeset
   725
    @scope:       public
hgs
parents:
diff changeset
   726
hgs
parents:
diff changeset
   727
    @parameters:
hgs
parents:
diff changeset
   728
       [out] NW_Ucs2** data
hgs
parents:
diff changeset
   729
                  Allocated storage.
hgs
parents:
diff changeset
   730
hgs
parents:
diff changeset
   731
       [in] NW_Uint32 length
hgs
parents:
diff changeset
   732
                  The length.
hgs
parents:
diff changeset
   733
hgs
parents:
diff changeset
   734
    @description: Allocates enough storage to hold the specified number 
hgs
parents:
diff changeset
   735
                  of characters.
hgs
parents:
diff changeset
   736
hgs
parents:
diff changeset
   737
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   738
                  Status of operation.
hgs
parents:
diff changeset
   739
hgs
parents:
diff changeset
   740
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   741
                  String copied.
hgs
parents:
diff changeset
   742
  
hgs
parents:
diff changeset
   743
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   744
                  Ran out of memory.
hgs
parents:
diff changeset
   745
hgs
parents:
diff changeset
   746
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   747
NW_Status_t 
hgs
parents:
diff changeset
   748
NW_String_ucs2CharInit(NW_Ucs2** data, NW_Uint32 length);
hgs
parents:
diff changeset
   749
hgs
parents:
diff changeset
   750
hgs
parents:
diff changeset
   751
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   752
    @function:    NW_String_ucs2CharLength
hgs
parents:
diff changeset
   753
hgs
parents:
diff changeset
   754
    @synopsis:    Get character length.
hgs
parents:
diff changeset
   755
hgs
parents:
diff changeset
   756
    @scope:       public
hgs
parents:
diff changeset
   757
hgs
parents:
diff changeset
   758
    @parameters:
hgs
parents:
diff changeset
   759
       [in] NW_Ucs2* data
hgs
parents:
diff changeset
   760
                  Buffer to count.
hgs
parents:
diff changeset
   761
hgs
parents:
diff changeset
   762
    @description: Get character length.
hgs
parents:
diff changeset
   763
hgs
parents:
diff changeset
   764
    @returns:     NW_Int32
hgs
parents:
diff changeset
   765
                  Length of buffer in characters.
hgs
parents:
diff changeset
   766
hgs
parents:
diff changeset
   767
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   768
IMPORT_C NW_Int32 
hgs
parents:
diff changeset
   769
NW_String_ucs2CharLength (NW_Ucs2* data);
hgs
parents:
diff changeset
   770
hgs
parents:
diff changeset
   771
hgs
parents:
diff changeset
   772
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   773
    @function:    NW_String_byteToUCS2Char
hgs
parents:
diff changeset
   774
hgs
parents:
diff changeset
   775
    @synopsis:    Convert byte to UCS2 characters.
hgs
parents:
diff changeset
   776
hgs
parents:
diff changeset
   777
    @scope:       public
hgs
parents:
diff changeset
   778
hgs
parents:
diff changeset
   779
    @parameters:
hgs
parents:
diff changeset
   780
       [in] NW_Byte* b
hgs
parents:
diff changeset
   781
                  default
hgs
parents:
diff changeset
   782
hgs
parents:
diff changeset
   783
       [in] NW_Uint32 length
hgs
parents:
diff changeset
   784
                  default
hgs
parents:
diff changeset
   785
hgs
parents:
diff changeset
   786
       [out] NW_Ucs2** data
hgs
parents:
diff changeset
   787
                  default
hgs
parents:
diff changeset
   788
hgs
parents:
diff changeset
   789
    @description: Given an arbitrary NW_Byte array with no known character 
hgs
parents:
diff changeset
   790
                  encoding, convert it to a NW_Ucs2 string. Actually it 
hgs
parents:
diff changeset
   791
                  copies the bytes and assumes the source is UCS2 encoding. 
hgs
parents:
diff changeset
   792
hgs
parents:
diff changeset
   793
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   794
                  Status of operation.
hgs
parents:
diff changeset
   795
hgs
parents:
diff changeset
   796
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   797
                  Bytes copied.
hgs
parents:
diff changeset
   798
  
hgs
parents:
diff changeset
   799
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   800
                  Ran out of memory.
hgs
parents:
diff changeset
   801
hgs
parents:
diff changeset
   802
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   803
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   804
NW_String_byteToUCS2Char (NW_Byte* b, NW_Uint32 length, NW_Ucs2** data);
hgs
parents:
diff changeset
   805
hgs
parents:
diff changeset
   806
hgs
parents:
diff changeset
   807
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   808
    @function:    NW_String_entityToUCS2Char
hgs
parents:
diff changeset
   809
hgs
parents:
diff changeset
   810
    @synopsis:    Convert entity to UCS2 character.
hgs
parents:
diff changeset
   811
hgs
parents:
diff changeset
   812
    @scope:       public
hgs
parents:
diff changeset
   813
hgs
parents:
diff changeset
   814
    @parameters:
hgs
parents:
diff changeset
   815
       [in] NW_Uint32 entity
hgs
parents:
diff changeset
   816
                  default
hgs
parents:
diff changeset
   817
hgs
parents:
diff changeset
   818
       [out] NW_Ucs2** data
hgs
parents:
diff changeset
   819
                  default
hgs
parents:
diff changeset
   820
hgs
parents:
diff changeset
   821
    @description: Convert entity to UCS2 character.
hgs
parents:
diff changeset
   822
hgs
parents:
diff changeset
   823
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   824
                  Status of operation.
hgs
parents:
diff changeset
   825
hgs
parents:
diff changeset
   826
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   827
                  Bytes copied.
hgs
parents:
diff changeset
   828
  
hgs
parents:
diff changeset
   829
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   830
                  Ran out of memory.
hgs
parents:
diff changeset
   831
hgs
parents:
diff changeset
   832
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   833
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   834
NW_String_entityToUCS2Char(NW_Uint32 entity, NW_Ucs2** data);
hgs
parents:
diff changeset
   835
hgs
parents:
diff changeset
   836
/*
hgs
parents:
diff changeset
   837
 * Given an arbitrary NW_Byte array with no known character encoding, 
hgs
parents:
diff changeset
   838
 * convert it to a NW_Ucs2 string.
hgs
parents:
diff changeset
   839
 *
hgs
parents:
diff changeset
   840
 */
hgs
parents:
diff changeset
   841
/* Not used. 8/14/01 */
hgs
parents:
diff changeset
   842
/*
hgs
parents:
diff changeset
   843
NW_Status_t 
hgs
parents:
diff changeset
   844
NW_String_tokenToUCS2Char(NW_Uint32 token, NW_Ucs2** data);
hgs
parents:
diff changeset
   845
*/
hgs
parents:
diff changeset
   846
hgs
parents:
diff changeset
   847
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   848
    @function:    NW_String_stringToUCS2Char
hgs
parents:
diff changeset
   849
hgs
parents:
diff changeset
   850
    @synopsis:    default
hgs
parents:
diff changeset
   851
hgs
parents:
diff changeset
   852
    @scope:       public
hgs
parents:
diff changeset
   853
hgs
parents:
diff changeset
   854
    @parameters:
hgs
parents:
diff changeset
   855
       [in] const string
hgs
parents:
diff changeset
   856
                  default
hgs
parents:
diff changeset
   857
hgs
parents:
diff changeset
   858
       [in] NW_Uint32 encoding
hgs
parents:
diff changeset
   859
                  default
hgs
parents:
diff changeset
   860
hgs
parents:
diff changeset
   861
       [out] NW_Ucs2 **data
hgs
parents:
diff changeset
   862
                  default
hgs
parents:
diff changeset
   863
hgs
parents:
diff changeset
   864
    @description: default
hgs
parents:
diff changeset
   865
hgs
parents:
diff changeset
   866
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   867
                  Status of operation.
hgs
parents:
diff changeset
   868
hgs
parents:
diff changeset
   869
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   870
                  Bytes copied.
hgs
parents:
diff changeset
   871
  
hgs
parents:
diff changeset
   872
       [NW_STAT_FAILURE]
hgs
parents:
diff changeset
   873
                  No bytes to copy.
hgs
parents:
diff changeset
   874
  
hgs
parents:
diff changeset
   875
       [NW_STAT_OUT_OF_MEMORY]
hgs
parents:
diff changeset
   876
                  Ran out of memory.
hgs
parents:
diff changeset
   877
hgs
parents:
diff changeset
   878
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   879
IMPORT_C NW_Status_t 
hgs
parents:
diff changeset
   880
NW_String_stringToUCS2Char(const NW_String_t* string, NW_Uint32 encoding, NW_Ucs2 **data);
hgs
parents:
diff changeset
   881
hgs
parents:
diff changeset
   882
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   883
    @function:    NW_String_deleteStorage
hgs
parents:
diff changeset
   884
hgs
parents:
diff changeset
   885
    @synopsis:    Delete storage.
hgs
parents:
diff changeset
   886
hgs
parents:
diff changeset
   887
    @scope:       public
hgs
parents:
diff changeset
   888
hgs
parents:
diff changeset
   889
    @parameters:
hgs
parents:
diff changeset
   890
       [in-out] NW_String_t* s
hgs
parents:
diff changeset
   891
                  The string.
hgs
parents:
diff changeset
   892
hgs
parents:
diff changeset
   893
    @description: Delete storage if user owns it otherwise does nothing.
hgs
parents:
diff changeset
   894
hgs
parents:
diff changeset
   895
    @returns:     NW_Status_t
hgs
parents:
diff changeset
   896
                  Status of operation.
hgs
parents:
diff changeset
   897
hgs
parents:
diff changeset
   898
       [NW_STAT_SUCCESS]
hgs
parents:
diff changeset
   899
                  Always returns success.
hgs
parents:
diff changeset
   900
hgs
parents:
diff changeset
   901
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   902
IMPORT_C NW_Status_t
hgs
parents:
diff changeset
   903
NW_String_deleteStorage(NW_String_t* s);
hgs
parents:
diff changeset
   904
hgs
parents:
diff changeset
   905
#ifdef __cplusplus
hgs
parents:
diff changeset
   906
} /*extern "C" { */
hgs
parents:
diff changeset
   907
#endif /* __cplusplus */
hgs
parents:
diff changeset
   908
hgs
parents:
diff changeset
   909
#endif  /* NW_STRING_STRING_H */