--- a/xmlsrv_plat/cxml_library_api/inc/nw_string_string.h Tue Aug 31 17:02:56 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,909 +0,0 @@
-/*
-* Copyright (c) 2000 - 2001 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-/** ----------------------------------------------------------------------- **
- @package: NW_String
-
- @synopsis: default
-
- @description: default
-
- ** ----------------------------------------------------------------------- **/
-
-#ifndef NW_STRING_STRING_H
-#define NW_STRING_STRING_H
-
-#include <xml/cxml/cxml_proj.h>
-#include <xml/cxml/nw_string_char.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-
-/** ----------------------------------------------------------------------- **
- @struct: NW_String_String
-
- @synopsis: The basic wbxml string type.
-
- @scope: public
- @variables:
- NW_Uint32 length
- In bytes.
-
- NW_Byte* storage
- default
-
- @description: The basic wbxml string type.
- ** ----------------------------------------------------------------------- **/
-typedef struct NW_String_String_s{
- NW_Uint32 length;
- NW_Byte* storage;
-}NW_String_String_t;
-
-/* Deprecated - Left in for backward compatibility */
-typedef struct NW_String_String_s NW_String_t;
-
-typedef struct NW_String_String_s NW_String_UCS2String_t;
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_new
-
- @synopsis: Consructor.
-
- @scope: public
-
- @description: Constructor.
-
- @returns: NW_String_t*
- New string or NULL if out of memory.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_String_t*
-NW_String_new (void);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_initialize
-
- @synopsis: Initialize.
-
- @scope: public
-
- @parameters:
- [in] NW_String_t* string
- The string.
-
- [in] void* storage
- The storage.
-
- [in] NW_Uint32 encoding
- The encoding.
-
- @description: Initialize the string by assigning length, encoding
- and storage. Note that the length is calculated.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- String initialized.
-
- [NW_STAT_FAILURE]
- String not initialized.
-
- [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
- Unsupported charset.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_initialize (NW_String_t* string, void *storage, NW_Uint32 encoding);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_delete
-
- @synopsis: Delete.
-
- @scope: public
-
- @parameters:
- [in-out] NW_String_t* string
- The string.
-
- @description: Freeing a string may not free the storage. String storage
- is complicated by the fact that it can be allocated outside
- the bounds of the parser. If so, it is not freed here.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C void
-NW_String_delete(NW_String_t* string);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_getByteCount
-
- @synopsis: Returns number of bytes in the string including NULL
- terminator.
-
- @scope: public
-
- @parameters:
- [in] NW_String_t* string
- The string.
-
- @description: Returns number of bytes in the string including NULL
- terminator.
-
- @returns: NW_Uint16
- Length in bytes.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Uint32
-NW_String_getByteCount (NW_String_t* string);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_getCharCount
-
- @synopsis: Returns number of characters in the string excluding NULL
- terminator.
-
- @scope: public
-
- @parameters:
- [in] NW_String_t* string
- The string.
-
- [in] NW_Uint32 encoding
- The encoding.
-
- @description: Returns number of characters in the string excluding NULL
- terminator.
-
- @returns: NW_Uint16
- Length of string in characters.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Uint16
-NW_String_getCharCount(NW_String_t* string, NW_Uint32 encoding);
-
-/*
- * The following function is a duplication of NW_String_getByteCount to
- * handle big files. For not affecting the components other than
- * browser, this function is only called inside the browser.).
- *
- * INSTEAD OF CALLING NW_String_getByteCount, ALL THE BROWSER CODES SHOULD
- * CALL THIS DUPLICATE FUNCTION TO GET CHARACTER COUNTS.
- *
- */
-IMPORT_C NW_Uint32
-NW_String_getCharCount32(NW_String_t* string, NW_Uint32 encoding);
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_getStorage
-
- @synopsis: Returns NULL or valid storage.
-
- @scope: public
-
- @parameters:
- [in] NW_String_t* str
- The string.
-
- @description: Returns the storage occupied by the string (in bytes).
-
- @returns: NW_Byte*
- String storage.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Byte*
-NW_String_getStorage(NW_String_t* str);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_equals
-
- @synopsis: Determines if strings are equal.
-
- @scope: public
-
- @parameters:
- [in] const NW_String_t* string1
- The string.
-
- [in] const NW_String_t* string2
- The other string.
-
- @description: This function assumes the encoding of each string is
- the same. It does not attempt to convert strings of
- different encodings because encoding is regarded as
- implicit for XML strings. NOte that if both string
- pointers are NULL thay are considered unequal.
-
- @returns: NW_Int32
- 1 if the strings are equal; otherwise 0.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Int32
-NW_String_equals(const NW_String_t* string1, const NW_String_t* string2);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_getUserOwnsStorage
-
- @synopsis: Get user owns storage flag.
-
- @scope: public
-
- @parameters:
- [in] NW_String_t* s
- The string.
-
- @description: Get user owns storage flag. If the user owns the storage
- it means that this string is the sole user of the storage
- and can delete it when done.
-
- @returns: NW_Bool
- NW_TRUE if user owns storage, otherwise NW_FALSE.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Bool
-NW_String_getUserOwnsStorage(NW_String_t* s);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_setUserOwnsStorage
-
- @synopsis: Set user owns storage flag.
-
- @scope: public
-
- @parameters:
- [in-out] NW_String_t* s
- The string.
-
- @description: Set user owns storage flag. (see NW_String_getUserOwnsStorage)
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- Always returns success.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_setUserOwnsStorage(NW_String_t* s);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_clearUserOwnsStorage
-
- @synopsis: Clear user owns storage flag.
-
- @scope: public
-
- @parameters:
- [in-out] NW_String_t* s
- The string.
-
- @description: Clear user owns storage flag. This means that someone
- else may own the storage.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- Always returns success.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_clearUserOwnsStorage(NW_String_t* s);
-
-/* ----------------------------------------------------------------------- **
- Conversion routines
-** ----------------------------------------------------------------------- **/
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_stringToUCS2
-
- @synopsis: Convert string to UCS2.
-
- @scope: public
-
- @parameters:
- [out] NW_String_UCS2String_t** u
- The converted string.
-
- [in] NW_String_t* string
- The string to convert.
-
- [in] NW_Uint32 encoding
- The encoding of the string to be converted
-
- @description: Converts a string of a given encoding to ucs2_char.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- String converted.
-
- [NW_STAT_FAILURE]
- String not converted.
-
- [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
- Unsupported charset.
-
- ** ----------------------------------------------------------------------- **/
-NW_Status_t
-NW_String_stringToUCS2(NW_String_UCS2String_t** u, NW_String_t* string, NW_Uint32 encoding);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_UCS2BuffToString
-
- @synopsis: Convert UCS2 buffer to string.
-
- @scope: public
-
- @parameters:
- [in] NW_String_UCS2Buff_t* u
- Source of data to convert.
-
- [out] NW_String_t* string
- The converted string.
-
- [in] NW_Uint32 encoding
- default
-
- @description: Convert UCS2 buffer to string.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- String converted.
-
- [NW_STAT_OUT_OFMEMORY]
- Out of memory.
-
- [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
- Unsupported charset.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_UCS2BuffToString(NW_String_UCS2Buff_t* u, NW_String_t* string, NW_Uint32 encoding);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_stringToUCS2Buff
-
- @synopsis: Convert string to UCS2 buffer.
-
- @scope: public
-
- @parameters:
- [in] NW_String_t* string
- The string.
-
- [in] NW_Uint32 encoding
- Initial encoding.
-
- @description: Convert a NW_String_t (in any of the supported character
- set encodings) to a UCS2Buff string. Caller is responsible
- for freeing the pointer returned by this function. Returned
- array is null-terminated.
-
- @returns: NW_String_UCS2Buff_t*
- USC2 buffer or NULL if it fails.
-
- ** ----------------------------------------------------------------------- **/
-NW_String_UCS2Buff_t*
-NW_String_stringToUCS2Buff(NW_String_t* string, NW_Uint32 encoding);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_ucs2CharToString
-
- @synopsis: Convert UCS2 characters to string.
- @scope: public
-
- @parameters:
- [in-out] NW_String_t* string
- The string.
-
- [in] NW_Ucs2* u
- The characters to convert.
-
- [in] NW_Uint32 encoding
- Target encoding.
-
- @description: Convert UCS2 characters to string.
-
- @returns: NW_Status_t
- The status of the operation.
-
- [NW_STAT_SUCCESS]
- String filled with chars.
-
- [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
- Unsupported encoding.
-
- [NW_STAT_OUT_OF_MEMORY]
- String storage could not be allocated.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_ucs2CharToString (NW_String_t* string, NW_Ucs2* u, NW_Uint32 encoding);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_entityToString
-
- @synopsis: Convert entity to string.
- @scope: public
-
- @parameters:
- [in] NW_Uint32 entity
- default
-
- [in-out] NW_String_t* str
- The string.
-
- [in] NW_Uint32 encoding
- Target encoding.
-
- @description: Convert entity to string.
-
- @returns: NW_Status_t
- The status of the operation.
-
- [NW_STAT_SUCCESS]
- String initialized from entity.
-
- [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
- Unsupported encoding.
-
- [NW_STAT_OUT_OF_MEMORY]
- String storage could not be allocated.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_entityToString(NW_Uint32 entity, NW_String_t* str, NW_Uint32 encoding);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_byteToString
-
- @synopsis: Convert byte array to string.
-
- @scope: public
-
- @parameters:
- [in] NW_Byte* s
- Bytes to initialize string with.
-
- [in-out] NW_String_t* str
- The string.
-
- [in] NW_Uint32 encoding
- The encoding.
-
- @description: Convert byte to string.
-
- @returns: NW_Status_t
- The status of the operation.
-
- [NW_STAT_SUCCESS]
- String initialized from bytes.
-
- [NW_STAT_FAILURE]
- String not initialized.
-
- ** ----------------------------------------------------------------------- **/
-NW_Status_t
-NW_String_byteToString(NW_Byte* s, NW_String_t* str, NW_Uint32 encoding);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_tokenToString
-
- @synopsis: Token to string.
-
- @scope: public
-
- @parameters:
- [in] NW_Uint32 token
- default
-
- [in-out] NW_String_t* str
- The string.
-
- [in] NW_Uint32 encoding
- default
-
- @description: Token to string.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- String converted.
-
- [NW_STAT_FAILURE]
- Token not found in current dictionary.
-
- [NW_STAT_OUT_OF_MEMORY]
- Out of memory.
-
- [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
- Unsupported charset.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_tokenToString(NW_Uint32 token, NW_String_t* str, NW_Uint32 encoding);
-
-/* ----------------------------------------------------------------------- **
- String manipulation functions
-** ----------------------------------------------------------------------- **/
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_copy
-
- @synopsis: Copy string duplicating storage.
-
- @scope: public
-
- @parameters:
- [out] NW_String_t* dest
- The destination string.
-
- [in] NW_String_t* source
- The source string.
-
- @description: If the source owns the storage (i.e. it can modify and/or
- delete it) than performs a deep copy. This duplicates the
- storage. Otherwise it performs a shallow copy.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- String copied.
-
- [NW_STAT_OUT_OF_MEMORY]
- Ran out of memory.
-
- ** ----------------------------------------------------------------------- **/
-NW_Status_t
-NW_String_copy(NW_String_t* dest, NW_String_t* source);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_shallowCopy
-
- @synopsis: Copies without duplicating storage.
-
- @scope: public
-
- @parameters:
- [out] NW_String_t* dest
- The destination string.
-
- [in] NW_String_t* source
- The source string.
-
- @description: Performs a shallow copy. The storage is shared with
- the copy, not duplicated.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- Always returns success.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_shallowCopy(NW_String_t* dest, NW_String_t* source);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_deepCopy
-
- @synopsis: Copy string duplicating storage.
-
- @scope: public
-
- @parameters:
- [out] NW_String_t* dest
- The destination string.
-
- [in] NW_String_t* source
- The source string.
-
- @description: Performs a deep copy. The storage is duplicated so it
- is not shared with the original.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- String copied.
-
- [NW_STAT_OUT_OF_MEMORY]
- Ran out of memory.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_deepCopy(NW_String_t* dest, NW_String_t* source);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_concatenate
-
- @synopsis: Concatenates two strings together.
-
- @scope: public
-
- @parameters:
- [in-out] NW_String_t* dest
- The destination string.
-
- [in] NW_String_t* source
- The source string.
-
- [in] NW_Uint32 encoding
- Encoding both strings are assumed to have.
-
- @description: Concatenated two strings together.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- String copied.
-
- [NW_STAT_OUT_OF_MEMORY]
- Ran out of memory.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_concatenate(NW_String_t* dest, NW_String_t* source, NW_Uint32 encoding);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_findChar
-
- @synopsis: Finds char in string.
-
- @scope: public
-
- @parameters:
- [in] NW_String_t* string
- The string.
-
- [in] NW_Int32 character
- Character to find.
-
- @description: Find char in string.
-
- @returns: NW_Byte*
- Pointer to character if found, otherwise NULL.
-
- ** ----------------------------------------------------------------------- **/
-NW_Byte*
-NW_String_findChar(NW_String_t* string, NW_Int32 character, NW_Uint32 encoding);
-
-
-/* ----------------------------------------------------------------------- **
- Functions
-** ----------------------------------------------------------------------- **/
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_ucs2CharInit
-
- @synopsis: Initialize UCS2 characters.
-
- @scope: public
-
- @parameters:
- [out] NW_Ucs2** data
- Allocated storage.
-
- [in] NW_Uint32 length
- The length.
-
- @description: Allocates enough storage to hold the specified number
- of characters.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- String copied.
-
- [NW_STAT_OUT_OF_MEMORY]
- Ran out of memory.
-
- ** ----------------------------------------------------------------------- **/
-NW_Status_t
-NW_String_ucs2CharInit(NW_Ucs2** data, NW_Uint32 length);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_ucs2CharLength
-
- @synopsis: Get character length.
-
- @scope: public
-
- @parameters:
- [in] NW_Ucs2* data
- Buffer to count.
-
- @description: Get character length.
-
- @returns: NW_Int32
- Length of buffer in characters.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Int32
-NW_String_ucs2CharLength (NW_Ucs2* data);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_byteToUCS2Char
-
- @synopsis: Convert byte to UCS2 characters.
-
- @scope: public
-
- @parameters:
- [in] NW_Byte* b
- default
-
- [in] NW_Uint32 length
- default
-
- [out] NW_Ucs2** data
- default
-
- @description: Given an arbitrary NW_Byte array with no known character
- encoding, convert it to a NW_Ucs2 string. Actually it
- copies the bytes and assumes the source is UCS2 encoding.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- Bytes copied.
-
- [NW_STAT_OUT_OF_MEMORY]
- Ran out of memory.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_byteToUCS2Char (NW_Byte* b, NW_Uint32 length, NW_Ucs2** data);
-
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_entityToUCS2Char
-
- @synopsis: Convert entity to UCS2 character.
-
- @scope: public
-
- @parameters:
- [in] NW_Uint32 entity
- default
-
- [out] NW_Ucs2** data
- default
-
- @description: Convert entity to UCS2 character.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- Bytes copied.
-
- [NW_STAT_OUT_OF_MEMORY]
- Ran out of memory.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_entityToUCS2Char(NW_Uint32 entity, NW_Ucs2** data);
-
-/*
- * Given an arbitrary NW_Byte array with no known character encoding,
- * convert it to a NW_Ucs2 string.
- *
- */
-/* Not used. 8/14/01 */
-/*
-NW_Status_t
-NW_String_tokenToUCS2Char(NW_Uint32 token, NW_Ucs2** data);
-*/
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_stringToUCS2Char
-
- @synopsis: default
-
- @scope: public
-
- @parameters:
- [in] const string
- default
-
- [in] NW_Uint32 encoding
- default
-
- [out] NW_Ucs2 **data
- default
-
- @description: default
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- Bytes copied.
-
- [NW_STAT_FAILURE]
- No bytes to copy.
-
- [NW_STAT_OUT_OF_MEMORY]
- Ran out of memory.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_stringToUCS2Char(const NW_String_t* string, NW_Uint32 encoding, NW_Ucs2 **data);
-
-/** ----------------------------------------------------------------------- **
- @function: NW_String_deleteStorage
-
- @synopsis: Delete storage.
-
- @scope: public
-
- @parameters:
- [in-out] NW_String_t* s
- The string.
-
- @description: Delete storage if user owns it otherwise does nothing.
-
- @returns: NW_Status_t
- Status of operation.
-
- [NW_STAT_SUCCESS]
- Always returns success.
-
- ** ----------------------------------------------------------------------- **/
-IMPORT_C NW_Status_t
-NW_String_deleteStorage(NW_String_t* s);
-
-#ifdef __cplusplus
-} /*extern "C" { */
-#endif /* __cplusplus */
-
-#endif /* NW_STRING_STRING_H */