Remove unnecessary profile build dependencies 63/85863/2
authorMyungJoo Ham <myungjoo.ham@samsung.com>
Tue, 6 Sep 2016 08:29:25 +0000 (17:29 +0900)
committerMyungJoo Ham <myungjoo.ham@samsung.com>
Tue, 6 Sep 2016 09:41:06 +0000 (18:41 +0900)
Changes in headers:

utils_i18n.h
  - unified. based on mobile's
  - remove unmatched "<tr>" in comment
  - updated version info in comment
  - for CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE, allow both "createMilePerGallon" and "createMilePerGallonImperial"

utils_i18n_alpha_idx.h, utils_i18n_field_position.h, utils_i18n_format.h,
utils_i18n_formattable.h, utils_i18n_measure.h, utils_i18n_measure_format.h,
utils_i18n_measure_unit.h, utils_i18n_parse_position.h,
  - updated version info in comment (wearable: 2.3.2 / mobile: 3.0 ==> merged: 2.3.2 and 3.0)

utils_i18n_private.h
  - indentation style difference between wearable and mobile :-(

utils_i18n_timezone.h, utils_i18n_usearch.h, utils_i18n_ustring.h
  - supporting deprecated (from 2.3.1) APIS for mobile/common with additional subpackage.
  - in order to enable this at mobile/common/common-artik, (before SR) we need to add JIRA TRE.
   (please wait for JIRA TRE submission before sending SR. I'll create JIRA TRE so that release can synchronize the release)

Changes in spec / CMakefile

following up the changes in headers; thus removing profile macro.

Change-Id: If8b4fdc448d46feaab3add3e11e2d871db54960e
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
55 files changed:
packaging/capi-base-utils.spec
src/CMakeLists.txt
src/include/cleaned/utils_i18n_timezone.h [moved from src/include/wearable/utils_i18n_timezone.h with 100% similarity]
src/include/cleaned/utils_i18n_usearch.h [moved from src/include/wearable/utils_i18n_usearch.h with 100% similarity]
src/include/cleaned/utils_i18n_ustring.h [moved from src/include/wearable/utils_i18n_ustring.h with 100% similarity]
src/include/deprecated/utils_i18n_timezone.h [moved from src/include/mobile/utils_i18n_timezone.h with 100% similarity]
src/include/deprecated/utils_i18n_usearch.h [moved from src/include/mobile/utils_i18n_usearch.h with 100% similarity]
src/include/deprecated/utils_i18n_ustring.h [moved from src/include/mobile/utils_i18n_ustring.h with 100% similarity]
src/include/mobile/utils_i18n_format.h [deleted file]
src/include/mobile/utils_i18n_measure_unit.h [deleted file]
src/include/mobile/utils_i18n_parse_position.h [deleted file]
src/include/mobile/utils_i18n_ubrk.h [deleted file]
src/include/mobile/utils_i18n_ucalendar.h [deleted file]
src/include/mobile/utils_i18n_uchar.h [deleted file]
src/include/mobile/utils_i18n_ucollator.h [deleted file]
src/include/mobile/utils_i18n_udate.h [deleted file]
src/include/mobile/utils_i18n_udatepg.h [deleted file]
src/include/mobile/utils_i18n_uenumeration.h [deleted file]
src/include/mobile/utils_i18n_ulocale.h [deleted file]
src/include/mobile/utils_i18n_unormalization.h [deleted file]
src/include/mobile/utils_i18n_unumber.h [deleted file]
src/include/mobile/utils_i18n_uset.h [deleted file]
src/include/utils_i18n.h [moved from src/include/mobile/utils_i18n.h with 99% similarity]
src/include/utils_i18n_alpha_idx.h [moved from src/include/mobile/utils_i18n_alpha_idx.h with 96% similarity]
src/include/utils_i18n_field_position.h [moved from src/include/mobile/utils_i18n_field_position.h with 96% similarity]
src/include/utils_i18n_format.h [moved from src/include/wearable/utils_i18n_format.h with 97% similarity]
src/include/utils_i18n_formattable.h [moved from src/include/mobile/utils_i18n_formattable.h with 96% similarity]
src/include/utils_i18n_measure.h [moved from src/include/mobile/utils_i18n_measure.h with 96% similarity]
src/include/utils_i18n_measure_format.h [moved from src/include/mobile/utils_i18n_measure_format.h with 97% similarity]
src/include/utils_i18n_measure_unit.h [moved from src/include/wearable/utils_i18n_measure_unit.h with 94% similarity]
src/include/utils_i18n_parse_position.h [moved from src/include/wearable/utils_i18n_parse_position.h with 96% similarity]
src/include/utils_i18n_private.h [moved from src/include/mobile/utils_i18n_private.h with 100% similarity]
src/include/utils_i18n_timezone.h [new file with mode: 0644]
src/include/utils_i18n_types.h [moved from src/include/mobile/utils_i18n_types.h with 100% similarity]
src/include/utils_i18n_ubrk.h [moved from src/include/wearable/utils_i18n_ubrk.h with 100% similarity]
src/include/utils_i18n_ucalendar.h [moved from src/include/wearable/utils_i18n_ucalendar.h with 100% similarity]
src/include/utils_i18n_uchar.h [moved from src/include/wearable/utils_i18n_uchar.h with 100% similarity]
src/include/utils_i18n_ucollator.h [moved from src/include/wearable/utils_i18n_ucollator.h with 100% similarity]
src/include/utils_i18n_udate.h [moved from src/include/wearable/utils_i18n_udate.h with 100% similarity]
src/include/utils_i18n_udatepg.h [moved from src/include/wearable/utils_i18n_udatepg.h with 100% similarity]
src/include/utils_i18n_uenumeration.h [moved from src/include/wearable/utils_i18n_uenumeration.h with 100% similarity]
src/include/utils_i18n_ulocale.h [moved from src/include/wearable/utils_i18n_ulocale.h with 100% similarity]
src/include/utils_i18n_unormalization.h [moved from src/include/wearable/utils_i18n_unormalization.h with 100% similarity]
src/include/utils_i18n_unumber.h [moved from src/include/wearable/utils_i18n_unumber.h with 100% similarity]
src/include/utils_i18n_usearch.h [new file with mode: 0644]
src/include/utils_i18n_uset.h [moved from src/include/wearable/utils_i18n_uset.h with 100% similarity]
src/include/utils_i18n_ustring.h [new file with mode: 0644]
src/include/wearable/utils_i18n.h [deleted file]
src/include/wearable/utils_i18n_alpha_idx.h [deleted file]
src/include/wearable/utils_i18n_field_position.h [deleted file]
src/include/wearable/utils_i18n_formattable.h [deleted file]
src/include/wearable/utils_i18n_measure.h [deleted file]
src/include/wearable/utils_i18n_measure_format.h [deleted file]
src/include/wearable/utils_i18n_private.h [deleted file]
src/include/wearable/utils_i18n_types.h [deleted file]

index f95da89..4976214 100755 (executable)
@@ -1,7 +1,7 @@
 Name:       capi-base-utils
 Summary:    Base Utils
 Version:    1.2.5
-Release:    1
+Release:    2
 Group:      Base
 License:    Apache-2.0 and ICU
 Source0:    %{name}-%{version}.tar.gz
@@ -21,30 +21,40 @@ License:    Apache-2.0 and ICU
 Summary:    The Base Utils Library (Development)
 Group:      Base
 Requires:   %{name} = %{version}-%{release}
+Provides:   capi-base-utils-devel-profile_ivi
+Provides:   capi-base-utils-devel-profile_tv
+Provides:   capi-base-utils-devel-profile_wearable
 
 %description devel
 The base utils library for internationalization and localization (Development)
 
+%package devel-support-deprecated
+License:    Apache-2.0 and ICU
+Summary:    The Base Utils Library (Development)
+Group:      Base
+Requires:   capi-base-utils-devel = %{version}-%{release}
+Provides:   capi-base-utils-devel-profile_common
+Provides:   capi-base-utils-devel-profile_mobile
+
+%description devel-support-deprecated
+The base utils library for internationalization and localization (Development)
+with support of deprecated APIs for mobile/common/common-iot profiles in
+Tizen 3.
+
+
 %prep
 %setup -q
 
 %build
 #export CFLAGS="$CFLAGS -Wall -Werror -Wno-unused-function"
+
+#internally, using headers with additional deprecated API does not affect those who do not want deprecated APIs.
+cp src/include/deprecated/utils_i18n_timezone.h src/include/
+cp src/include/deprecated/utils_i18n_usearch.h src/include/
+cp src/include/deprecated/utils_i18n_ustring.h src/include/
+
 cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIB_INSTALL_DIR:PATH=%{_libdir} -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \
     -DPKG_NAME=%{name} -DPKG_VERSION=%{version} \
-%if "%{profile}" == "wearable"
-    -DTIZEN_WEARABLE=YES \
-%endif
-%if "%{profile}" == "mobile"
-    -DTIZEN_MOBILE=YES \
-%endif
-%if "%{profile}" == "common"
-    -DTIZEN_MOBILE=YES \
-%endif
-%if "%{profile}" == "common_iot"
-    -DTIZEN_MOBILE=YES \
-%endif
-
 
 make %{?jobs:-j%jobs}
 
@@ -59,6 +69,32 @@ cat LICENSE.ICU >> %{buildroot}/usr/share/license/%{name}
 
 %postun -p /sbin/ldconfig
 
+%post devel
+ln -s %{_includedir}/base/cleaned/utils_i18n_timezone.h %{_includedir}/base/
+ln -s %{_includedir}/base/cleaned/utils_i18n_usearch.h %{_includedir}/base/
+ln -s %{_includedir}/base/cleaned/utils_i18n_ustring.h %{_includedir}/base/
+
+%postun devel
+rm %{_includedir}/base/utils_i18n_timezone.h
+rm %{_includedir}/base/utils_i18n_usearch.h
+rm %{_includedir}/base/utils_i18n_ustring.h
+
+%post devel-support-deprecated
+rm %{_includedir}/base/utils_i18n_timezone.h
+rm %{_includedir}/base/utils_i18n_usearch.h
+rm %{_includedir}/base/utils_i18n_ustring.h
+ln -s %{_includedir}/base/deprecated/utils_i18n_timezone.h %{_includedir}/base/
+ln -s %{_includedir}/base/deprecated/utils_i18n_usearch.h %{_includedir}/base/
+ln -s %{_includedir}/base/deprecated/utils_i18n_ustring.h %{_includedir}/base/
+
+%postun devel-support-deprecated
+rm %{_includedir}/base/utils_i18n_timezone.h
+rm %{_includedir}/base/utils_i18n_usearch.h
+rm %{_includedir}/base/utils_i18n_ustring.h
+ln -s %{_includedir}/base/cleaned/utils_i18n_timezone.h %{_includedir}/base/
+ln -s %{_includedir}/base/cleaned/utils_i18n_usearch.h %{_includedir}/base/
+ln -s %{_includedir}/base/cleaned/utils_i18n_ustring.h %{_includedir}/base/
+
 %files
 %manifest capi-base-utils.manifest
 %{_libdir}/libbase-utils-i18n.so*
@@ -67,4 +103,9 @@ cat LICENSE.ICU >> %{buildroot}/usr/share/license/%{name}
 %files devel
 %defattr(-,root,root,-)
 %{_includedir}/base/utils_i18n*.h
+%{_includedir}/base/cleaned/utils_i18n*.h
 %{_libdir}/pkgconfig/*.pc
+
+%files devel-support-deprecated
+%defattr(-,root,root,-)
+%{_includedir}/base/deprecated/utils_i18n*.h
index 2359c04..0d4bd78 100755 (executable)
@@ -4,13 +4,7 @@ SET(pc_name "capi-base-utils-i18n")
 SET(dependents "icu-i18n")
 PKG_CHECK_MODULES(baseutils REQUIRED ${dependents})
 
-IF (TIZEN_WEARABLE)
-SET(INC_DIR "include/wearable")
-ELSEIF (TIZEN_MOBILE)
-SET(INC_DIR "include/mobile")
-ELSE (TIZEN_WEARABLE)
-SET(INC_DIR "include/wearable")
-ENDIF (TIZEN_WEARABLE)
+SET(INC_DIR "include")
 
 INCLUDE_DIRECTORIES(
     ${baseutils_INCLUDE_DIRS}
@@ -64,14 +58,17 @@ INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_types.h DESTINAT
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_uchar.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_ucollator.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_unormalization.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_usearch.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_ustring.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/cleaned/utils_i18n_usearch.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/cleaned)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/deprecated/utils_i18n_usearch.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/deprecated)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/cleaned/utils_i18n_ustring.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/cleaned)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/deprecated/utils_i18n_ustring.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/deprecated)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_ucalendar.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_udate.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_udatepg.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_ulocale.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_unumber.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_timezone.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/cleaned/utils_i18n_timezone.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/cleaned)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/deprecated/utils_i18n_timezone.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/deprecated)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_uenumeration.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_uset.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_ubrk.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
@@ -84,4 +81,4 @@ INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_measure_format.h
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_field_position.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_parse_position.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pc_name}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
\ No newline at end of file
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pc_name}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
diff --git a/src/include/mobile/utils_i18n_format.h b/src/include/mobile/utils_i18n_format.h
deleted file mode 100644 (file)
index 9390cac..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- */
-
-#ifndef __UTILS_I18N_FORMAT_H__
-#define __UTILS_I18N_FORMAT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_format.h
- * @version 0.1
- * @brief utils_i18n_format
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_FORMAT_MODULE Format
- * @brief The Format module represents the base module for all formats.
- * @section CAPI_BASE_UTILS_I18N_FORMAT_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_FORMAT_MODULE_OVERVIEW Overview
- * @details The Format module specifies the protocol for classes which convert other objects or values,\n
- * such as numeric values and dates, and their string representations.\n
- * In some cases these representations may be localized or contain localized characters or strings.\n
- * Please note, that there is no function for creating an #i18n_format_h object as this module uses a mechanism
- * similar to inheritance, known in object-oriented languages. All of the functions that take the
- * #i18n_format_h handle as a parameter can actually take the handle to the more specific format object related
- * to the corresponding derived classes.
- * Please also note that at this point the only derived class that is supported by the base-utils i18n module is the
- * ICU's MeasureFormat class, which is why it is possible to use handles of type #i18n_measure_format_h
- * in place of the parameters of type #i18n_format_h.
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FORMAT_MODULE
- * @{
- */
-
-/**
- * @brief Destroys the format object.
- * @since_tizen 3.0
- *
- * @param[in] format  The format object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_format_destroy(i18n_format_h format);
-
-/**
- * @brief Creates a polymorphic clone of the given @a format object.
- * @since_tizen 3.0
- * @remarks The cloned object should be released by the caller with the
- *          i18n_format_destroy() function.
- *
- * @param[in]  format  The format object to be cloned
- * @param[out] clone   The clone of the given @a format object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_format_clone(i18n_format_h format, i18n_format_h *clone);
-
-/**
- * @brief Formats an object to produce a string.
- * @since_tizen 3.0
- * @remarks The @a append_to parameter should be released by the caller with the
- *          free() function.
- *
- * @param[in] format         The format object
- * @param[in] formattable    The object to format
- * @param[out] append_to     An input/output parameter to receive the result.
- *                           The result is appended to the existing contents.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_format_format(i18n_format_h format, i18n_formattable_h formattable, char **append_to);
-
-/**
- * @brief Formats an object to produce a string.
- * @since_tizen 3.0
- * @remarks The @a append_to parameter should be released by the caller with the
- *          free() function.
- *
- * @param[in] format              The format object
- * @param[in] formattable         The object to format
- * @param[out] append_to          Input/output parameter to receive the result.
- *                                The result is appended to the existing contents.
- * @param[out] field_position     On input: an alignment field, if desired.
- *                                On output: the offsets of the alignment field.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_format_format_with_field_position(i18n_format_h format, i18n_formattable_h formattable, char **append_to, i18n_field_position_h field_position);
-
-/**
- * @brief Parses a string to produce an object.
- * @since_tizen 3.0
- * @remarks The obtained @a result formattable object should be released by the caller with the
- *          i18n_formattable_destroy() function.
- *
- * @param[in] format   The format object
- * @param[in] source   The string to be parsed into an object
- * @param[out] result  The formattable object to be set to the parse result.
- *                     If parse fails, return contents are undefined.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_format_parse_object(i18n_format_h format, const char *source, i18n_formattable_h *result);
-
-/**
- * @brief Parses a string to produce an object.
- * @since_tizen 3.0
- * @remarks The obtained @a result formattable object should be released by the caller with the
- *          i18n_formattable_destroy() function.
- *
- * @param[in] format              The format object
- * @param[in] source              The string to be parsed into an object
- * @param[out] parse_position     The position to start parsing at. Upon return this parameter is set
- *                                to the position after the last character successfully parsed. If the source
- *                                is not parsed successfully, this parameter will remain unchanged.
- * @param[out] result             The formattable object to be set to the parse result.
- *                                If parse fails, return contents are undefined.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_format_parse_object_with_parse_position(i18n_format_h format, const char *source, i18n_parse_position_h parse_position, i18n_formattable_h *result);
-
-/**
- * @brief Gets the locale for the given format object.
- * @details You can choose between valid and actual locale.
- * @since_tizen 3.0
- * @remarks Both @a language and @a country should be released by the caller with the free() function.
- *
- * @param[in] format     The format object
- * @param[in] type       The type of the locale we're looking for (valid or actual)
- * @param[out] language  The obtained locale's ISO-639 language code
- * @param[out] country   The obtained locale's ISO-3166 country code
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_format_get_locale(i18n_format_h format,
-        i18n_ulocale_data_locale_type_e type, char **language, char **country);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_FORMAT_H__*/
diff --git a/src/include/mobile/utils_i18n_measure_unit.h b/src/include/mobile/utils_i18n_measure_unit.h
deleted file mode 100644 (file)
index 08170bc..0000000
+++ /dev/null
@@ -1,2018 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- */
-
-#ifndef __UTILS_I18N_MEASURE_UNIT_H__
-#define __UTILS_I18N_MEASURE_UNIT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_measure_unit.h
- * @version 0.1
- * @brief utils_i18n_measure_unit
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE MeasureUnit
- * @brief The MeasureUnit unit such as length, mass, volume, currency, etc. coupled with a numeric amount to produce a Measure.
- * @section CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE_OVERVIEW Overview
- * @details
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE
- * @{
- */
-
-/**
- * @brief Creates the default measure unit object.
- * @since_tizen 3.0
- * @remarks The created object should be released by the caller with the
- *          #i18n_measure_unit_destroy() function.
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Creates a polymorphic clone of the given @a clone object.
- * @since_tizen 3.0
- * @remarks The created object should be released by the caller with the
- *          #i18n_measure_unit_destroy() function.
- *
- * @param[in]  measure_unit  The measure unit object to be cloned.
- * @param[out] clone         The clone of the given @a measure_unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_clone(i18n_measure_unit_h measure_unit, i18n_measure_unit_h *clone);
-
-/**
- * @brief Destroys the measure unit object
- * @since_tizen 3.0
- *
- * @param[in] measure_unit  The measure unit object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_measure_unit_destroy(i18n_measure_unit_h measure_unit);
-
-/**
- * @brief Destroys the given array of the measure unit objects
- * @since_tizen 3.0
- *
- * @param[in] array       The array of measure unit objects to destroy
- * @param[in] array_size  The capacity of the @a dest_array
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_measure_unit_array_destroy(i18n_measure_unit_h *array, int32_t array_size);
-
-/**
- * @brief Gets the measure unit object type.
- * @since_tizen 3.0
- * @remarks The obtained type should be released by the caller with the free() function.
- *
- * @param[in]  measure_unit  The measure unit object
- * @param[out] type          The measure unit object type
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_get_type(i18n_measure_unit_h measure_unit, char **type);
-
-/**
- * @brief Gets the measure unit object sub type.
- * @since_tizen 3.0
- * @remarks The obtained subtype should be released by the caller with the free() function.
- *
- * @param[in]  measure_unit  The measure unit object
- * @param[out] subtype       The measure unit object subtype
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_get_subtype(i18n_measure_unit_h measure_unit, char **subtype);
-
-/**
- * @brief Gets the available units.
- * @details The function creates the array with the results.
- *          If there are more units available than the given @a max_count
- *          then the returned array is truncated to the first @a max_count units
- *          and the returned error code is #I18N_ERROR_BUFFER_OVERFLOW.
- *
- * @since_tizen 3.0
- * @remarks The obtained array of measure unit objects should be released by the caller
- *          with the #i18n_measure_unit_array_destroy() function.
- *
- * @param[in]  max_count      The maximal number of units that will be obtained
- * @param[out] out_array      The output array
- * @param[out] available      The actual number of available units
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #I18N_ERROR_BUFFER_OVERFLOW Buffer overflow
- */
-int i18n_measure_unit_get_available(int32_t max_count, i18n_measure_unit_h **out_array, int32_t *available);
-
-/**
- * @brief Gets the available units for a specific type.
- * @details The function creates the array with the results.
- *          If there are more units available than the given @a max_count
- *          then the returned array is truncated to the first @a max_count units
- *          and the returned error code is #I18N_ERROR_BUFFER_OVERFLOW.
- *
- * @since_tizen 3.0
- * @remarks The obtained array of measure unit objects should be released by the caller
- *          with the #i18n_measure_unit_array_destroy() function.
- *
- * @param[in]  max_count      The maximal number of units that will be obtained
- * @param[in]  type           The type of the obtained units
- * @param[out] out_array      The output array
- * @param[out] available      The actual number of available units
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #I18N_ERROR_BUFFER_OVERFLOW Buffer overflow
- */
-int i18n_measure_unit_get_available_with_type(int32_t max_count, const char *type,
-                                              i18n_measure_unit_h **out_array, int32_t *available);
-
-/**
- * @brief Invokes the given callback function for every available measure unit type.
- * @since_tizen 3.0
- *
- * @param[in] cb         The callback function invoked for every available measure unit type
- * @param[in] user_data  The user data passed to the callback function
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_measure_unit_foreach_available_type(i18n_measure_unit_types_cb cb, void *user_data);
-
-/**
- * @brief Gets unit of acceleration: g-force.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_g_force(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of acceleration: meter-per-second-squared.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_meter_per_second_squared(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: arc-minute.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_arc_minute(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: arc-second.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_arc_second(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: degree.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_degree(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: radian.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_radian(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: acre.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_acre(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: hectare.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_hectare(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-centimeter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_centimeter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-foot.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_foot(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-inch.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_inch(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-kilometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_kilometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-meter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_meter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-mile.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_mile(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-yard.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_yard(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of consumption: liter-per-kilometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_liter_per_kilometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of consumption: mile-per-gallon.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_mile_per_gallon(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: bit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_bit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: byte.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_byte(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: gigabit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gigabit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: gigabyte.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gigabyte(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: kilobit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilobit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: kilobyte.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilobyte(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: megabit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_megabit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: megabyte.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_megabyte(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: terabit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_terabit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: terabyte.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_terabyte(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: day.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_day(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: hour.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_hour(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: microsecond.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_microsecond(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: millisecond.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_millisecond(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: minute.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_minute(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: month.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_month(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: nanosecond.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_nanosecond(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: second.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_second(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: week.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_week(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: year.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_year(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of electric: ampere.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_ampere(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of electric: milliampere.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_milliampere(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of electric: ohm.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_ohm(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of electric: volt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_volt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: calorie.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_calorie(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: foodcalorie.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_foodcalorie(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: joule.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_joule(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: kilocalorie.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilocalorie(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: kilojoule.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilojoule(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: kilowatt-hour.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilowatt_hour(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of frequency: gigahertz.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gigahertz(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of frequency: hertz.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_hertz(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of frequency: kilohertz.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilohertz(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of frequency: megahertz.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_megahertz(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: astronomical-unit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_astronomical_unit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: centimeter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_centimeter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: decimeter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_decimeter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: fathom.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_fathom(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: foot.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_foot(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: furlong.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_furlong(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: inch.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_inch(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: kilometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: light-year.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_light_year(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: meter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_meter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: micrometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_micrometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: mile.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_mile(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: millimeter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_millimeter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: nanometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_nanometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: nautical-mile.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_nautical_mile(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: parsec.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_parsec(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: picometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_picometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: yard.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_yard(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: lux.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_lux(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: carat.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_carat(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: gram.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gram(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: kilogram.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilogram(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: metric-ton.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_metric_ton(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: microgram.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_microgram(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: milligram.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_milligram(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: ounce.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_ounce(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: ounce-troy.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_ounce_troy(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: pound.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_pound(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: stone.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_stone(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: ton.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_ton(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: gigawatt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gigawatt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: horsepower.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_horsepower(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: kilowatt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilowatt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: megawatt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_megawatt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: milliwatt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_milliwatt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: watt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_watt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of pressure: hectopascal.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_hectopascal(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of pressure: inch-hg.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_inch_hg(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of pressure: millibar.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_millibar(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of pressure: millimeter-of-mercury.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_millimeter_of_mercury(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of pressure: pound-per-square-inch.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_pound_per_square_inch(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of proportion: karat.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_karat(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of speed: kilometer-per-hour.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilometer_per_hour(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of speed: meter-per-second.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_meter_per_second(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of speed: mile-per-hour.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_mile_per_hour(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of temperature: celsius.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_celsius(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of temperature: fahrenheit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_fahrenheit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of temperature: kelvin.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kelvin(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: acre-foot.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_acre_foot(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: bushel.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_bushel(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: centiliter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_centiliter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-centimeter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_centimeter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-foot.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_foot(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-inch.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_inch(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-kilometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_kilometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-meter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_meter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-mile.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_mile(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-yard.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_yard(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cup.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cup(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: deciliter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_deciliter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: fluid-ounce.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_fluid_ounce(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: gallon.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gallon(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: hectoliter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_hectoliter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: liter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_liter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: megaliter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_megaliter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: milliliter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_milliliter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: pint.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_pint(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: quart.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_quart(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: tablespoon.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_tablespoon(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: teaspoon.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- *          with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit  The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_teaspoon(i18n_measure_unit_h *measure_unit);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_MEASURE_UNIT_H__*/
diff --git a/src/include/mobile/utils_i18n_parse_position.h b/src/include/mobile/utils_i18n_parse_position.h
deleted file mode 100644 (file)
index 58b0295..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- */
-
-#ifndef __UTILS_I18N_PARSE_POSITION_H__
-#define __UTILS_I18N_PARSE_POSITION_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_parse_position.h
- * @version 0.1
- * @brief utils_i18n_parse_position
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE ParsePosition
- * @brief Parse Position is a simple object used by the Format and its subtypes
- *        to keep track of the current position during parsing.
- * @section CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE_HEADER Required Header
- *        \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE_OVERVIEW Overview
- * @details The i18n_format_parse_object() function in the Format types requires
- * a Parse Position object as an argument.
- * By design, as you parse through a string with different formats, you can use
- * the same Parse Position, since the index parameter records the current position.
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE
- * @{
- */
-
-/**
- * @brief Creates a parse position object.
- * @details The index is set to position 0.
- * @since_tizen 3.0
- * @remarks The created object should be released by the caller with the
- *          i18n_parse_position_destroy() function.
- *
- * @param[out] parse_position  The created parse position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_parse_position_create(i18n_parse_position_h *parse_position);
-
-/**
- * @brief Creates a parse position object with the given initial index.
- * @since_tizen 3.0
- * @remarks The created object should be released by the caller with the
- *          i18n_parse_position_destroy() function.
- *
- * @param[in]  new_index       The new text offset
- * @param[out] parse_position  The parse position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_parse_position_create_with_index(int32_t new_index, i18n_parse_position_h *parse_position);
-
-/**
- * @brief Destroys the parse position object.
- * @since_tizen 3.0
- *
- * @param[in] parse_position  The parse position object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_parse_position_destroy(i18n_parse_position_h parse_position);
-
-/**
- * @brief Creates a clone of the given @a parse_position object.
- * @since_tizen 3.0
- * @remarks The @a clone object should be released by the caller with the
- *          i18n_parse_position_destroy() function.
- *
- * @param[in]  parse_position  The parse position object to be cloned
- * @param[out] clone           The created parse position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_parse_position_clone(i18n_parse_position_h parse_position, i18n_parse_position_h *clone);
-
-/**
- * @brief Retrieves the current parse position.
- * @details On input to a parse function, this is the index of the character
- *          at which parsing will begin; on output, it is the index of the character
- *          following the last character parsed.
- * @since_tizen 3.0
- *
- * @param[in]  parse_position  The parse position object
- * @param[out] index           The current index
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_parse_position_get_index(i18n_parse_position_h parse_position, int32_t *index);
-
-/**
- * @brief Sets the current parse position.
- * @since_tizen 3.0
- *
- * @param[in] parse_position  The parse position object
- * @param[in] index           The new index
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_parse_position_set_index(i18n_parse_position_h parse_position, int32_t index);
-
-/**
- * @brief Sets the index at which a parse error occurred.
- * @details Formatters should set this before returning an error code
- *          from their parse_object() function. The default value is -1
- *          if this is not set.
- * @since_tizen 3.0
- *
- * @param[in] parse_position  The parse position object
- * @param[in] error_index     The error index
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_parse_position_set_error_index(i18n_parse_position_h parse_position, int32_t error_index);
-
-/**
- * @brief Retrieves the index at which an error occurred, or -1 if the error index
- *        has not been set.
- * @since_tizen 3.0
- *
- * @param[in]  parse_position  The parse position object
- * @param[out] error_index     The index at which an error occurred
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_parse_position_get_error_index(i18n_parse_position_h parse_position, int32_t *error_index);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_PARSE_POSITION_H__*/
diff --git a/src/include/mobile/utils_i18n_ubrk.h b/src/include/mobile/utils_i18n_ubrk.h
deleted file mode 100644 (file)
index b4b3e81..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- *
- * Copyright (C) 1996-2013, International Business Machines Corporation and others.
- * All Rights Reserved.
- */
-
-#ifndef __UTILS_I18N_UBRK_PRODUCT_H__
-#define __UTILS_I18N_UBRK_PRODUCT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_ubrk.h
- * @version 0.1
- * @brief utils_i18n_ubrk
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UBRK_MODULE Ubrk
- * @brief Ubrk defines methods for finding the location of boundaries in text.
- *
- * @section CAPI_BASE_UTILS_I18N_UBRK_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UBRK_MODULE_OVERVIEW Overview
- * @details Pointer to a #i18n_ubreak_iterator_h maintains a current position and scans over text returning the index of characters where boundaries occur.
- *
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UBRK_MODULE
- * @{
- */
-
-/**
- * @brief Opens a new #i18n_ubreak_iterator_h for locating text boundaries for a specified locale.
- * @details A #i18n_ubreak_iterator_h may be used for detecting character, line, word,
- *             and sentence breaks in text.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- * @param[in] type The type of #i18n_ubreak_iterator_h to open: one of #I18N_UBRK_CHARACTER, #I18N_UBRK_WORD,
- * #I18N_UBRK_LINE, #I18N_UBRK_SENTENCE
- * @param[in] locale           The locale specifying the text-breaking conventions.
- *                                                     If @c NULL, the default locale will be used.
- * @param[in] text                     The text to be iterated over. May be @c NULL, then the iterator will be created without any text.
- *                                                     The text can be set later with i18n_ubrk_set_text() function.
- * @param[in] text_length      The number of characters in text, or -1 if NULL-terminated.
- * @param[out] break_iter      A pointer to the #i18n_ubreak_iterator_h for the specified locale.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_create_rules()
- */
-int i18n_ubrk_create(i18n_ubreak_iterator_type_e type, const char *locale, const i18n_uchar *text, int32_t text_length, i18n_ubreak_iterator_h *break_iter);
-
-/**
- * @brief Opens a new #i18n_ubreak_iterator_h for locating text boundaries using specified breaking rules.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- * @param[in] rules                    A set of rules specifying the text breaking conventions.
- * @param[in] rules_length     The number of characters in rules, or -1 if NULL-terminated.
- * @param[in] text                     The text to be iterated over.  May be @c NULL, in which case i18n_ubrk_set_text() is
- *                                                     used to specify the text to be iterated.
- * @param[in] text_length      The number of characters in text, or -1 if NULL-terminated.
- * @param[out] break_iter      A pointer to the #i18n_ubreak_iterator_h for the specified rules.
- * @param[out] parse_err       Receives position and context information for any syntax errors
- *                                                     detected while parsing the rules.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_create()
- */
-int i18n_ubrk_create_rules(const i18n_uchar *rules, int32_t rules_length, const i18n_uchar *text, int32_t text_length, i18n_ubreak_iterator_h *break_iter, i18n_uparse_error_s *parse_err);
-
-/**
- * @brief Thread safe cloning operation.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- * @param[in] break_iter iterator to be cloned. Must not be @c NULL.
- * @param[in] stack_buffer     (Deprecated Since 3.0. Use NULL instead.) User allocated space for the new clone. If @c NULL new memory will be allocated.
- *                                                     If buffer is not large enough, new memory will be allocated.
- *                                                     Clients can use the #I18N_U_BRK_SAFECLONE_BUFFERSIZE. This will probably be enough to avoid memory allocations.
- * @param[in] p_buffer_size (Deprecated Since 3.0. Use NULL instead.) A pointer to size of allocated space.
- *                                                     If <code>*p_buffer_size == 0</code>, a sufficient size for use in cloning will
- *                                                     be returned ('pre-flighting')
- *                                                     If *p_buffer_size is not enough for a stack-based safe clone,
- *                                                     new memory will be allocated.
- * @param[out] break_iter_clone          A pointer to the cloned #i18n_ubreak_iterator_h.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ubrk_safe_clone(const i18n_ubreak_iterator_h break_iter, void *stack_buffer, int32_t *p_buffer_size, i18n_ubreak_iterator_h *break_iter_clone);
-
-/**
- * @brief Closes a #i18n_ubreak_iterator_h.
- * @details Once closed, a #i18n_ubreak_iterator_h may no longer be used.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to close. Must not be @c NULL.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
-*/
-int i18n_ubrk_destroy(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Sets an existing iterator to point to a new piece of text.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- * @param[in] break_iter                       The iterator to use. Must not be @c NULL.
- * @param[in] text                     The text to be set. Must not be @c NULL.
- * @param[in] text_length      The length of the text.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ubrk_set_text(i18n_ubreak_iterator_h break_iter, const i18n_uchar *text, int32_t text_length);
-
-/**
- * @brief Determines the most recently-returned text boundary.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The character index most recently returned by, i18n_ubrk_next(), i18n_ubrk_previous(),
- *     i18n_ubrk_first(), or i18n_ubrk_last().
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ubrk_current(const i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Advances the iterator to the boundary following the current boundary.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The character index of the next text boundary, or #I18N_UBRK_DONE
- *             if all text boundaries have been returned.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_previous()
- */
-int32_t i18n_ubrk_next(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Sets the iterator position to the boundary preceding the current boundary.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The character index of the preceding text boundary, or #I18N_UBRK_DONE
- *             if all text boundaries have been returned.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_next()
- */
-int32_t i18n_ubrk_previous(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Sets the iterator position to zero, the start of the text being scanned.
- * * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The new iterator position (zero).
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_last()
- */
-int32_t i18n_ubrk_first(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Sets the iterator position to the index immediately <EM>beyond</EM> the last character in the text being scanned.
- * @details This is not the same as the last character.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The character offset immediately <EM>beyond</EM> the last character in the
- * text being scanned.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_first()
- */
-int32_t i18n_ubrk_last(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Sets the iterator position to the first boundary preceding the specified @c offset.
- * @details The new position is always smaller than @c offset, or #I18N_UBRK_DONE.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter               The break iterator to use. Must not be @c NULL.
- * @param[in] offset   The offset to begin scanning.
- * @return The text boundary preceding offset, or #I18N_UBRK_DONE.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_following()
- */
-int32_t i18n_ubrk_preceding(i18n_ubreak_iterator_h break_iter, int32_t offset);
-
-/**
- * @brief Advances the iterator to the first boundary following the specified @c offset.
- * @details The value returned is always greater than @c offset, or #I18N_UBRK_DONE.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter               The break iterator to use. Must not be @c NULL.
- * @param[in] offset   The offset to begin scanning.
- * @return The text boundary following offset, or #I18N_UBRK_DONE.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_preceding()
- */
-int32_t i18n_ubrk_following(i18n_ubreak_iterator_h break_iter, int32_t offset);
-
-/**
- * @brief Gets a locale for which text breaking information is available.
- * @details A #i18n_ubreak_iterator_h in a locale returned by this function will perform the correct
- *             text breaking for the locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] index The index of the desired locale.
- * @return A locale for which number text breaking information is available, or @c 0 if none.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_count_available()
- */
-const char *i18n_ubrk_get_available(int32_t index);
-
-/**
- * @brief Determines how many locales have text breaking information available.
- * @details This function is most useful as determining the loop ending condition for
- *             calls to i18n_ubrk_get_available().
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @return The number of locales for which text breaking information is available.
- * @exception #I18N_ERROR_NONE Successful
- * @see i18n_ubrk_get_available()
- */
-int32_t i18n_ubrk_count_available(void);
-
-/**
- * @brief Returns true if the specfied position is a boundary position.
- * @details As a side effect, leaves the iterator pointing to the first boundary position at
- *             or after @c offset.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are
- *             described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @param[in] offset The offset to check.
- * @return True if "offset" is a boundary position.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_ubrk_is_boundary(i18n_ubreak_iterator_h break_iter, int32_t offset);
-
-/**
- * @brief Returns the status from the break rule that determined the most recently
- *             returned break position.
- * @details The values appear in the rule source
- *             within brackets, {123}, for example. For rules that do not specify a
- *             status, a default value of 0 is returned.
- *             <p>
- *             For word break iterators, the possible values are defined in enum #i18n_uchar_u_word_break_values_e.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The status from the break rule that determined the most recently returned break position.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ubrk_get_rule_status(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Gets the statuses from the break rules that determined the most recently
- *             returned break position.
- * @details The values appear in the rule source within brackets, {123}, for example. The default status value for rules
- *             that do not explicitly provide one is zero.
- *             <p>
- *             For word break iterators, the possible values are defined in enum #i18n_uchar_u_word_break_values_e.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and in #i18n_error_code_e description.
- *
- * @since_tizen 2.3.1
- * @param[in] break_iter       The break iterator to use. Must not be @c NULL.
- * @param[out] fill_in_vec     An array to be filled in with the status values.
- * @param[in] capacity         The length of the supplied vector. A length of zero causes
- *                                                     the function to return the number of status values, in the
- *                                                     normal way, without attempting to store any values.
- * @return The number of rule status values from rules that determined
- *             the most recent boundary returned by the break iterator.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ubrk_get_rule_status_vec(i18n_ubreak_iterator_h break_iter, int32_t *fill_in_vec, int32_t capacity);
-
-/**
- * @brief Returns the locale of the break iterator. You can choose between the valid and
- * the actual locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and in #i18n_error_code_e description.
- *
- * @since_tizen 2.3.1
- * @param[in] break_iter       Break iterator. Must not be @c NULL.
- * @param[in] type                     Locale type (valid or actual).
- * @return locale string
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_ubrk_get_locale_by_type(const i18n_ubreak_iterator_h break_iter, i18n_ulocale_data_locale_type_e type);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif
diff --git a/src/include/mobile/utils_i18n_ucalendar.h b/src/include/mobile/utils_i18n_ucalendar.h
deleted file mode 100644 (file)
index dbd8195..0000000
+++ /dev/null
@@ -1,910 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UCALENDAR_H__
-#define __UTILS_I18N_UCALENDAR_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_ucalendar.h
- * @version 0.1
- * @brief utils_i18n_ucalendar
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE Ucalendar
- * @brief The Ucalendar is used for converting between an udate module and a set of integer fields
- *              such as #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_HOUR, and so on.
- * @section CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- * @section CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE_OVERVIEW Overview
- * @details The Ucalendar is used for converting between an udate module and a set of integer fields
- *              such as #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_HOUR, and so on.
- *              (An udate module represents a specific instant in time with millisecond precision. See udate for
- *              information about the udate.)
- *
- * @section CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Converts the given date and time to the corresponding UTC time(number of seconds that have elapsed since January 1, 1970), considering the given time zone
- * @code
-
- #define ms2sec(ms) (long long int)(ms)/1000.0
-
-  // get time in sec from input date and time
-  long long int _time_convert_itol(char *tzid, int y, int mon, int d, int h, int min, int s)
- {
-        long long int lli;
-        i18n_ucalendar_h ucal;
-        i18n_udate date;
-        int ret = I18N_ERROR_NONE;
-        int year, month, day, hour, minute, second;
-        int len;
-
-        i18n_uchar *_tzid = NULL;
-
-        if (tzid == NULL) {
-                tzid = "Etc/GMT";
-        }
-        _tzid = (i18n_uchar*)calloc(strlen(tzid) + 1, sizeof(i18n_uchar));
-        if (_tzid == NULL) {
-                return -1;
-        }
-        // converts 'tzid' to unicode string
-        i18n_ustring_copy_ua(_tzid, tzid);
-
-        // gets length of '_tzid'
-        len = i18n_ustring_get_length(_tzid);
-        // creates i18n_ucalendar_h
-        ret = i18n_ucalendar_create(_tzid, len, "en_US", I18N_UCALENDAR_TRADITIONAL, &ucal);
-        if (ret) {
-                dlog_print(DLOG_INFO, LOG_TAG, "i18n_ucalendar_create failed.\n");
-                return -1;
-        }
-
-        // sets i18n_ucalendar_h's date
-        i18n_ucalendar_set_date_time(ucal, y, mon-1, d, h, min, s);
-
-        // gets the current value of a field from i18n_ucalendar_h
-        i18n_ucalendar_get(ucal, I18N_UCALENDAR_YEAR, &year);
-        i18n_ucalendar_get(ucal, I18N_UCALENDAR_MONTH, &month);
-        i18n_ucalendar_get(ucal, I18N_UCALENDAR_DATE, &day);
-        i18n_ucalendar_get(ucal, I18N_UCALENDAR_HOUR, &hour);
-        i18n_ucalendar_get(ucal, I18N_UCALENDAR_MINUTE, &minute);
-        i18n_ucalendar_get(ucal, I18N_UCALENDAR_SECOND, &second);
-        dlog_print(DLOG_INFO, LOG_TAG, "Date from ucal, year:%d month:%d day:%d hour:%d minute:%d second:%d.\n",year, month, day, hour, minute, second);
-
-        // gets i18n_ucalendar's current time and converts it from milliseconds to seconds
-        i18n_ucalendar_get_milliseconds(ucal, &date);
-        lli = ms2sec(date);
-        // destroys i18n_ucalendar_h
-        i18n_ucalendar_destroy(ucal);
-        if (_tzid) {
-                free(_tzid);
-        }
-
-        return lli;
- }
- * @endcode
- *
- * @section CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE_SAMPLE_CODE_2 Sample Code 2
- * @brief Describes an example that uses _time_convert_itol from 'Sample Code 2'
- * @code
-          // converts the given time to UTC time(number of seconds that have elapsed since January 1, 1970)
-        long long int time = _time_convert_itol("Etc/GMT", 2014, 5, 28, 15, 14, 0);
-        dlog_print(DLOG_INFO, LOG_TAG, "Time Zone: %s\t, %d/%d/%d/%d/%d/%d\n", "Etc/GMT", 2014, 5, 28, 15, 14, 0);
-        dlog_print(DLOG_INFO, LOG_TAG, "_time_convert_itol test : %lld\n", time);
- * @endcode
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE
- * @{
- */
-
-/**
- * @brief Sets the default time zone.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] zone_id null-terminated time zone ID
- *
- * @return An #i18n_error_code_e error code
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_set_default_timezone(const i18n_uchar *zone_id);
-
-/**
- * @brief Gets the current date and time.
- * @details The value returned is represented as milliseconds from the epoch.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[out] date The current date and time
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get_now(i18n_udate *date);
-
-/**
- * @brief Creates an #i18n_ucalendar_h.
- * An #i18n_ucalendar_h may be used to convert a millisecond value to a year,
- * month, and day.
- * @details Note: When an unknown TimeZone ID is specified, the #i18n_ucalendar_h returned
- * by the function is initialized with GMT ("Etc/GMT") without any
- * errors/warnings.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @remarks Must release @a calendar using i18n_ucalendar_destroy().
- *
- * @param[in] zone_id The desired TimeZone ID \n
- *                                       If @c 0, use the default time zone.
- * @param[in] len The length of the zone ID,
- *                                       otherwise @c -1 if null-terminated
- * @param[in] locale The desired locale
- *                                     If @c NULL, the default locale will be used.
- * @param[in] type The type of #I18N_UCALENDAR_DEFAULT to create \n
- *                                     This can be #I18N_UCALENDAR_GREGORIAN to create the Gregorian
- * calendar for the locale, or #I18N_UCALENDAR_DEFAULT to create the default calendar for the locale (the
- * default calendar may also be Gregorian).
- * @param[out] calendar A pointer to an #i18n_ucalendar_h,
- *                                       otherwise @c 0 if an error occurs
- *
- * @return An #i18n_error_code_e error code
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_ucalendar_create(const i18n_uchar *zone_id, int32_t len, const char *locale, i18n_ucalendar_type_e type, i18n_ucalendar_h *calendar);
-
-/**
- * @brief Destroys an #i18n_ucalendar_h.
- * @details Once destroyed, an #i18n_ucalendar_h may no longer be used.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to destroy
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_destroy(i18n_ucalendar_h calendar);
-
-/**
- * @brief Creates a copy of a #i18n_ucalendar_h.
- * This function performs a deep copy.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] cal The #i18n_ucalendar_h to copy
- * @param[out] identical_to_cal A pointer to a #i18n_ucalendar_h identical to @a cal.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_clone(const i18n_ucalendar_h cal, i18n_ucalendar_h *identical_to_cal);
-
-/**
- * @brief Gets the display name for a calendar's TimeZone.
- * @details A display name is suitable for presentation to a user.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar    The #i18n_ucalendar_h to query
- * @param[in] type                The desired display name format \n
- *                                                One of #I18N_UCALENDAR_STANDARD, #I18N_UCALENDAR_SHORT_STANDARD, #I18N_UCALENDAR_DST, or #I18N_UCALENDAR_SHORT_DST
- * @param[in] locale      The desired locale for the display name
- * @param[out] result     A pointer to a buffer to receive the formatted number
- * @param[in] result_len The maximum size of the result
- * @param[out] buf_size_needed The total buffer size needed \n
- *                             If greater than @a result_len, the output is truncated
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get_timezone_displayname(const i18n_ucalendar_h calendar, i18n_ucalendar_displayname_type_e type, const char *locale, i18n_uchar *result, int32_t result_len, int32_t *buf_size_needed);
-
-/**
- * @brief Determines if an #i18n_ucalendar_h is currently in daylight savings time.
- * @details Daylight savings time is not used in all parts of the world.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to query
- * @param[out] is_in   If @c true @a calendar is currently in daylight savings time,
- *                                        otherwise @c false
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_is_in_daylight_time(const i18n_ucalendar_h calendar, i18n_ubool *is_in);
-
-/**
- * @brief Sets the value of a field in a #i18n_ucalendar_h.
- * @details All fields are represented as 32-bit integers.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] cal The #i18n_ucalendar_h to modify
- * @param[in] field The field to set \n
- *                             One of #I18N_UCALENDAR_ERA, #I18N_UCALENDAR_YEAR,
- * #I18N_UCALENDAR_MONTH, #I18N_UCALENDAR_WEEK_OF_YEAR, #I18N_UCALENDAR_WEEK_OF_MONTH,
- * #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_DAY_OF_YEAR, #I18N_UCALENDAR_DAY_OF_WEEK,
- * #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH, #I18N_UCALENDAR_AM_PM, #I18N_UCALENDAR_HOUR,
- * #I18N_UCALENDAR_HOUR_OF_DAY, #I18N_UCALENDAR_MINUTE, #I18N_UCALENDAR_SECOND,
- * #I18N_UCALENDAR_MILLISECOND, #I18N_UCALENDAR_ZONE_OFFSET, #I18N_UCALENDAR_DST_OFFSET.
- * @param[in] val The desired value of @a field.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_set(i18n_ucalendar_h cal, i18n_ucalendar_date_fields_e field, int32_t val);
-
-/**
- * @brief Sets a numeric attribute associated with an #i18n_ucalendar_h.
- * @details Numeric attributes include the first day of the week, or the minimal number
- * of days in the first week of the month.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to modify
- * @param[in] attr The desired attribute \n
- *                             One of #I18N_UCALENDAR_LENIENT, #I18N_UCALENDAR_FIRST_DAY_OF_WEEK,
- * or #I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK.
- *
- * @param[in] val The new value of @a attr
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_set_attribute(i18n_ucalendar_h calendar, i18n_ucalendar_attribute_e attr, int32_t val);
-
-/**
- * @brief Gets a numeric attribute associated with an i18n_ucalendar.
- * @details Numeric attributes include the first day of the week, or the minimal numbers of days
- * in the first week of the month.
- *
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The i18n_ucalendar to query
- * @param[in] attr The desired attribute \n
- *                             One of #I18N_UCALENDAR_LENIENT, #I18N_UCALENDAR_FIRST_DAY_OF_WEEK,
- * or #I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK.
- *
- * @param[out] val The value of @a attr
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get_attribute(i18n_ucalendar_h calendar, i18n_ucalendar_attribute_e attr, int32_t *val);
-
-/**
- * @brief Gets a calendar's current time in milliseconds.
- * @details The time is represented as milliseconds from the epoch.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to query
- * @param[out] date The calendar's current time in milliseconds
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucalendar_set_milliseconds()
- * @see i18n_ucalendar_set_date_time()
- */
-int i18n_ucalendar_get_milliseconds(const i18n_ucalendar_h calendar, i18n_udate *date);
-
-/**
- * @brief Sets a calendar's current time in milliseconds.
- * @details The time is represented as milliseconds from the epoch.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to set
- * @param[in] milliseconds The desired date and time
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucalendar_get_milliseconds()
- * @see i18n_ucalendar_set_date_time()
- */
-int i18n_ucalendar_set_milliseconds(i18n_ucalendar_h calendar, i18n_udate milliseconds);
-
-/**
- * @brief Sets a calendar's current date.
- * @details The date is represented as a series of 32-bit integers.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to set
- * @param[in] year The desired year
- * @param[in] month The desired month\n
- *                     One of #I18N_UCALENDAR_JANUARY, #I18N_UCALENDAR_FEBRUARY, #I18N_UCALENDAR_MARCH, #I18N_UCALENDAR_APRIL, #I18N_UCALENDAR_MAY,
- *                     #I18N_UCALENDAR_JUNE, #I18N_UCALENDAR_JULY, #I18N_UCALENDAR_AUGUST, #I18N_UCALENDAR_SEPTEMBER, #I18N_UCALENDAR_OCTOBER, #I18N_UCALENDAR_NOVEMBER, or #I18N_UCALENDAR_DECEMBER
- * @param[in] date The desired day of the month
- * @param[in] hour The desired hour of the day
- * @param[in] min The desired minute
- * @param[in] sec The desired second
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucalendar_get_milliseconds()
- * @see i18n_ucalendar_set_milliseconds()
- */
-int i18n_ucalendar_set_date_time(i18n_ucalendar_h calendar, int32_t year, int32_t month, int32_t date, int32_t hour, int32_t min, int32_t sec);
-
-/**
- * @brief Returns @c true if two #i18n_ucalendar_h calendars are equivalent.
- * @details Equivalent #i18n_ucalendar_h calendars will behave identically, but they may be set to
- * different times.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar1 The first of the calendars to compare
- * @param[in] calendar2 The second of the calendars to compare
- * @param[out] equiv If @c true @a cal1 and @a cal2 are equivalent, otherwise @c false
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_is_equivalent_to(const i18n_ucalendar_h calendar1, const i18n_ucalendar_h calendar2, i18n_ubool *equiv);
-
-/**
- * @brief Adds a specified signed amount to a particular field in a #i18n_ucalendar_h.
- * @details This can modify more significant fields in the calendar.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to which to add
- * @param[in] field The field to which to add the signed value\n One of #I18N_UCALENDAR_ERA, #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH,
- * #I18N_UCALENDAR_WEEK_OF_YEAR, #I18N_UCALENDAR_WEEK_OF_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_DAY_OF_YEAR, #I18N_UCALENDAR_DAY_OF_WEEK,
- * #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH, #I18N_UCALENDAR_AM_PM, #I18N_UCALENDAR_HOUR, #I18N_UCALENDAR_HOUR_OF_DAY, #I18N_UCALENDAR_MINUTE, #I18N_UCALENDAR_SECOND,
- * #I18N_UCALENDAR_MILLISECOND.
- * @param[in] amount The signed amount to add to the field \n
- *                             If the amount causes the value to exceed to maximum or minimum values for that field,
- *                             other fields are modified to preserve the magnitude of the change.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
-
- */
-int i18n_ucalendar_add(i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field, int32_t amount);
-
-/**
- * @brief Gets the current value of a field from an #i18n_ucalendar_h.
- * @details All fields are represented as 32-bit integers.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to query
- * @param[in] field The desired field\n One of I18N_UCALENDAR_ERA, I18N_UCALENDAR_YEAR, I18N_UCALENDAR_MONTH,
- * #I18N_UCALENDAR_WEEK_OF_YEAR, #I18N_UCALENDAR_WEEK_OF_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_DAY_OF_YEAR, #I18N_UCALENDAR_DAY_OF_WEEK,
- * #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH, #I18N_UCALENDAR_AM_PM, #I18N_UCALENDAR_HOUR, #I18N_UCALENDAR_HOUR_OF_DAY, #I18N_UCALENDAR_MINUTE, #I18N_UCALENDAR_SECOND,
- * #I18N_UCALENDAR_MILLISECOND, #I18N_UCALENDAR_ZONE_OFFSET, or #I18N_UCALENDAR_DST_OFFSET.
- * @param[out] val The value of the desired field.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get(const i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field, int32_t *val);
-
-
-/* Newly Added APIs */
-
-
-
-/**
- * @brief Returns the difference between the target time and the time this calendar object is currently set to.
- * @details If the target time is after the current calendar setting, the the returned value will be positive.
- *                     The field parameter specifies the units of the return value.
- *                     For example, if field is I18N_UCALENDAR_MONTH and i18n_ucalendar_get_field_difference returns 3,
- *                     then the target time is 3 to less than 4 months after the current calendar setting. <br>
- *                     As a side effect of this call, this calendar is advanced toward target by the given amount.
- *                     That is, calling this function has the side effect of calling i18n_ucalendar_add on this calendar with the
- *                     specified field and an amount equal to the return value from this function. <br>
- *                     A typical way of using this function is to call it first with the largest field of interest, then with progressively smaller fields.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The i18n_ucalendar_h to compare and update.
- * @param[in] target   The target date to compare to the current calendar setting.
- * @param[in] field       One of #I18N_UCALENDAR_ERA, #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH,
- *                                        #I18N_UCALENDAR_WEEK_OF_YEAR, #I18N_UCALENDAR_WEEK_OF_MONTH, #I18N_UCALENDAR_DATE,
- *                                        #I18N_UCALENDAR_DAY_OF_YEAR, #I18N_UCALENDAR_DAY_OF_WEEK, #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH,
- *                                        #I18N_UCALENDAR_AM_PM, #I18N_UCALENDAR_HOUR, #I18N_UCALENDAR_HOUR_OF_DAY, #I18N_UCALENDAR_MINUTE,
- *                                        #I18N_UCALENDAR_SECOND, #I18N_UCALENDAR_MILLISECOND.
- *                                        <strong>Please note</strong> that the returned value type is int32_t. In case of #I18N_UCALENDAR_MILLISECOND, maximal
- *                                        difference between dates may be equal to the maximal value of the int32_t, which is 2147483647 (about one month difference).
- *                                        If the difference is bigger, then the #I18N_ERROR_INVALID_PARAMETER error will be returned.
- * @param[out] status  A pointer to an i18n_error_code_e to receive any errors
- *
- * @return The date difference for the specified field.
- */
-int32_t i18n_ucalendar_get_field_difference(i18n_ucalendar_h calendar, i18n_udate target, i18n_ucalendar_date_fields_e field, i18n_error_code_e *status);
-
-/**
- * @brief Creates an enumeration over system time zone IDs with the given filter conditions.
- * @since_tizen 2.3.1
- *
- * @param[in] zone_type The system time zone type.
- * @param[in] region The ISO 3166 two-letter country code or UN M.49 three-digit
- *             area code. When @c NULL, no filtering done by region.
- * @param[in] raw_offset An offset from GMT in milliseconds, ignoring the effect
- *             of daylight savings time, if any. When @c NULL, no filtering done by zone offset.
- *
- * @param[out] enumeration A Pointer to the enumeration object that the caller must dispose of using
- *             i18n_uenumeration_destroy(), or@c  NULL upon failure.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_timezone_id_enumeration_create(i18n_system_timezone_type_e zone_type, const char *region, const int32_t *raw_offset, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Creates an enumeration over all time zones.
- * @since_tizen 2.3.1
- *
- * @param[out] enumeration A pointer to the enumeration object that the caller must dispose of using
- *             i18n_uenumeration_destroy(), or @c NULL upon failure.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_timezones_create(i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Creates an enumeration over all time zones associated with the given country.
- * @details Some zones are affiliated with no country (e.g., "UTC"); these may also be retrieved, as a group.
- * @since_tizen 2.3.1
- *
- * @param[in] country The ISO 3166 two-letter country code, or @c NULL to retrieve zones not affiliated with any country
- *
- * @param[out] enumeration A pointer to the enumeration object that the caller must dispose of using
- *             i18n_uenumeration_destroy(), or @c NULL upon failure.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_country_timezones_create(const char *country, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Returns the default time zone.
- * @details The default is determined initially by querying the host operating system.
- *             It may be changed with i18n_ucalendar_set_default_timezone()
- *             or with the C++ TimeZone API.
- * @remarks The specific error code can be obtained using the get_last_result()
- *             method. Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[out] result A buffer to receive the result, or @c NULL
- * @param[in]    result_capacity The capacity of the @c result buffer
- *
- * @return The @c result string length, not including the terminating @c NULL.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid parameter
- */
-int32_t i18n_ucalendar_get_default_timezone(i18n_uchar *result, int32_t result_capacity);
-
-/**
- * @brief Sets the TimeZone used by a #i18n_ucalendar_h.
- * @details A #i18n_ucalendar_h uses a timezone for converting from Greenwich time to local time.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to set.
- * @param[in] zone_id The desired TimeZone ID. If NULL, use the default time zone.
- * @param[in] length The length of @c zone_id, or -1 if NULL-terminated.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_set_timezone(i18n_ucalendar_h calendar, const i18n_uchar *zone_id, int32_t length);
-
-/**
- * @brief Gets the ID of the calendar's time zone.
- * @remarks The specific error code can be obtained using the get_last_result()
- *             method. Error codes are described in Exceptions section and
- *             #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[out] result Receives the calendar's time zone ID.
- * @param[in] result_length The maximum size of the @c result.
- *
- * @return The total buffer size needed; if greater than @c result_length, the output was truncated.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ucalendar_get_timezone_id(const i18n_ucalendar_h calendar, i18n_uchar *result, int32_t result_length);
-
-/**
- * @brief Sets the Gregorian Calendar change date.
- * @details This is the point when the switch from Julian dates to Gregorian dates
- *             occurred. Default is 00:00:00 local time, October 15, 1582.
- *             Previous to this time and date will be Julian dates.
- *             This function works only for Gregorian calendars. If the #i18n_ucalendar_h
- *             is not an instance of a Gregorian calendar, then a
- *             #I18N_ERROR_NOT_SUPPORTED error code is set.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The calendar object.
- * @param[in] date The given Gregorian cutover date.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ucalendar_get_gregorian_change()
- */
-int i18n_ucalendar_set_gregorian_change(i18n_ucalendar_h calendar, i18n_udate date);
-
-/**
- * @brief Gets the Gregorian Calendar change date.
- * @details This is the point when the switch from Julian dates to Gregorian dates
- *             occurred. Default is 00:00:00 local time, October 15, 1582.
- *             Previous to this time and date will be Julian dates.
- *             This function works only for Gregorian calendars. If the #i18n_ucalendar_h
- *             is not an instance of a Gregorian calendar, then a
- *             #I18N_ERROR_NOT_SUPPORTED error code is set.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The calendar object.
- * @param[out] date A pointer to the Gregorian cutover time for this calendar.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ucalendar_set_gregorian_change()
- */
-int i18n_ucalendar_get_gregorian_change(const i18n_ucalendar_h calendar, i18n_udate *date);
-
-/**
- * @brief Gets a locale for which calendars are available.
- * @details A #i18n_ucalendar_h in a locale returned by this function will contain
- *             the correct day and month names for the locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_index The index of the desired locale.
- *
- * @return A locale for which calendars are available, or 0 if none.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid parameter
- * @see i18n_ucalendar_count_available()
- */
-const char *i18n_ucalendar_get_available(int32_t locale_index);
-
-/**
- * @brief Determines how many locales have calendars available.
- * @details This function is most useful as determining the loop ending condition for calls to i18n_ucalendar_get_available().
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @return The number of locales for which calendars are available.
- * @exception #I18N_ERROR_NONE Successful
- * @see i18n_ucalendar_get_available()
- */
-int32_t i18n_ucalendar_count_available(void);
-
-/**
- * @brief Sets a calendar's current date.
- * @details The date is represented as a series of 32-bit integers.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to set.
- * @param[in] year The desired year.
- * @param[in] month The desired month; one of #I18N_UCALENDAR_JANUARY, #I18N_UCALENDAR_FEBRUARY, #I18N_UCALENDAR_MARCH,
- *             #I18N_UCALENDAR_APRIL, #I18N_UCALENDAR_MAY, #I18N_UCALENDAR_JUNE, #I18N_UCALENDAR_JULY, #I18N_UCALENDAR_AUGUST,
- *             #I18N_UCALENDAR_SEPTEMBER, #I18N_UCALENDAR_OCTOBER, #I18N_UCALENDAR_NOVEMBER, #I18N_UCALENDAR_DECEMBER
- * @param[in] date The desired day of the month.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ucalendar_add()
- * @see i18n_ucalendar_set_milliseconds()
- * @see i18n_ucalendar_set_milliseconds()
- * @see i18n_ucalendar_set_date_time()
- */
-int i18n_ucalendar_set_date(i18n_ucalendar_h calendar, int32_t year, int32_t month, int32_t date);
-
-/**
- * @brief Adds a specified signed amount to a particular field in a #i18n_ucalendar_h.
- * @details This will not modify more significant fields in the calendar.
- *             Rolling by a positive value always means moving forward in time
- *             (unless the limit of the field is reached, in which case it may pin or wrap),
- *             so for Gregorian calendar, starting with 100 BC and
- *             rolling the year by +1 results in 99 BC.
- *             When eras have a definite beginning and end (as in the Chinese calendar,
- *             or as in most eras in the Japanese calendar) then rolling the year past either
- *             limit of the era will cause the year to wrap around. When eras only have a limit at one end,
- *             then attempting to roll the year past that limit will result in pinning the year at that limit.
- *             Note that for most calendars in which era 0 years move forward in time (such as Buddhist, Hebrew, or Islamic),
- *             it is possible for add or roll to result in negative years for era 0 (that is the
- *             only way to represent years before the calendar epoch).
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to which to add.
- * @param[in] field The field to which to add the signed value; one of #I18N_UCALENDAR_ERA,
- *             #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH, #I18N_UCALENDAR_WEEK_OF_YEAR,
- *             #I18N_UCALENDAR_WEEK_OF_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_DAY_OF_YEAR,
- *             #I18N_UCALENDAR_DAY_OF_WEEK, #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH, #I18N_UCALENDAR_AM_PM,
- *             #I18N_UCALENDAR_HOUR, #I18N_UCALENDAR_HOUR_OF_DAY, #I18N_UCALENDAR_MINUTE,
- *             #I18N_UCALENDAR_SECOND, #I18N_UCALENDAR_MILLISECOND.
- * @param[in] amount The signed amount to add to the @c field. If the amount causes the
- *             value to exceed to maximum or minimum values for that field, the field is pinned
- *             to a permissible value.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @remarks #I18N_UCALENDAR_ZONE_OFFSET and #I18N_UCALENDAR_DST_OFFSET are not supported by this function.
- * @see i18n_ucalendar_add()
- */
-int i18n_ucalendar_roll(i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field, int32_t amount);
-
-/**
- * @brief Determines if a field in a #i18n_ucalendar_h is set.
- * @details All fields are represented as 32-bit integers.
- * @remarks The specific error code can be obtained using the get_last_result()
- *             method. Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] field       The desired field.
- *
- * @return @c true if field is set, @c false otherwise.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucalendar_get()
- * @see i18n_ucalendar_set()
- * @see i18n_ucalendar_clear_field()
- * @see i18n_ucalendar_clear()
- *
- */
-i18n_ubool i18n_ucalendar_is_set(const i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field);
-
-/**
- * @brief Clears a field in a #i18n_ucalendar_h.
- * @details All fields are represented as 32-bit integers.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h containing the field to clear.
- * @param[in] field       The field to clear.
- *
- * @return Error code
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ucalendar_get()
- * @see i18n_ucalendar_set()
- * @see i18n_ucalendar_is_set()
- * @see i18n_ucalendar_clear()
- *
- */
-int i18n_ucalendar_clear_field(i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field);
-
-/**
- * @brief Clears all fields in a #i18n_ucalendar_h.
- * @details All fields are represented as 32-bit integers.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar #i18n_ucalendar_h to clear.
- *
- * @return Error code
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ucalendar_is_set()
- * @see i18n_ucalendar_clear_field()
- *
- */
-int i18n_ucalendar_clear(i18n_ucalendar_h calendar);
-
-/**
- * @brief Determines a limit for a field in an #i18n_ucalendar_h.
- * @details A limit is a maximum or minimum value for a field.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] field       The desired field; one of #I18N_UCALENDAR_ERA, #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH,
- *                                        #I18N_UCALENDAR_WEEK_OF_YEAR, #I18N_UCALENDAR_WEEK_OF_MONTH, #I18N_UCALENDAR_DATE,
- *                                        #I18N_UCALENDAR_DAY_OF_YEAR, #I18N_UCALENDAR_DAY_OF_WEEK, #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH,
- *                                        #I18N_UCALENDAR_AM_PM, #I18N_UCALENDAR_HOUR, #I18N_UCALENDAR_HOUR_OF_DAY,
- *                                        #I18N_UCALENDAR_MINUTE, #I18N_UCALENDAR_SECOND, #I18N_UCALENDAR_MILLISECOND,
- *                                        #I18N_UCALENDAR_ZONE_OFFSET, #I18N_UCALENDAR_DST_OFFSET, #I18N_UCALENDAR_YEAR_WOY,
- *                                        #I18N_UCALENDAR_DOW_LOCAL, #I18N_UCALENDAR_EXTENDED_YEAR, #I18N_UCALENDAR_JULIAN_DAY,
- *                                        #I18N_UCALENDAR_MILLISECONDS_IN_DAY, #I18N_UCALENDAR_IS_LEAP_MONTH.
- * @param[in] type        The desired critical point; one of #I18N_UCALENDAR_MINIMUM, #I18N_UCALENDAR_MAXIMUM,
- *                                        #I18N_UCALENDAR_GREATEST_MINIMUM, #I18N_UCALENDAR_LEAST_MAXIMUM,
- *                                        #I18N_UCALENDAR_ACTUAL_MINIMUM, #I18N_UCALENDAR_ACTUAL_MAXIMUM.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @return The requested value.
- */
-int32_t i18n_ucalendar_get_limit(const i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field, i18n_ucalendar_limit_type_e type);
-
-/**
- * @brief Gets the locale for this @c calendar object.
- * @details You can choose between valid and actual locale.
- * @remarks The specific error code can be obtained using the get_last_result()
- *             method. Error codes are described in Exceptions section and
- *             #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The calendar object
- * @param[in] type Type of the locale we're looking for (valid or actual)
- *
- * @return The requested value.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_ucalendar_get_locale_by_type(const i18n_ucalendar_h calendar, i18n_ulocale_data_locale_type_e type);
-
-/**
- * @brief Returns the timezone data version currently used by ICU.
- * @remarks The specific error code can be obtained using the get_last_result()
- *             method. Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @return The version string, such as "2007f".
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *i18n_ucalendar_get_tz_data_version(void);
-
-/**
- * @brief Returns the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID.
- * @remarks The specific error code can be obtained using the get_last_result()
- *             method. Error codes are described in Exceptions section and
- *             #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] id The input timezone ID to be canonicalized.
- * @param[in] length The length of the @c id, or @c -1 if NULL-terminated.
- * @param[out] result The buffer receives the canonical system timezone ID or the custom timezone ID in normalized format.
- * @param[in] result_capacity The capacity of the @c result buffer.
- * @param[out] is_system_id Receives if the given @c id is a known system timezone ID.
- *
- * @return The result string length, not including the terminating NULL.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ucalendar_get_canonical_timezone_id(const i18n_uchar *id, int32_t length, i18n_uchar *result, int32_t result_capacity,     i18n_ubool *is_system_id);
-
-/**
- * @brief Gets the resource keyword value string designating the calendar type for the #i18n_ucalendar_h.
- * @remarks The specific error code can be obtained using the get_last_result()
- *             method. Error codes are described in Exceptions section and
- *             #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- *
- * @return The resource keyword value string.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_ucalendar_get_type(const i18n_ucalendar_h calendar);
-
-/**
- * @brief Given a key and a locale, returns an array of string values in a preferred order that would make a difference.
- * @details These are all and only those values where the open (creation) of the service with the
- *             locale formed from the input locale plus input keyword and that value
- *             has different behavior than creation with the input locale alone.
- * @since_tizen 2.3.1
- *
- * @param[in] key One of the keys supported by this service. For now, only "calendar" is supported.
- * @param[in] locale The locale
- * @param[in] commonly_used If set to @c true it will return only commonly used values with
- *             the given locale in preferred order. Otherwise, it will return all the available
- *             values for the locale.
- *
- * @param[out] enumeration A pointer to the string enumeration over keyword values for the given key and the locale.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get_keyword_values_for_locale(const char *key, const char *locale, i18n_ubool commonly_used, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Returns whether the given day of the week is a weekday, a weekend day,
- *             or a day that transitions from one to the other, for the locale and calendar system
- *             associated with this @c #i18n_ucalendar_h (the locale's region is often the most determinant factor).
- * @details If a transition occurs at midnight, then the days before and after the
- *             transition will have the type #I18N_UCALENDAR_WEEKDAY or #I18N_UCALENDAR_WEEKEND.
- *             If a transition occurs at a time other than midnight, then the day of the
- *             transition will have the type #I18N_UCALENDAR_WEEKEND_ONSET or #I18N_UCALENDAR_WEEKEND_CEASE.
- *             In this case, the function i18n_ucalendar_get_weekend_transition() will
- *             return the point of transition.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] day_of_week The day of the week whose type is desired (#I18N_UCALENDAR_SUNDAY..#I18N_UCALENDAR_SATURDAY).
- *
- * @param [out] weekday A pointer to the #i18n_ucalendar_weekday_type_e for the day of the week.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get_day_of_week_type(const i18n_ucalendar_h calendar, i18n_ucalendar_days_of_week_e day_of_week, i18n_ucalendar_weekday_type_e *weekday);
-
-/**
- * @brief Returns the time during the day at which the weekend begins or ends in this calendar system.
- * @details If i18n_ucalendar_get_day_of_week_type() returns #I18N_UCALENDAR_WEEKEND_ONSET
- *             for the specified @c day_of_week, return the time at which the weekend begins. If
- *             i18n_ucalendar_get_day_of_week_type() returns #I18N_UCALENDAR_WEEKEND_CEASE for
- *             the specified @c day_of_week, return the time at which the weekend ends. If
- *             i18n_ucalendar_get_day_of_week_type() returns some other #i18n_ucalendar_weekday_type_e
- *             for the specified @c day_of_week, it is an error condition (#I18N_ERROR_INVALID_PARAMETER).
- * @remarks The specific error code can be obtained using the get_last_result()
- *             method. Error codes are described in Exceptions section and
- *             #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] day_of_week The day of the week whose type is desired (#I18N_UCALENDAR_SUNDAY..#I18N_UCALENDAR_SATURDAY).
- *
- * @return The milliseconds after midnight at which the weekend begins or ends.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t         i18n_ucalendar_get_weekend_transition(const i18n_ucalendar_h calendar, i18n_ucalendar_days_of_week_e day_of_week);
-
-/**
- * @brief Returns @c true if the given #i18n_udate is in the weekend in this calendar system.
- * @remarks The specific error code can be obtained using the get_last_result()
- *             method. Error codes are described in Exceptions section and
- *             #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] date The #i18n_udate in question.
-  *
- * @return @c true if the given #i18n_udate is in the weekend in this calendar system, @c false otherwise.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_ucalendar_is_weekend(i18n_ucalendar_h calendar, i18n_udate date);
-
-/**
- * @brief Get the #i18n_udate for the next/previous time zone transition relative
- *             to the calendar's current date, in the time zone to which the calendar is currently set.
- * @details If there is no known time zone transition of the requested type relative
- *             to the calendar's date, the function returns @c false.
- * @remarks The specific error code can be obtained using the get_last_result()
- *             method. Error codes are described in Exceptions section and
- *             #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] type The type of transition desired.
- * @param[out] transition A pointer to a #i18n_udate to be set to the transition time.
- *             If the function returns @c false, the value set is unspecified.
- *
- * @return @c true if the given #i18n_udate is in the weekend in this calendar system, @c false otherwise.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_ucalendar_get_timezone_transition_date(const i18n_ucalendar_h calendar, i18n_utimezone_transition_type_e type, i18n_udate *transition);
-
-/**
- * @}
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __I18N_UCALENDAR_H__*/
diff --git a/src/include/mobile/utils_i18n_uchar.h b/src/include/mobile/utils_i18n_uchar.h
deleted file mode 100644 (file)
index c104e23..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UCHAR_H__
-#define __UTILS_I18N_UCHAR_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_uchar.h
- * @version 0.1
- * @brief utils_i18n
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UCHAR_MODULE Uchar
- * @brief The Uchar module provides low-level access to the Unicode Character Database.
- *
- * @section CAPI_BASE_UTILS_I18N_UCHAR_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UCHAR_MODULE_OVERVIEW Overview
- * @details The Uchar module provides low-level access to the Unicode Character Database.
- *
- * @section CAPI_BASE_UTILS_I18N_UCHAR_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Gets the property value of 'east asian width' among an enumerated property,
- * and the unicode allocation block that contains the character.
- * @code
-       int ret = I18N_ERROR_NONE;
-       i18n_uchar32 code_point = 0;
-       int property_value = 0;
-       i18n_uchar_u_east_asian_width_e east_asian_width = I18N_UCHAR_U_EA_NEUTRAL;
-       i18n_uchar_ublock_code_e block_code = I18N_UCHAR_UBLOCK_NO_BLOCK;
-
-       // How to get the east asian width type for 's'
-       code_point = 0x73;        // 's'
-       ret = i18n_uchar_get_int_property_value(code_point, I18N_UCHAR_EAST_ASIAN_WIDTH, &property_value);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
-       } else {
-               east_asian_width = (i18n_uchar_u_east_asian_width_e)property_value;
-               dlog_print(DLOG_INFO, LOG_TAG, "East Asian Width Type for ( %.4x ) is ( %d )\n", code_point, east_asian_width);
-               // East Asian Width Type for ( 0073 ) is ( 4 ) which is I18N_UCHAR_U_EA_NARROW
-       }
-
-       // How to get the block code for 's'
-       ret = i18n_uchar_get_ublock_code(code_point, &block_code);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
-       } else {
-               dlog_print(DLOG_INFO, LOG_TAG, "block name for ( %.4x ) is ( %d )\n", code_point, block_code);
-               // block code for ( 0073 ) is ( 1 ) which is I18N_UCHAR_UBLOCK_BASIC_LATIN
-       }
-
-       // How to get the east asian width type for 'sung' as ideographs
-       code_point = 0x661F;    // 'sung' as ideographs
-       ret = i18n_uchar_get_int_property_value(code_point, I18N_UCHAR_EAST_ASIAN_WIDTH, &property_value);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
-       } else {
-               east_asian_width = (i18n_uchar_u_east_asian_width_e)property_value;
-               dlog_print(DLOG_INFO, LOG_TAG, "East Asian Width Type for ( %.4x ) is ( %d )\n", code_point, east_asian_width);
-               // East Asian Width Type for ( 661f ) is ( 5 ) which is I18N_UCHAR_U_EA_WIDE
-       }
-
-       // How to get the block code for 'sung' as ideographs
-       ret = i18n_uchar_get_ublock_code(code_point, &block_code);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
-       } else {
-               dlog_print(DLOG_INFO, LOG_TAG, "block name for ( %.4x ) is ( %d )\n", code_point, block_code);
-               // block code for ( 661f ) is ( 71 ) which is I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS
-       }
-
-       // How to get the east asian width type for 'sung' as hangul
-       code_point = 0xC131;    // 'sung' as hangul
-       ret = i18n_uchar_get_int_property_value(code_point, I18N_UCHAR_EAST_ASIAN_WIDTH, &property_value);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
-       } else {
-               east_asian_width = (i18n_uchar_u_east_asian_width_e)property_value;
-               dlog_print(DLOG_INFO, LOG_TAG, "East Asian Width Type for ( %.4x ) is ( %d )\n", code_point, east_asian_width);
-               // East Asian Width Type for ( c131 ) is ( 5 ) which is I18N_UCHAR_U_EA_WIDE
-       }
-
-       // How to get the block code for 'sung' as hangul
-       ret = i18n_uchar_get_ublock_code(code_point, &block_code);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
-       } else {
-               dlog_print(DLOG_INFO, LOG_TAG, "block name for ( %.4x ) is ( %d )\n", code_point, block_code);
-               // block code for ( c131 ) is ( 74 ) which is I18N_UCHAR_UBLOCK_HANGUL_SYLLABLES
-       }
-
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCHAR_MODULE
- * @{
- */
-
-/**
- * @brief Gets the property value for an enumerated property for a code point.
- * @details
- *        <code>
- *        int property_value;\n
- *        #i18n_uchar_u_east_asian_width_e east_asian_width;\n
- *        #i18n_uchar_get_int_property_value (c, #I18N_UCHAR_EAST_ASIAN_WIDTH, &property_value);\n
- *        east_asian_width = (#i18n_uchar_u_east_asian_width_e)property_value;\n
- *
- *        int property_value;\n
- *        bool is_ideographic;\n
- *        #i18n_uchar_get_int_property_value(c, #I18N_UCHAR_IDEOGRAPHIC, &property_value);\n
- *        is_ideographic = (bool)property_value;\n
- *        </code>
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] c The code point to test.
- * @param[in] which The #i18n_uchar_uproperty_e selector constant, identifies which property to check \n
- * Must be #I18N_UCHAR_BINARY_START<=which<#I18N_UCHAR_BINARY_LIMIT
- * or #I18N_UCHAR_INT_START<=which<#I18N_UCHAR_INT_LIMIT
- * or #I18N_UCHAR_MASK_START<=which<#I18N_UCHAR_MASK_LIMIT.
- * @param[out] property_val The numeric value that is directly the property value or,
- * for enumerated properties, corresponds to the numeric value of the enumerated
- * constant of the respective property value enumeration type (cast to enum type if necessary)\n
- * Returns @c 0 or @c 1 (for false/true) for binary Unicode properties\n
- * Returns a bit-mask for mask properties \n
- * Returns @c 0 if 'which' is out of bounds or if the Unicode version does not have data for the property at all, or not for this code point.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uchar_get_int_property_value(i18n_uchar32 c, i18n_uchar_uproperty_e which, int32_t *property_val);
-
-/**
- * @brief Gets the Unicode allocation block that contains the character.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] c The code point to test
- * @param[out] block_val The block value for the code point
- *
- * @retval #I18N_ERROR_NONE     Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uchar_get_ublock_code(i18n_uchar32 c, i18n_uchar_ublock_code_e *block_val);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_UCHAR_H__*/
diff --git a/src/include/mobile/utils_i18n_ucollator.h b/src/include/mobile/utils_i18n_ucollator.h
deleted file mode 100644 (file)
index 9c0c40c..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UCOLLATOR_H__
-#define __UTILS_I18N_UCOLLATOR_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_ucollator.h
- * @version 0.1
- * @brief utils_i18n_ucollator
- */
-
-#ifdef __cplusplus
-extern "C" {
-# endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE Ucollator
- * @brief The Ucollator module performs locale-sensitive string comparison.
- *
- * @section CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE_OVERVIEW Overview
- * @details The Ucollator module performs locale-sensitive string comparison. It builds searching and sorting routines for natural language text and provides correct sorting orders for most locales supported.
- *
- * @section CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Converts two different byte strings to two different unicode strings and compares the unicode strings to check if the strings are equal to each other.
- * @code
-       i18n_uchar uchar_src[64] = {0,};
-       i18n_uchar uchar_target[64] = {0,};
-       char *src = "tizen";
-       char *target = "bada";
-       int uchar_src_len = 0;
-       int uchar_target_len = 0;
-       i18n_ucollator_h coll = NULL;
-       i18n_ubool result = NULL;
-
-       i18n_ustring_from_UTF8( uchar_src, 64, NULL, src, -1 );
-       i18n_ustring_from_UTF8( uchar_target, 64, NULL, target, -1 );
-
-       // creates a collator
-       i18n_ucollator_create( "en_US", &coll );
-
-       // sets strength for coll
-       i18n_ucollator_set_strength( coll, I18N_UCOLLATOR_PRIMARY );
-
-       // compares uchar_src with uchar_target
-       i18n_ustring_get_length( uchar_src, &uchar_src_len );
-       i18n_ustring_get_length( uchar_target, &uchar_target_len );
-       i18n_ucollator_equal( coll, uchar_src, uchar_src_len, uchar_target, uchar_target_len, &result );
-       dlog_print(DLOG_INFO, LOG_TAG, "%s %s %s\n", src, result == 1 ? "is equal to" : "is not equal to", target );    // tizen is not equal to bada
-
-       // destroys the collator
-       i18n_ucollator_destroy( coll );
- * @endcode
- * @section CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE_SAMPLE_CODE_2 Sample Code 2
- * @brief Sorts in ascending order on the given data using string_ucollator
- * @code
-       i18n_ucollator_h coll = NULL;
-       char *src[3] = { "cat", "banana", "airplane" };
-       char *tmp = NULL;
-       i18n_uchar buf_01[16] = {0,};
-       i18n_uchar buf_02[16] = {0,};
-       i18n_ucollator_result_e result = I18N_UCOLLATOR_EQUAL;
-       int i = 0, j = 0;
-       int ret = I18N_ERROR_NONE;
-       int buf_01_len = 0, buf_02_len = 0;
-
-       for (i = 0; i < sizeof(src) / sizeof(src[0]); i++) {
-               dlog_print(DLOG_INFO, LOG_TAG, "%s\n", src[i]);
-       }        // cat    banana        airplane
-
-       // creates a collator
-       ret = i18n_ucollator_create("en_US", &coll);
-
-       // compares and sorts in ascending order
-       if (ret == I18N_ERROR_NONE) {
-               i18n_ucollator_set_strength(coll, I18N_UCOLLATOR_TERTIARY);
-               for (i = 0; i < 2; i++) {
-                       for (j = 0; j < 2 - i; j++) {
-                               i18n_ustring_copy_ua(buf_01, src[j]);
-                               i18n_ustring_copy_ua(buf_02, src[j+1]);
-                               i18n_ustring_get_length(buf_01, &buf_01_len);
-                               i18n_ustring_get_length(buf_02, &buf_02_len);
-                               // compares buf_01 with buf_02
-                               i18n_ucollator_str_collator(coll, buf_01, buf_01_len, buf_02, buf_02_len, &result);
-                               if (result == I18N_UCOLLATOR_GREATER) {
-                                       tmp = src[j];
-                                       src[j] = src[j+1];
-                                       src[j+1] = tmp;
-                               }
-                       }
-               }
-       }
-       // destroys the collator
-       i18n_ucollator_destroy( coll );    // deallocate memory for collator
-
-       for (i = 0; i < sizeof(src) / sizeof(src[0]); i++) {
-               dlog_print(DLOG_INFO, LOG_TAG, "%s\n", src[i]);
-       }        // ariplane    banana    cat
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE
- * @{
- */
-
-/**
- * @brief Creates a i18n_ucollator_h for comparing strings.
- * @details For some languages, multiple collation types are available;
- * for example, "de@collation=phonebook".
- * Collation attributes can be specified via locale keywords as well,
- * in the old locale extension syntax ("el@colCaseFirst=upper")
- * or in language tag syntax ("el-u-kf-upper").
- * See <a href="http://userguide.icu-project.org/collation/api">User Guide: Collation API</a>.
- *
- * The i18n_ucollator_h is used in all the calls to the Collation service.\n
- * After finished, collator must be disposed off by calling {@link #i18n_ucollator_destroy()}.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @remarks Must release @a collator using i18n_ucollator_destroy().
- *
- * @param[in] locale The locale containing the required collation rules\n
- * Special values for locales can be passed in - if @c NULL is passed for the locale, the default locale collation rules will be used \n
- * If empty string ("") or "root" is passed, UCA rules will be used.
- * @param[out] collator i18n_ucollator_h, otherwise @c 0 if an error occurs
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucollator_destroy()
- */
-int i18n_ucollator_create(const char *locale, i18n_ucollator_h *collator);
-
-/**
- * @brief Closes a i18n_ucollator_h.
- * @details Once closed, a string_ucollator_h should not be used. Every an open collator should be closed. Otherwise, a memory leak will result.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] collator The i18n_ucollator_h to close
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucollator_create()
- */
-int i18n_ucollator_destroy(i18n_ucollator_h collator);
-
-/**
- * @brief Compares two strings.
- * @details The strings will be compared using the options already specified.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] collator The i18n_ucollator_h containing the comparison rules
- * @param[in] src The source string
- * @param[in] src_len The length of the source, otherwise @c -1 if null-terminated
- * @param[in] target The target string.
- * @param[in] target_len The length of the target, otherwise @c -1 if null-terminated
- * @param[out] result The result of comparing the strings \n
- * One of #I18N_UCOLLATOR_EQUAL, #I18N_UCOLLATOR_GREATER, or #I18N_UCOLLATOR_LESS
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucollator_equal()
- */
-int i18n_ucollator_str_collator(const i18n_ucollator_h collator, const i18n_uchar *src, int32_t src_len, const i18n_uchar *target, int32_t target_len, i18n_ucollator_result_e *result);
-
-/**
- * @brief Compares two strings for equality.
- * @details This function is equivalent to {@link #i18n_ucollator_str_collator()}.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] collator The i18n_ucollator_h containing the comparison rules
- * @param[in] src The source string
- * @param[in] src_len The length of the source, otherwise @c -1 if null-terminated
- * @param[in] target The target string
- * @param[in] target_len The length of the target, otherwise @c -1 if null-terminated
- * @param[out] equal If @c true source is equal to target, otherwise @c false
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucollator_str_collator()
- */
-int i18n_ucollator_equal(const i18n_ucollator_h collator, const i18n_uchar *src, int32_t src_len, const i18n_uchar *target, int32_t target_len, i18n_ubool *equal);
-
-/**
- * @brief Sets the collation strength used in a collator.
- * @details The strength influences how strings are compared.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] collator The i18n_collator_h to set.
- * @param[in] strength The desired collation strength.\n
- *        One of #i18n_ucollator_strength_e
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucollator_set_strength(i18n_ucollator_h collator, i18n_ucollator_strength_e strength);
-
-/**
- * @brief Sets a universal attribute setter.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] collator The i18n_collator_h containing attributes to be changed
- * @param[in] attr The attribute type
- * @param[in] val The attribute value
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucollator_set_attribute(i18n_ucollator_h collator, i18n_ucollator_attribute_e attr, i18n_ucollator_attribute_value_e val);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_UCOLLATOR_H__*/
diff --git a/src/include/mobile/utils_i18n_udate.h b/src/include/mobile/utils_i18n_udate.h
deleted file mode 100644 (file)
index eb1d646..0000000
+++ /dev/null
@@ -1,635 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UDATE_H__
-#define __UTILS_I18N_UDATE_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_udate.h
- * @version 0.1
- * @brief utils_i18n_udate
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UDATE_MODULE Udate
- * @brief The Udate module consists of functions that convert dates and time from their
- * internal representations to textual form and back again in a language-independent
- * manner.
- *
- * @section CAPI_BASE_UTILS_I18N_UDATE_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UDATE_MODULE_OVERVIEW Overview
- * @details The Udate module consists of functions that convert dates and time from their
- * internal representations to textual form and back again in a language-independent
- * manner. Converting from the internal representation (milliseconds since midnight,
- * January 1, 1970) to text is known as "formatting," and converting from text to
- * milliseconds is known as "parsing". We currently define only one concrete handle
- * #i18n_udate_format_h, which can handle pretty much all normal date formatting and parsing
- * actions.\n
- * The Udate module helps you format and parse dates for any locale. Your code can be
- * completely independent of the locale conventions for months, days of the week,
- * or even the calendar format: lunar vs. solar.
- *
- * @section CAPI_BASE_UTILS_I18N_UDATE_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Gets the best pattern according to a given locale and formats a current date and time using a locale_udate_format_h
- * @code
-       i18n_udatepg_h pattern_generator = NULL;
-       char *locale = I18N_ULOCALE_US;
-
-       dlog_print(DLOG_INFO, LOG_TAG, "pattern_generator\n");
-
-       if(!pattern_generator) {
-               // create a pattern generator according to a given locale
-               i18n_udatepg_create(locale, &pattern_generator);
-       }
-
-       if(!pattern_generator) {
-               dlog_print(DLOG_INFO, LOG_TAG, "i18n_udatepg_create fail");
-               return ;
-       }
-
-       i18n_uchar bestPattern[64] = {0,};
-       char bestPatternString[64] = {0,};
-       int bestPatternLength, len;
-       const char *custom_format = "yyyy.MM.dd G 'at' HH:mm:ss zzz";
-       i18n_uchar uch_custom_format[64];
-       int ret = I18N_ERROR_NONE;
-
-       dlog_print(DLOG_INFO, LOG_TAG, "getBestPattern\n");
-
-       i18n_ustring_copy_ua(uch_custom_format, custom_format);
-       len = i18n_ustring_get_length(uch_custom_format);
-
-       // gets the best pattern that matches the given custom_format
-       i18n_udatepg_get_best_pattern(pattern_generator, uch_custom_format, len, bestPattern, 64, &bestPatternLength);
-
-       i18n_ustring_copy_au_n(bestPatternString, bestPattern, 64);
-       // gets "MM/dd/yyyy G h:mm:ss a zzz" as the best pattern
-       dlog_print(DLOG_INFO, LOG_TAG, "getBestPattern(char[]) : %s \n", bestPatternString);
-
-       // closes a generator
-       i18n_udatepg_destroy(pattern_generator);
-
-       i18n_udate_format_h formatter_KR = NULL;
-       i18n_udate_format_h formatter_LA = NULL;
-       i18n_udate_format_h formatter_SaoPaulo = NULL;
-       i18n_uchar formatted[64] = {0,};
-       char result[64] = {0,};
-       int formattedLength;
-       i18n_udate date;
-       const char *timezone_KR = "GMT+9:00";   // TimeZone for Korea/Seoul
-       const char *timezone_LA = "America/Los_Angeles";
-       const char *timezone_SaoPaulo = "America/Sao_Paulo";    // Brazil/East
-       i18n_uchar utf16_timezone_KR[64] = {0,};
-       i18n_uchar utf16_timezone_LA[64] = {0,};
-       i18n_uchar utf16_timezone_SaoPaulo[64] = {0,};
-
-       i18n_ustring_copy_ua_n(utf16_timezone_KR, timezone_KR, strlen(timezone_KR));
-       i18n_ustring_copy_ua_n(utf16_timezone_LA, timezone_LA, strlen(timezone_LA));
-       i18n_ustring_copy_ua_n(utf16_timezone_SaoPaulo, timezone_SaoPaulo, strlen(timezone_SaoPaulo));
-
-       // creates new i18n_udate_format_h to format dates and times
-       ret = i18n_udate_create(I18N_UDATE_FULL , I18N_UDATE_FULL , locale, utf16_timezone_KR, -1, bestPattern, -1, &formatter_KR);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
-       }
-       if (!formatter_KR) {
-               dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
-       }
-       ret = i18n_udate_create(I18N_UDATE_FULL , I18N_UDATE_FULL , locale, utf16_timezone_LA, -1, bestPattern, -1, &formatter_LA);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
-       }
-       if (!formatter_LA) {
-               dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
-       }
-       ret = i18n_udate_create(I18N_UDATE_PATTERN , I18N_UDATE_PATTERN , locale, utf16_timezone_SaoPaulo, -1, bestPattern, -1, &formatter_SaoPaulo);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
-       }
-       if (!formatter_SaoPaulo) {
-               dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
-       }
-
-       dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_format_date\n");
-
-       // gets the current date and time
-       i18n_ucalendar_get_now(&date);
-
-       // formats a date using i18n_udate_format_h
-       i18n_udate_format_date(formatter_KR, date, formatted, 64, NULL, &formattedLength);
-       i18n_ustring_copy_au_n(result, formatted, 64);
-       //ex) KOREA/Seoul - Current date : Wednesday, June 18, 2014 1:34:54 PM GMT+09:00
-       dlog_print(DLOG_INFO, LOG_TAG, "KOREA/Seoul - Current date : %s\n",result);
-
-       // formats a date using i18n_udate_format
-       i18n_udate_format_date(formatter_LA, date, formatted, 64, NULL, &formattedLength);
-       i18n_ustring_copy_au_n(result, formatted, 64);
-       //ex) America/LOS Angeles - Current date : Tuesday, June 17, 2014 9:34:54 PM Pacific Daylight Time
-       dlog_print(DLOG_INFO, LOG_TAG, "America/LOS Angeles - Current date : %s\n",result);
-
-       // formats a date using i18n_udate_format_h
-       i18n_udate_format_date(formatter_SaoPaulo, date, formatted, 64, NULL, &formattedLength);
-       i18n_ustring_copy_au_n(result, formatted, 64);
-       //ex) Brazil/Sao Paulo - Current date : 6 18, 2014 AD, 1:34:54 PM GMT-2
-       dlog_print(DLOG_INFO, LOG_TAG, "Brazil/Sao Paulo - Current date : %s\n",result);
-
-       dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_destroy\n");
-       // destroy an i18n_udate_format_h
-       i18n_udate_destroy(formatter_KR);
-       i18n_udate_destroy(formatter_LA);
-       i18n_udate_destroy(formatter_SaoPaulo);
- * @endcode
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UDATE_MODULE
- * @{
- */
-
-/**
- * @brief Creates a new #i18n_udate_format_h for formatting and parsing dates and times.
- * @details A #i18n_udate_format_h may be used to format dates in calls to {@link i18n_udate_create()}.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @remarks Must release @a format using i18n_udate_destroy().\n
- *                     If @a pattern parameter is used, pass in #I18N_UDATE_PATTERN for @a time_style and @a date_style. \n
- *                     #I18N_UDATE_PATTERN can only be used in this case, and has to be set for both @a time_style and @a date_style.
- *
- * @param[in] time_style The style used to format times\n One of #I18N_UDATE_FULL, #I18N_UDATE_LONG,
- * #I18N_UDATE_MEDIUM, #I18N_UDATE_SHORT, #I18N_UDATE_DEFAULT, #I18N_UDATE_PATTERN (see remarks) or #I18N_UDATE_NONE (relative time styles
- * are not currently supported).
- * @param[in] date_style The style used to format dates\n One of #I18N_UDATE_FULL, #I18N_UDATE_LONG,
- * #I18N_UDATE_MEDIUM, #I18N_UDATE_SHORT, #I18N_UDATE_DEFAULT, #I18N_UDATE_RELATIVE, #I18N_UDATE_LONG_RELATIVE,
- * #I18N_UDATE_MEDIUM_RELATIVE, #I18N_UDATE_SHORT_RELATIVE, #I18N_UDATE_PATTERN (see remarks) or #I18N_UDATE_NONE
- * @param[in] locale The locale specifying the formatting conventions.
- * @param[in] tz_id A timezone ID specifying the timezone to use\n     If @c 0, use the default timezone.
- * @param[in] tz_id_len The length of @a tz_id, otherwise @c -1 if NULL-terminated.
- * @param[in] pattern A pattern specifying the format to use. The pattern is generated by Udatepg module.\n
- *                                       When the pattern parameter is used, pass in #I18N_UDATE_PATTERN for both time_style and date_style.\n
- *                                       See remarks for additional conditions.
- * @param[in] pattern_len The number of characters in the pattern, or otherwise @c -1 if NULL-terminated.
- * @param[out] format A pointer to an #i18n_udate_format_h to use for formatting dates and times, otherwise @c 0 if an error occurs.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_create(i18n_udate_format_style_e time_style, i18n_udate_format_style_e date_style, const char *locale, const i18n_uchar *tz_id, int32_t tz_id_len, const i18n_uchar *pattern, int pattern_len, i18n_udate_format_h *format);
-
-/**
- * @brief Destroys an #i18n_udate_format_h.
- * @details Once destroyed, an #i18n_udate_format_h may no longer be used.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] format The formatter to destroy.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_destroy(i18n_udate_format_h format);
-
-/**
- * @brief Formats a date using an #i18n_udate_format_h.
- * @details The date will be formatted using the conventions specified in {@link i18n_udate_create()}
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] format The formatter to use.
- * @param[in] date_to_format The date to format.
- * @param[out] result A pointer to a buffer to receive the formatted number.
- * @param[in] result_len The maximum size of the result.
- * @param[in] pos A pointer to an i18n_ufield_position\n
- * On input, position->field is read\n
- * On output, position->beginIndex and position->endIndex indicate
- * the beginning and ending indices of field number position->field, if such a field exists\n
- * This parameter may be @c NULL, in which case no field
- * position data is returned.
- * @param[out] buf_size_needed The total buffer size needed\n
- * If greater than @a result_len, the output was truncated.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_format_date(const i18n_udate_format_h format, i18n_udate date_to_format, i18n_uchar *result, int32_t result_len, i18n_ufield_position_h pos, int32_t *buf_size_needed);
-
-
-/* Newly Added APIs */
-
-/**
- * @brief Maps from an #i18n_udate_format_h to the corresponding #i18n_ucalendar_date_fields_e.
- * @details Note: since the mapping is many-to-one, there is no inverse mapping.
- * @since_tizen 2.3.1
- *
- * @param[in] field The #i18n_udate_format_h to map.
- *        #I18N_UDATE_FORMAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD, #I18N_UDATE_FORMAT_TIMEZONE_ISO_FIELD,
- *        #I18N_UDATE_FORMAT_TIMEZONE_ISO_LOCAL_FIELD and #I18N_UDATE_FORMAT_FIELD_COUNT are not supported.
- * @param[out] date_field_type A pointer to the #i18n_ucalendar_date_fields_e.
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_to_calendar_date_field(i18n_udate_format_field_e field, i18n_ucalendar_date_fields_e *date_field_type);
-
-/**
- * @brief Creates a copy of an #i18n_udate_format_h.
- * @details This function performs a deep copy.
- * @since_tizen 2.3.1
- *
- * @param[in] format    The format to copy.
- * @param[out] format_clone A pointer to clone of @c format.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_clone(const i18n_udate_format_h format, i18n_udate_format_h *format_clone);
-
-/**
- * @brief Parses a string into an date/time using an #i18n_udate_format_h.
- * @details The date will be parsed using the conventions specified in {@link i18n_udate_create()}.<br>
- *                     Note that the normal date formats associated with some calendars - such as the Chinese lunar calendar - do not specify enough fields to enable dates to be parsed unambiguously.
- *                     In the case of the Chinese lunar calendar, while the year within the current 60-year cycle is specified,
- *                     the number of such cycles since the start date of the calendar (in the #I18N_UCALENDAR_ERA field of the i18n_ucalendar_h) is not normally part of the format,
- *                     and parsing may assume the wrong era.
- *                     For such cases it is recommended that clients parse using i18n_udate_parse_calendar() with the calendar passed in set to the current date,
- *                     or to a date within the era/cycle that should be assumed if absent in the format.
- * @since_tizen 2.3.1
- *
- * @param[in] format     The formatter to use.
- * @param[in] text               The text to parse.
- * @param[in] text_length The length of text, or -1 if NULL-terminated.
- * @param[in] parse_pos          If not 0, on input a pointer to an integer specifying the offset at which to begin parsing.
- *                                               If not 0, on output the offset at which parsing ended.
- * @param[out] parsed_date A pointer to the value of the parsed date/time.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_format_date()
- */
-int i18n_udate_parse(const i18n_udate_format_h format, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos, i18n_udate *parsed_date);
-
-/**
- * @brief Parses a string into an date/time using an #i18n_udate_format_h.
- * @details The date will be parsed using the conventions specified in {@link i18n_udate_create()}.
- * @since_tizen 2.3.1
- *
- * @param[in] format            The formatter to use.
- * @param[in,out] calendar      A pointer to calendar set on input to the date and time to be used for missing values in the date/time string being parsed,
- *                                                      and set on output to the parsed date/time.
- *                                                      When the calendar type is different from the internal calendar held by the #i18n_udate_format_h instance,
- *                                                      the internal calendar will be cloned to a work calendar set to the same milliseconds and time zone as this calendar parameter,
- *                                                      field values will be parsed based on the work calendar, then the result (milliseconds and time zone) will be set in this calendar.
- * @param[in] text                      The text to parse.
- * @param[in] text_length       The length of text, or -1 if NULL-terminated.
- * @param[in] parse_pos                 If not 0, on input a pointer to an integer specifying the offset at which to begin parsing.
- *                                                      If not 0, on output the offset at which parsing ended.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_format_date()
- */
-int i18n_udate_parse_calendar(const i18n_udate_format_h format, i18n_ucalendar_h *calendar, const i18n_uchar *text,
-                                                         int32_t text_length, int32_t *parse_pos);
-
-/**
- * @brief Determines if an #i18n_udate_format_h will perform lenient parsing.
- * @details With lenient parsing, the parser may use heuristics to interpret inputs that do not precisely match the pattern.
- *                     With strict parsing, inputs must match the pattern.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] format    The #i18n_udate_format_h to query.
- *
- * @return true if format is set to perform lenient parsing, false otherwise.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_set_lenient()
- */
-i18n_ubool i18n_udate_is_lenient(const i18n_udate_format_h format);
-
-/**
- * @brief Specifies whether an #i18n_udate_format_h will perform lenient parsing.
- * @details With lenient parsing, the parser may use heuristics to interpret inputs that do not precisely match the pattern.
- *                     With strict parsing, inputs must match the pattern.
- * @since_tizen 2.3.1
- *
- * @param[in] format     The #i18n_udate_format_h to set.
- * @param[in] is_lenient true if fmt should perform lenient parsing, false otherwise.
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_is_lenient()
- */
-int i18n_udate_set_lenient(i18n_udate_format_h format, i18n_ubool is_lenient);
-
-/**
- * @brief Gets the #i18n_ucalendar_h associated with an #i18n_udate_format_h.
- * @details An #i18n_udate_format_h uses an #i18n_ucalendar_h to convert a raw value to, for example, the day of the week.
- * @since_tizen 2.3.1
- *
- * @param[in] format           The #i18n_udate_format_h to query.
- * @param[out] calendar                A pointer to the #i18n_ucalendar_h used by format.
- *
- * @return Error code.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_set_calendar()
- */
-int i18n_udate_get_calendar(const i18n_udate_format_h format, i18n_ucalendar_h *calendar);
-
-/**
- * @brief Sets the #i18n_ucalendar_h associated with an #i18n_udate_format_h.
- * @details An #i18n_udate_format_h uses an #i18n_ucalendar_h to convert a raw value to, for example, the day of the week.
- * @since_tizen 2.3.1
- *
- * @param[in] format                    The #i18n_udate_format_h.
- * @param[in] calendar_to_set   An #i18n_ucalendar_h to be used by the format.
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_get_calendar()
- */
-int i18n_udate_set_calendar(i18n_udate_format_h format, const i18n_ucalendar_h calendar_to_set);
-
-/**
- * @brief Gets the #i18n_unumber_format_h associated with an #i18n_udate_format_h.
- * @details An #i18n_udate_format_h uses an #i18n_unumber_format_h to format numbers within a date, for example the day number.
- * @since_tizen 2.3.1
- *
- * @param[in] format                   The formatter to query.
- * @param[out] number_format   A pointer to the #i18n_unumber_format_h used by @a format to format numbers.
- *
- * @return Error code.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_set_number_format()
- */
-int i18n_udate_get_number_format(const i18n_udate_format_h format, i18n_unumber_format_h *number_format);
-
-/**
- * @brief Sets the #i18n_unumber_format_h associated with an #i18n_udate_format_h.
- * @details An #i18n_udate_format_h uses an #i18n_unumber_format_h to format numbers within a date, for example the day number.
- * @since_tizen 2.3.1
- *
- * @param[in] format                            The #i18n_udate_format_h to set.
- * @param[in] number_format_to_set      An #i18n_unumber_format_h to be used by @a format to format numbers.
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_get_number_format()
- */
-int i18n_udate_set_number_format(i18n_udate_format_h format, const i18n_unumber_format_h number_format_to_set);
-
-/**
- * @brief Gets a locale for which date/time formatting patterns are available.
- * @details An #i18n_udate_format_h in a locale returned by this function will perform the correct formatting and parsing for the locale.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_index        The index of the desired locale.
- *
- * @return A locale for which date/time formatting patterns are available, or 0 if none.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
-
- * @see i18n_udate_count_available()
- */
-const char *i18n_udate_get_available(int32_t locale_index);
-
-/**
- * @brief Determines how many locales have date/time formatting patterns available.
- * @details This function is the most useful for determining the loop ending condition for calls to {@link #i18n_udate_get_available()}.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @return The number of locales for which date/time formatting patterns are available.
- *
- * @exception #I18N_ERROR_NONE Successful
- *
- * @see i18n_udate_get_available()
- */
-int32_t i18n_udate_count_available(void);
-
-/**
- * @brief Gets the year relative to which all 2-digit years are interpreted.
- * @details For example, if the 2-digit start year is 2100, the year 99 will be interpreted as 2199.
- *
- * @since_tizen 2.3.1
- *
- * @param[in] format    The #i18n_udate_format_h to get.
- * @param[out] year A pointer to the year relative to which all 2-digit years are interpreted.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_set_2digit_year_start()
- */
-int i18n_udate_get_2digit_year_start(const i18n_udate_format_h format, i18n_udate *year);
-
-/**
- * @brief Sets the year relative to which all 2-digit years will be interpreted.
- * @details For example, if the 2-digit start year is 2100, the year 99 will be interpreted as 2199.
- *
- * @since_tizen 2.3.1
- *
- * @param[in] format  The #i18n_udate_format_h to map.
- * @param[in] date       The year relative to which all 2-digit years will be interpreted.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_get_2digit_year_start()
- */
-int i18n_udate_set_2digit_year_start(i18n_udate_format_h format, i18n_udate date);
-
-/**
- * @brief Extracts the pattern from an #i18n_udate_format_h.
- * @details The pattern will follow the pattern syntax rules.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] format            The #i18n_udate_format_h to query.
- * @param[in] localized                 true if the pattern should be localized, false otherwise.
- * @param[out] result           A pointer to a buffer to receive the pattern.
- * @param[in] result_length     The maximum size of result.
- *
- * @return The total buffer size needed; if greater than result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_apply_pattern()
- */
-int32_t i18n_udate_to_pattern(const i18n_udate_format_h format, i18n_ubool localized, i18n_uchar *result,
-                                                         int32_t result_length);
-
-/**
- * @brief Sets the pattern used by an #i18n_udate_format_h.
- * @details The pattern should follow the pattern syntax rules.
- * @since_tizen 2.3.1
- *
- * @param[in] format            The #i18n_udate_format_h to set.
- * @param[in] localized                 true if the pattern is localized, false otherwise.
- * @param[in] pattern           The new pattern.
- * @param[in] pattern_length The length of pattern, or -1 if NULL-terminated.
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_to_pattern()
- */
-int i18n_udate_apply_pattern(i18n_udate_format_h format, i18n_ubool localized, const i18n_uchar *pattern,
-                                                        int32_t pattern_length);
-
-/**
- * @brief Gets the symbols associated with an #i18n_udate_format_h.
- * @details The symbols are what an #i18n_udate_format_h uses to represent locale-specific data, for example month or day names.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] format           The #i18n_udate_format_h to query.
- * @param[in] type                     The type of symbols to get.
- *                                                     All the types defined in the #i18n_udate_format_symbol_type_e enumeration are supported.
- * @param[in] symbol_index     The desired symbol of type type.
- * @param[out] result          A pointer to a buffer to receive the pattern.
- * @param[in] result_length The maximum size of the result buffer.
- *
- * @return The total buffer size needed; if greater than result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_count_symbols()
- * @see #i18n_udate_set_symbols()
- */
-int32_t i18n_udate_get_symbols(const i18n_udate_format_h format, i18n_udate_format_symbol_type_e type, int32_t symbol_index,
-                                                          i18n_uchar *result, int32_t result_length);
-
-/**
- * @brief Counts the number of particular symbols for an #i18n_udate_format_h.
- * @details This function is most useful for determining the loop termination condition for calls to {@link #i18n_udate_get_symbols()}.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to query.
- * @param[in] type      The type of symbols to count.
- *                                      If wrong type is passed, 0 will be returned.
- *
- * @return The number of symbols of type @a type.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_get_symbols()
- * @see #i18n_udate_set_symbols()
- */
-int32_t i18n_udate_count_symbols(const i18n_udate_format_h format, i18n_udate_format_symbol_type_e type);
-
-/**
- * @brief Sets the symbols associated with an #i18n_udate_format_h.
- * @details The symbols are what an #i18n_udate_format_h uses to represent locale-specific data, for example month or day names.
- *
- * @since_tizen 2.3.1
- *
- * @param[in] format      The #i18n_udate_format_h to set.
- * @param[in] type                The type of symbols to set.
- *                                                All the types defined in the #i18n_udate_format_symbol_type_e enumeration are supported.
- *                                                If a type not defined in the enumeration is passed, then the #I18N_ERROR_NOT_SUPPORTED error is returned.
- * @param[in] symbol_index The index of the symbol to set of type type.
- * @param[in] value               The new value.
- * @param[in] value_length The length of @a value, or @c -1 if NULL-terminated.
- *
- * @return Error code. Error codes not listed below are described in the #i18n_error_code_e enumeration.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_count_symbols()
- * @see #i18n_udate_get_symbols()
- */
-int i18n_udate_set_symbols(i18n_udate_format_h format, i18n_udate_format_symbol_type_e type, int32_t symbol_index,
-                                                  i18n_uchar *value, int32_t value_length);
-
-/**
- * @brief Gets the locale for this date format object.
- * @details You can choose between valid and actual locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] format  The #i18n_udate_format_h to get the locale from.
- * @param[in] type       The type of the locale we're looking for (valid or actual).
- *
- * @return The locale name.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_udate_get_locale_by_type(const i18n_udate_format_h format, i18n_ulocale_data_locale_type_e type);
-
-/**
- * @brief Sets a particular #i18n_udisplay_context_e value in the formatter, such as #I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_STANDALONE.
- * @remarks I18N_UDISPLAY_CONTEXT_STANDARD_NAMES and I18N_UDISPLAY_CONTEXT_DIALECT_NAMES are not supported.
- *
- * @since_tizen 2.3.1
- *
- * @param[in]  format The #i18n_udate_format_h to set a #i18n_udisplay_context_e value.
- * @param[in]  value  The #i18n_udisplay_context_e value to set.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_set_context(i18n_udate_format_h format, i18n_udisplay_context_e value);
-
-
-/**
- * @}
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_UDATE_H__*/
diff --git a/src/include/mobile/utils_i18n_udatepg.h b/src/include/mobile/utils_i18n_udatepg.h
deleted file mode 100644 (file)
index 6463b83..0000000
+++ /dev/null
@@ -1,643 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UDATEPG_H__
-#define __UTILS_I18N_UDATEPG_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_udatepg.h
- * @version 0.1
- * @brief utils_i18n_udatepg
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UDATEPG_MODULE Udatepg
- * @brief The Udatepg module provides flexible generation of date format patterns, like "yy-MM-dd". The user can build up the generator by adding successive patterns.
- *
- * @section CAPI_BASE_UTILS_I18N_UDATEPG_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UDATEPG_MODULE_OVERVIEW Overview
- * @details The Udatepg module provides flexible generation of date format patterns,
- * like "yy-MM-dd". The user can build up the generator by adding successive patterns.
- * Once that is done, a query can be made using a "skeleton", which is a pattern that
- * just includes the desired fields and lengths(Since Tizen 3.0 constants for skeletons are available -
- * see #I18N_UDATE_YEAR and many, many others). The generator will return the
- * "best fit" pattern corresponding to that skeleton.\n
- * The main method people will use is i18n_udatepg_get_best_pattern(), since normally
- * #i18n_udatepg_h is pre-built with data from a particular locale.
- * However, generators can be built directly from other data as well.
- *
- * All input handlers must not be @c NULL.
- *
- * @section CAPI_BASE_UTILS_I18N_UDATEPG_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Gets the best pattern according to a given locale and formats a current date and time using an i18n_udate_format_h
- * @code
-       i18n_udatepg_h pattern_generator = NULL;
-       char *locale = I18N_ULOCALE_US;
-
-       dlog_print(DLOG_INFO, LOG_TAG, "pattern_generator\n");
-
-       if(!pattern_generator) {
-               // create a pattern generator according to a given locale
-               i18n_udatepg_create(locale, &pattern_generator);
-       }
-
-       if(!pattern_generator) {
-               dlog_print(DLOG_INFO, LOG_TAG, "i18n_udatepg_create fail");
-               return ;
-       }
-
-       i18n_uchar bestPattern[64] = {0,};
-       char bestPatternString[64] = {0,};
-       int bestPatternLength, len;
-       const char *custom_format = "yyyy.MM.dd G 'at' HH:mm:ss zzz";
-       i18n_uchar uch_custom_format[64];
-       int ret = I18N_ERROR_NONE;
-
-       dlog_print(DLOG_INFO, LOG_TAG, "getBestPattern\n");
-
-       i18n_ustring_copy_ua(uch_custom_format, custom_format);
-       len = i18n_ustring_get_length(uch_custom_format);
-
-       // gets the best pattern that matches the given custom_format
-       i18n_udatepg_get_best_pattern(pattern_generator, uch_custom_format, len, bestPattern, 64, &bestPatternLength);
-
-       i18n_ustring_copy_au_n(bestPatternString, bestPattern, 64);
-       // gets "MM/dd/yyyy G h:mm:ss a zzz" as the best pattern
-       dlog_print(DLOG_INFO, LOG_TAG, "getBestPattern(char[]) : %s \n", bestPatternString);
-
-       // closes a generator
-       i18n_udatepg_destroy(pattern_generator);
-
-       i18n_udate_format_h formatter_KR = NULL;
-       i18n_udate_format_h formatter_LA = NULL;
-       i18n_udate_format_h formatter_SaoPaulo = NULL;
-       i18n_uchar formatted[64] = {0,};
-       char result[64] = {0,};
-       int formattedLength;
-       i18n_udate date;
-       const char *timezone_KR = "GMT+9:00";   // TimeZone for Korea/Seoul
-       const char *timezone_LA = "America/Los_Angeles";
-       const char *timezone_SaoPaulo = "America/Sao_Paulo";    // Brazil/East
-       i18n_uchar utf16_timezone_KR[64] = {0,};
-       i18n_uchar utf16_timezone_LA[64] = {0,};
-       i18n_uchar utf16_timezone_SaoPaulo[64] = {0,};
-
-       i18n_ustring_copy_ua_n(utf16_timezone_KR, timezone_KR, strlen(timezone_KR));
-       i18n_ustring_copy_ua_n(utf16_timezone_LA, timezone_LA, strlen(timezone_LA));
-       i18n_ustring_copy_ua_n(utf16_timezone_SaoPaulo, timezone_SaoPaulo, strlen(timezone_SaoPaulo));
-
-       // creates new i18n_udate_format to format dates and times
-       ret = i18n_udate_create(I18N_UDATE_FULL , I18N_UDATE_FULL , locale, utf16_timezone_KR, -1, bestPattern, -1, &formatter_KR);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
-       }
-       if (!formatter_KR) {
-               dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
-       }
-       ret = i18n_udate_create(I18N_UDATE_FULL , I18N_UDATE_FULL , locale, utf16_timezone_LA, -1, bestPattern, -1, &formatter_LA);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
-       }
-       if (!formatter_LA) {
-               dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
-       }
-       ret = i18n_udate_create(I18N_UDATE_PATTERN , I18N_UDATE_PATTERN , locale, utf16_timezone_SaoPaulo, -1, bestPattern, -1, &formatter_SaoPaulo);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
-       }
-       if (!formatter_SaoPaulo) {
-               dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
-       }
-
-       dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_format_date\n");
-
-       // gets the current date and time
-       i18n_ucalendar_get_now(&date);
-
-       // formats a date using i18n_udate_format
-       i18n_udate_format_date(formatter_KR, date, formatted, 64, NULL, &formattedLength);
-       i18n_ustring_copy_au_n(result, formatted, 64);
-       //ex) KOREA/Seoul - Current date : Wednesday, June 18, 2014 1:34:54 PM GMT+09:00
-       dlog_print(DLOG_INFO, LOG_TAG, "KOREA/Seoul - Current date : %s\n",result);
-
-       // formats a date using i18n_udate_format
-       i18n_udate_format_date(formatter_LA, date, formatted, 64, NULL, &formattedLength);
-       i18n_ustring_copy_au_n(result, formatted, 64);
-       //ex) America/LOS Angeles - Current date : Tuesday, June 17, 2014 9:34:54 PM Pacific Daylight Time
-       dlog_print(DLOG_INFO, LOG_TAG, "America/LOS Angeles - Current date : %s\n",result);
-
-       // formats a date using i18n_udate_format
-       i18n_udate_format_date(formatter_SaoPaulo, date, formatted, 64, NULL, &formattedLength);
-       i18n_ustring_copy_au_n(result, formatted, 64);
-       //ex) Brazil/Sao Paulo - Current date : 6 18, 2014 AD, 1:34:54 PM GMT-2
-       dlog_print(DLOG_INFO, LOG_TAG, "Brazil/Sao Paulo - Current date : %s\n",result);
-
-       dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_destroy\n");
-       // destroy an #i18n_udate_format_h
-       i18n_udate_destroy(formatter_KR);
-       i18n_udate_destroy(formatter_LA);
-       i18n_udate_destroy(formatter_SaoPaulo);
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UDATEPG_MODULE
- * @{
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Opens a generator according to a given locale.
- * @remarks Must release @a dtpg using i18n_udatepg_destroy().
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] locale   If @c NULL - default locale will be used.
- * @param[out] dtpg            A pointer to #i18n_udatepg_h. Must not be @c NULL.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_create(const char *locale, i18n_udatepg_h *dtpg);
-
-/**
- * @brief Destroys a generator.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] dtpg        A pointer to #i18n_udatepg_h. Must not be @c NULL.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_destroy(i18n_udatepg_h dtpg);
-
-/**
- * @brief Gets the best pattern matching the input skeleton.
- * @details It is guaranteed to have all of the fields in the skeleton.
- * @remarks This function uses a non-const #i18n_udatepg_h:
- *                     It uses a stateful pattern parser which is set up for each generator object,
- *                     rather than creating one for each function call.
- *                     Consecutive calls to this function do not affect each other,
- *                     but this function cannot be used concurrently on a single generator object.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] dtpg                                     A pointer to #i18n_udatepg_h. Must not be @c NULL.
- * @param[in] skeleton                         The skeleton is a pattern containing only the variable fields.\n
- *                                                                     For example, "MMMdd" and "mmhh" are skeletons. Must not be @c NULL.
- * @param[in] len                                      The length of the @a skeleton, >= 0.
- * @param[out] best_pattern                    The best pattern found from the given @a skeleton.
- * @param[in] capacity                         The capacity of @a best_pattern, >= 0
- * @param[out] best_pattern_len                The length of @a best_pattern.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_BUFFER_OVERFLOW A result would not fit in the supplied buffer
- */
-int i18n_udatepg_get_best_pattern(i18n_udatepg_h dtpg, const i18n_uchar *skeleton, int32_t len, i18n_uchar *best_pattern, int32_t capacity, int32_t *best_pattern_len);
-
-
-/* Newly Added APIs */
-
-
-/**
- * @brief Creates an empty generator, to be constructed with i18n_udatepg_add_pattern() etc.
- * @since_tizen 2.3.1
- *
- * @param[out] dtpg            A pointer to the #i18n_udatepg_h handle.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_create_empty(i18n_udatepg_h *dtpg);
-
-/**
- * @brief Creates a copy of a generator.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                     An #i18n_udatepg_h handle to be copied. Must not be @c NULL.
- * @param[out] dtpg_clone      A pointer to clone of @c dtpg handle.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_clone(const i18n_udatepg_h dtpg, i18n_udatepg_h *dtpg_clone);
-
-/**
- * @brief Gets the best pattern matching the input @a skeleton.
- * @details It is guaranteed to have all of the fields in the @a skeleton.
- *
- *                     Note that this function uses a non-const #i18n_udatepg_h:
- *                     It uses a stateful pattern parser which is set up for each generator object,
- *                     rather than creating one for each function call.
- *                     Consecutive calls to this function do not affect each other,
- *                     but this function cannot be used concurrently on a single generator object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                             An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] skeleton                 The @c skeleton is a pattern containing only the variable fields;
- *                                                             for example, "MMMdd" and "mmhh" are skeletons. Must not be @c NULL.
- * @param[in] length                   The length of @c skeleton, >= 0.
- * @param[in] options                  Options for forcing the length of specified fields in the
- *                                                             returned pattern to match those in the @c skeleton (when this
- *                                                             would not happen otherwise). For default behavior, use
- *                                                             #I18N_UDATEPG_MATCH_NO_OPTIONS.
- * @param[out] best_pattern            The best pattern found from the given @c skeleton.
- * @param[in] capacity                 The capacity of @c best_pattern, >= 0.
- *
- * @return The length of @c best_pattern.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_udatepg_get_best_pattern_with_options(i18n_udatepg_h dtpg, const i18n_uchar *skeleton, int32_t length,
-                                                                                                  i18n_udatepg_date_time_pattern_match_options_e options, i18n_uchar *best_pattern, int32_t capacity);
-
-/**
- * @brief Gets a unique skeleton from a given pattern. For example, both "MMM-dd" and "dd/MMM" produce the skeleton "MMMdd".
- * @details Note that this function uses a non-const #i18n_udatepg_h:
- *                     It uses a stateful pattern parser which is set up for each generator object,
- *                     rather than creating one for each function call.
- *                     Consecutive calls to this function do not affect each other,
- *                     but this function cannot be used concurrently on a single generator object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg               An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] pattern    Input pattern, such as "dd/MMM". Must not be @c NULL.
- * @param[in] length     The length of @c pattern, >= 0.
- * @param[out] skeleton          Such as "MMMdd".
- * @param[in] capacity   The capacity of @c skeleton, >= 0.
- *
- * @return The length of @c skeleton.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_udatepg_get_skeleton(i18n_udatepg_h dtpg, const i18n_uchar *pattern, int32_t length, i18n_uchar *skeleton, int32_t capacity);
-
-/**
- * @brief Gets a unique base skeleton from a given pattern.
- * @details This is the same as the skeleton, except that differences in length are minimized so
- *                     as to only preserve the difference between string and numeric form. So
- *                     for example, both "MMM-dd" and "d/MMM" produce the skeleton "MMMd"(notice the single d).<br>
- *                     Note that this function uses a non-const #i18n_udatepg_h :
- *                     It uses a stateful pattern parser which is set up for each generator object,
- *                     rather than creating one for each function call.
- *                     Consecutive calls to this function do not affect each other,
- *                     but this function cannot be used concurrently on a single generator object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                             An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] pattern                  Input pattern, such as "dd/MMM". Must not be @c NULL.
- * @param[in] length                   The length of @c pattern, >= 0.
- * @param[out] base_skeleton   Such as "Md".
- * @param[in] capacity                 The capacity of base @c skeleton, >= 0.
- *
- * @return The length of @c base_skeleton.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_udatepg_get_base_skeleton(i18n_udatepg_h dtpg, const i18n_uchar *pattern, int32_t length, i18n_uchar *base_skeleton, int32_t capacity);
-
-/**
- * @brief Adds a pattern to the generator.
- * @details If the pattern has the same skeleton as an existing pattern,
- *                     and the override parameter is set, then the previous
- *                     value is overridden. Otherwise, the previous value is retained.
- *                     In either case, the conflicting status is set and previous value is stored in conflicting pattern. <br>
- *                     Note that single-field patterns (like "MMM") are automatically added, and don't need to be added explicitly!
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                                                     An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] pattern                                          Input pattern, such as "dd/MMM". Must not be @c NULL.
- * @param[in] pattern_length                           The length of @c pattern, >= 0.
- * @param[in] override                                         when existing values are to be overridden use true,
- *                                                                                     otherwise use false.
- * @param[out] conflicting_pattern                     Previous pattern with the same skeleton.
- * @param[in]  capacity                                                The capacity of @c conflicting_pattern.
- * @param[out] conflict_status A pointer to the conflicting status
- *                The value could be #I18N_UDATEPG_NO_CONFLICT, #I18N_UDATEPG_BASE_CONFLICT or #I18N_UDATEPG_CONFLICT.
- *
- * @return     Length of @c conflicting_pattern. -1 if @c conflict_status is #I18N_UDATEPG_NO_CONFLICT
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t         i18n_udatepg_add_pattern(i18n_udatepg_h dtpg, const i18n_uchar *pattern, int32_t pattern_length, i18n_ubool override, i18n_uchar *conflicting_pattern, int32_t capacity, i18n_udatepg_date_time_pattern_conflict_e *conflict_status);
-
-/**
- * @brief An append_item_format is a pattern used to append a field if there is no good match.
- * @details For example, suppose that the input skeleton is "GyyyyMMMd",
- *                     and there is no matching pattern internally, but there is a pattern
- *                     matching "yyyyMMMd", say "d-MM-yyyy". Then that pattern is used, plus the G.
- *                     The way these two are conjoined is by using the append_item_format for G (era).
- *                     So if that value is, say "{0}, {1}" then the final resulting
- *                     pattern is "d-MM-yyyy, G". <br>
- *                     There are actually three available variables : {0} is the pattern so far,
- *                     {1} is the element we are adding, and {2} is the name of the element. <br>
- *                     This reflects the way that the CLDR data is organized.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg             An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] field            One of #i18n_udatepg_date_time_pattern_field_e, such as #I18N_UDATEPG_ERA_FIELD.
- * @param[in] value            Pattern, such as "{0}, {1}". Must not be @c NULL.
- * @param[in] length   The length of @c value, >= 0.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_get_append_item_format()
- */
-int i18n_udatepg_set_append_item_format(i18n_udatepg_h dtpg, i18n_udatepg_date_time_pattern_field_e field, const i18n_uchar *value, int32_t length);
-
-/**
- * @brief Getter corresponding to i18n_udatepg_set_append_item_format().
- * @details Values below 0 or at or above #I18N_UDATEPG_FIELD_COUNT are illegal arguments.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                             An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] field                            One of #i18n_udatepg_date_time_pattern_field_e, such as #I18N_UDATEPG_ERA_FIELD.
- * @param[out] pattern_length  A pointer that will receive the length of append item format @a value.
- *
- * @return The append_item_format for @a field
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_set_append_item_format()
- */
-const i18n_uchar *i18n_udatepg_get_append_item_format(const i18n_udatepg_h dtpg, i18n_udatepg_date_time_pattern_field_e field, int32_t *pattern_length);
-
-/**
- * @brief Sets the name of field, e.g. "era" in English for ERA.
- * @details These are only used if the corresponding append_item_format is used, and if it contains a {2} variable.
- *                     This reflects the way that the CLDR data is organized.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg             An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] field            #i18n_udatepg_date_time_pattern_field_e, such as #I18N_UDATEPG_ERA_FIELD.
- * @param[in] value            Name for the @c field. Must not be @c NULL.
- * @param[in] length   The length of @c value, >= 0.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_get_append_item_name()
- */
-int i18n_udatepg_set_append_item_name(i18n_udatepg_h dtpg, i18n_udatepg_date_time_pattern_field_e field, const i18n_uchar *value,
-                                                                         int32_t length);
-
-/**
- * @brief Getter corresponding to i18n_udatepg_set_append_item_name().
- * @details Values below 0 or at or above #I18N_UDATEPG_FIELD_COUNT are illegal arguments.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                             The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] field                            #i18n_udatepg_date_time_pattern_field_e, such as #I18N_UDATEPG_ERA_FIELD.
- * @param[out] pattern_length  A pointer that will receive the length of the name for @c field.
- *
- * @return The name for @c field
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_set_append_item_name()
- */
-const i18n_uchar *i18n_udatepg_get_append_item_name(const i18n_udatepg_h dtpg, i18n_udatepg_date_time_pattern_field_e field,
-                                                                                                       int32_t *pattern_length);
-
-/**
- * @brief The date time format is a message format pattern used to compose date and time patterns.
- * @brief The default value is "{0} {1}", where {0} will be replaced by the date pattern and {1} will be replaced by the time pattern.
- *               This is used when the input skeleton contains both date and time fields,
- *               but there is not a close match among the added patterns.
- *               For example, suppose that this object was created by adding "dd-MMM" and "hh:mm",
- *               and its date time format is the default "{0} {1}". Then if the input skeleton is "MMMdhmm",
- *               there is not an exact match, so the input skeleton is broken up into two components "MMMd" and "hmm".
- *               There are close matches for those two skeletons, so the result is put together with this pattern, resulting in "d-MMM h:mm".
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                             An #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] date_time_format A message format pattern, here {0} will be replaced by the date pattern
- *                                                             and {1} will be replaced by the time pattern. Must not be @c NULL.
- * @param[in] length                   The length of @c date_time_format, >= 0.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_get_date_time_format()
- */
-int i18n_udatepg_set_date_time_format(const i18n_udatepg_h dtpg, const i18n_uchar *date_time_format, int32_t length);
-
-/**
- * @brief Getter corresponding to i18n_udatepg_set_date_time_format().
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                             An #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[out] pattern_length  A pointer that will receive the length of the @a date_time_format.
- *
- * @return A date_time_format
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_set_date_time_format()
- */
-const i18n_uchar *i18n_udatepg_get_date_time_format(const i18n_udatepg_h dtpg, int32_t *pattern_length);
-
-/**
- * @brief The decimal value is used in formatting fractions of seconds.
- * @details If the skeleton contains fractional seconds, then this is used with the fractional seconds.
- *                     For example, suppose that the input pattern is "hhmmssSSSS",
- *                     and the best matching pattern internally is "H:mm:ss", and the decimal string is ",".
- *                     Then the resulting pattern is modified to be "H:mm:ss,SSSS"
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg             The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] decimal  Decimal. Must not be @c NULL.
- * @param[in] length   The length of @c decimal, >= 0.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_get_decimal()
- */
-int i18n_udatepg_set_decimal(i18n_udatepg_h dtpg, const i18n_uchar *decimal, int32_t length);
-
-/**
- * @brief Getter corresponding to i18n_udatepg_set_decimal().
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                             The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[out] pattern_length  A pointer that will receive the length of the @a decimal string.
- *
- * @return Corresponding to the decimal point.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_set_decimal()
- */
-const i18n_uchar *i18n_udatepg_get_decimal(const i18n_udatepg_h dtpg, int32_t *pattern_length);
-
-/**
- * @brief Adjusts the field types (width and subtype) of a @a pattern to match what is in a @a skeleton.
- * @details That is, if you supply a @a pattern like "d-M H:m", and a @a skeleton of "MMMMddhhmm",
- *                     then the input pattern is adjusted to be "dd-MMMM hh:mm".
- *                     This is used internally to get the best match for the input @a skeleton, but can also be used externally.<br>
- *                     Note that this function uses a non-const #i18n_udatepg_h:
- *                     It uses a stateful pattern parser which is set up for each generator object,
- *                     rather than creating one for each function call. Consecutive calls to this function do not affect each other,
- *                     but this function cannot be used concurrently on a single generator object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                             The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] pattern                  Input pattern. Must not be @c NULL.
- * @param[in] pattern_length   The length of input @a pattern, >= 0.
- * @param[in] skeleton                 The skeleton. Must not be @c NULL.
- * @param[in] skeleton_length  The length of input @a skeleton, >= 0.
- * @param[out] dest                            Pattern adjusted to match the @a skeleton fields widths and subtypes.
- * @param[in] dest_capacity            The capacity of @a dest, >= 0.
- *
- * @return The length of @a dest.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_udatepg_replace_field_types(i18n_udatepg_h dtpg, const i18n_uchar *pattern, int32_t pattern_length,
-                                                                                const i18n_uchar *skeleton, int32_t skeleton_length, i18n_uchar *dest, int32_t dest_capacity);
-
-/**
- * @brief Adjusts the field types (width and subtype) of a pattern to match what is in a @a skeleton.
- * @details That is, if you supply a @a pattern like "d-M H:m", and a @a skeleton of "MMMMddhhmm",
- *                     then the input @a pattern is adjusted to be "dd-MMMM hh:mm".
- *                     This is used internally to get the best match for the input @a skeleton, but can also be used externally.<br>
- *                     Note that this function uses a non-const #i18n_udatepg_h:
- *                     It uses a stateful pattern parser which is set up for each generator object,
- *                     rather than creating one for each function call. Consecutive calls to this function do not affect each other,
- *                     but this function cannot be used concurrently on a single generator object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                             The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] pattern                  Input pattern. Must not be @c NULL.
- * @param[in] pattern_length   The length of input @a pattern, >= 0.
- * @param[in] skeleton                 The skeleton. Must not be @c NULL.
- * @param[in] skeleton_length  The length of input @a skeleton, >= 0.
- * @param[in] options                  Options controlling whether the length of specified
- *                                                             fields in the @a pattern are adjusted to match those in the @a skeleton
- *                                                             (when this would not happen otherwise).
- *                                                             For default behavior, use #I18N_UDATEPG_MATCH_NO_OPTIONS.
- * @param[out] dest                            Pattern adjusted to match the @a skeleton fields widths and subtypes.
- * @param[in] dest_capacity            The capacity of @a dest, >= 0.
- *
- * @return The length of @a dest.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_udatepg_replace_field_types_with_options(i18n_udatepg_h dtpg, const i18n_uchar *pattern, int32_t pattern_length,
-                                                                                                         const i18n_uchar *skeleton, int32_t skeleton_length, i18n_udatepg_date_time_pattern_match_options_e options,
-                                                                                                         i18n_uchar *dest, int32_t dest_capacity);
-
-/**
- * @brief Creates an #i18n_uenumeration_h for list of all the skeletons in canonical form.
- * @details Call i18n_udatepg_get_pattern_for_skeleton() to get the corresponding pattern.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg             An #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[out] enumeration A pointer to the #i18n_uenumeration_h for list of all the skeletons. The caller must destroy the object.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_skeletons_create(const i18n_udatepg_h dtpg, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Creates an #i18n_uenumeration_h for list of all the base skeletons in canonical form.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg             An #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[out] enumeration A pointer to the #i18n_uenumeration_h for list of all the base skeletons. The caller must destroy the object.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_base_skeletons_create(const i18n_udatepg_h dtpg, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Gets the pattern corresponding to a given skeleton.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg                             The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] skeleton                 The skeleton. Must not be @c NULL.
- * @param[in] skeleton_length  The length of @a skeleton, >= 0.
- * @param[out] pattern_length  The pointer to the length of return pattern
- *
- * @return Pattern corresponding to a given skeleton
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const i18n_uchar *i18n_udatepg_get_pattern_for_skeleton(const i18n_udatepg_h dtpg, const i18n_uchar *skeleton, int32_t skeleton_length, int32_t *pattern_length);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_UDATEPG_H__*/
diff --git a/src/include/mobile/utils_i18n_uenumeration.h b/src/include/mobile/utils_i18n_uenumeration.h
deleted file mode 100644 (file)
index 42fab37..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UENUMERATION_PRODUCT_H__
-#define __UTILS_I18N_UENUMERATION_PRODUCT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_uenumeration.h
- * @version 0.1
- * @brief utils_i18n_uenumeration
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE UEnumeration
- * @brief UEnumeration defines functions for handling String Enumeration.
- *
- * @section CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE_OVERVIEW Overview
- * @details The UEnumeration module allows to create String Enumeration
- *                     from chars and uchars.
- *
-*/
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE
- * @{
- */
-
-/**
- * @brief Disposes of resources in use by the iterator.
- * @details If @c enumeration is <code>NULL</code>, does nothing. After this call, any <code>char*</code> or <code>i18n_uchar*</code> returned
- *                     by i18n_uenumeration_unext() or i18n_uenumeration_next() is invalid.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] enumeration       An #i18n_uenumeration_h to destroy
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uenumeration_destroy(i18n_uenumeration_h enumeration);
-
-/**
- * @brief Returns the number of elements that the iterator traverses.
- * @details If the iterator is out-of-sync with its service, error code is set to #I18N_ERROR_ENUM_OUT_OF_SYNC.
- *                     This is a convenience function. It can end up being very expensive as all the items might have to be pre-fetched
- *                     (depending on the type of data being traversed).
- *                     Use with caution and only when necessary.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] enumeration         An #i18n_uenumeration_h to count
- *
- * @return The number of elements in the iterator
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_ERROR_ENUM_OUT_OF_SYNC The iterator is out of sync
- */
-int32_t i18n_uenumeration_count(i18n_uenumeration_h enumeration);
-
-/**
- * @brief Returns the next element in the iterator's list.
- * @details If there are no more elements, returns <code>NULL</code>.
- *                     If the iterator is out-of-sync with its service, error code is set to #I18N_ERROR_ENUM_OUT_OF_SYNC and <code>NULL</code> is returned.
- *                     If the native service string is a <code>char*</code> string, it is converted to <code>i18n_uchar*</code> with the invariant converter.
- *                     The result is terminated by <code>(i18n_uchar)0</code>.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] enumeration              An #i18n_uenumeration_h
- * @param[out] result_length   A pointer to receive the length of the result (not including the terminating \\0).
- *                                                             If the pointer is <code>NULL</code> it is ignored.
- *
- * @return A pointer to the string. The string will be zero-terminated.
- *                The return pointer is owned by this iterator and must not be deleted by the caller.
- *                The pointer is valid until the next call to any i18n_uenumeration_... method, including i18n_uenumeration_next() or i18n_uenumeration_unext().
- *                When all strings have been traversed, returns <code>NULL</code>.
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_ERROR_ENUM_OUT_OF_SYNC The iterator is out of sync
- */
-const i18n_uchar *i18n_uenumeration_unext(i18n_uenumeration_h enumeration, int32_t *result_length);
-
-/**
- * @brief Returns the next element in the iterator's list.
- * @details If there are no more elements, returns NULL. If the iterator is out-of-sync with its service,
- *                     the #I18N_ERROR_ENUM_OUT_OF_SYNC error code is set and <code>NULL</code> is returned.
- *                     If the native service string is a <code>i18n_uchar*</code> string, it is converted to <code>char*</code> with the invariant converter.
- *                     The result is terminated by <code>(char)0</code>. If the conversion fails (because a character cannot be converted)
- *                     then the error code is set to #I18N_ERROR_INVARIANT_CONVERSION and the return value is undefined (but non-NULL).
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] enumeration              An #i18n_uenumeration_h
- * @param[out] result_length   A pointer to receive the length of the result (not including the terminating \\0).
- *                                                             If the pointer is <code>NULL</code> it is ignored.
- *
- * @return A pointer to the string. The string will be zero-terminated.
- *                The return pointer is owned by this iterator and must not be deleted by the caller.
- *                The pointer is valid until the next call to any i18n_uenumeration_... method, including i18n_uenumeration_next() or i18n_uenumeration_unext().
- *                When all strings have been traversed, returns <code>NULL</code>.
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_ERROR_ENUM_OUT_OF_SYNC The iterator is out of sync
- * @exception #I18N_ERROR_INVARIANT_CONVERSION The underlying native string is <code>i18n_uchar*</code> and conversion to <code>char*</code> with the invariant converter fails.
- *                                                                                        This error pertains only to current string, so iteration might be able to continue successfully.
- */
-const char *i18n_uenumeration_next(i18n_uenumeration_h enumeration, int32_t *result_length);
-
-/**
- * @brief Resets the iterator to the current list of service IDs.
- * @details This re-establishes sync with the service and rewinds the iterator to start at the first element.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] enumeration         An #i18n_uenumeration_h
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uenumeration_reset(i18n_uenumeration_h enumeration);
-
-/**
- * @brief Given an array of <code>const i18n_uchar*</code> strings, return an #i18n_uenumeration_h.
- * @details String pointers from 0..count-1 must not be <code>NULL</code>.
- *                     Do not free or modify either the string array or the characters it points to until this object has been destroyed with i18n_uenumeration_destroy().
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] strings    An array of const <code>i18n_uchar*</code> strings (each null terminated). All storage is owned by the caller.
- * @param[in] count              The length of the array
- * @param[out] enumeration A pointer to the new #i18n_uenumeration_h. Caller is responsible for calling i18n_uenumeration_destroy() to free memory.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_uenumeration_destroy()
- */
-int i18n_uenumeration_uchar_strings_enumeration_create(const i18n_uchar *const strings[], int32_t count, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Given an array of <code>const char*</code> strings (invariant chars only), return an #i18n_uenumeration_h.
- * @details String pointers from 0..count-1 must not be <code>NULL</code>.
- *                     Do not free or modify either the string array or the characters it points to until this object has been destroyed with i18n_uenumeration_destroy().
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] strings    A array of <code>char*</code> strings (each null terminated). All storage is owned by the caller.
- * @param[in] count              The length of the array
- * @param[out] enumeration A pointer to the new #i18n_uenumeration_h. Caller is responsible for calling i18n_uenumeration_destroy() to free memory
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_uenumeration_destroy()
- */
-int i18n_uenumeration_char_strings_enumeration_create(const char *const strings[], int32_t count, i18n_uenumeration_h *enumeration);
-
-/**
- * @}
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_UENUMERATION_PRODUCT_H__*/
diff --git a/src/include/mobile/utils_i18n_ulocale.h b/src/include/mobile/utils_i18n_ulocale.h
deleted file mode 100644 (file)
index b4078cf..0000000
+++ /dev/null
@@ -1,891 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- *
- * Copyright (C) 1997-2013, International Business Machines
- * Corporation and others.     All Rights Reserved.
- */
-
-#ifndef __UTILS_I18N_ULOCALE_H__
-#define __UTILS_I18N_ULOCALE_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_ulocale.h
- * @version 0.1
- * @brief utils_i18n_ulocale
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_ULOCALE_MODULE Ulocale
- * @brief A Locale represents a specific geographical, political, or cultural region.
- * @section CAPI_BASE_UTILS_I18N_ULOCALE_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_ULOCALE_MODULE_OVERVIEW Overview
- * @details A Locale represents a specific geographical, political, or cultural region.
- *                     An operation that requires a Locale to perform its task is called locale-sensitive
- *                     and uses the Locale to tailor information for the user. For example, displaying
- *                     a number is a locale-sensitive operation. The number should be formatted according
- *                     to the customs/conventions of the user's native country, region, or culture.
- *                     In the C APIs, a locale is simply a const char string.
- *
- * @section CAPI_BASE_UTILS_I18N_ULOCALE_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Gets a default locale and a full name for the locale
- * @code
-       const char *locale;
-       const char *in_locale_id = "en_US";
-       char language[64] = {0,};
-       i18n_uchar result_w[64] = {0,};
-       char result[64] = {0,};
-       int language_capacity = 64;
-       int buf_size_language;
-       int buf_size_display_name;
-       int ret = I18N_ERROR_NONE;
-
-       // Sets default locale
-       ret = i18n_ulocale_set_default(getenv("LC_TIME"));
-
-       // Gets default locale
-       ret = i18n_ulocale_get_default(&locale);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "i18n_ulocale_get_default() failed!!! \n");
-       }
-       dlog_print(DLOG_INFO, LOG_TAG, "default locale : %s\n", locale);        // default locale : en_GB.UTF-8
-
-       // Gets the language code for the specified locale
-       ret = i18n_ulocale_get_language(locale, language, language_capacity, &buf_size_language);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "i18n_ulocale_get_language() failed!!! \n");
-       }
-       dlog_print(DLOG_INFO, LOG_TAG, "language code for the locale : %s\n", language);  // language code for the locale : en
-
-       // Gets the full name suitable for display for the specified locale
-       ret = i18n_ulocale_get_display_name(locale, in_locale_id, result_w, 64, &buf_size_display_name);
-       if (ret != I18N_ERROR_NONE) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "i18n_ulocale_get_display_name() failed!!! \n");
-       }
-       i18n_ustring_copy_au(result, result_w);
-       dlog_print(DLOG_INFO, LOG_TAG, "full name suitable for the locale : %s\n", result); // full name suitable for the locale : English (United Kingdom)
- * @endcode
- *
- * @section CAPI_BASE_UTILS_I18N_ULOCALE_MODULE_SAMPLE_CODE_2 Sample Code 2
- * @brief See all available locales
- * @code
-       int i = 0;
-       int32_t count = i18n_ulocale_count_available();
-       for(i = 0; i < count; i++)
-       {
-               dlog_print(DLOG_INFO, LOG_TAG, "Available locale %d : %s " ,i, i18n_ulocale_get_available(i));
-               //       ...
-               //Available locale 5 : en_GB
-               //Available locale 6 : en_US
-               //Available locale 7 : en_US_POSIX
-               //       ...
-       }
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_ULOCALE_MODULE
- * @{
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Gets I18N's default locale.
- * @details The returned string is a snapshot in time, and will remain valid
- *                     and unchanged even when i18n_ulocale_set_default() is called.
- *                     The returned storage is owned by I18N, and must not be altered or deleted by the caller.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[out] locale  The I18N default locale
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_get_default(const char **locale);
-
-/**
- * @brief Sets I18N's default locale.
- * @details By default (without calling this function),
- *                     I18N's default locale will be based on information obtained from the underlying system environment.
- *
- *                     Changes to I18N's default locale do not propagate back to the system environment.
- *
- *                     Changes to I18N's default locale to not affect any services that may already be open based on the previous default locale value.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] locale_id                The new I18N default locale.\n
- *                                                     A value of @c NULL will try to get the system's default locale.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_set_default(const char *locale_id);
-
-/**
- * @brief Gets the language code for the specified locale.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] locale_id                                The locale to get the ISO language code with.\n
- *                                                                     @c NULL may be used to specify the default.
- * @param[out] language                                The language code for @a locale_id
- * @param[in] language_capacity                The size of the @a language buffer to store the language code with
- * @param[out] buf_size_language       The actual buffer size needed for the language code.\n
- *                                                                     If it's greater than @a language_capacity, the returned language code will be truncated.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_get_language(const char *locale_id, char *language, int32_t language_capacity, int32_t *buf_size_language);
-
-/**
- * @brief Gets the country code for the specified locale.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in]  locale_id                       The locale to get the country code with
- * @param[out] country                         The country code for @a locale_id
- * @param[in]  country_capacity                The size of the @a country buffer to store the country code with
- * @param[out] error                           Error information if retrieving the country code failed
- *
- * @return The actual buffer size needed for the country code.\n
- *                If it's greater than @a country_capacity, the returned country code will be truncated.
- */
-int32_t i18n_ulocale_get_country(const char *locale_id, char *country, int32_t country_capacity, int *error);
-
-/**
- * @brief Gets the full name suitable for display for the specified locale.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] locale_id                                        The locale to get the displayable name with.\n
- *                                                                             @c NULL may be used to specify the default.
- * @param[in] in_locale_id                             The locale to be used to display the name.\n
- *                                                                             @c NULL may be used to specify the default.
- * @param[out] result                                  The displayable name for @a locale_id
- * @param[in] max_result_size                  The size of the name buffer to store the displayable full name with
- * @param[out] buf_size_display_name   The actual buffer size needed for the displayable name.\n
- *                                                                             If it's greater than @a max_result_size, the returned displayable name will be truncated.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_get_display_name(const char *locale_id, const char *in_locale_id, i18n_uchar *result, int32_t max_result_size, int32_t *buf_size_display_name);
-
-/**
- * @brief Gets the specified locale from a list of all available locales.
- * @details The return value is a pointer to an item of a locale name array.
- *                     Both this array and the pointers it contains are owned by I18N
- *                     and should not be deleted or written through by the caller.
- *                     The locale name is terminated by a null pointer.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] n                The specific locale name index of the available locale list
- *
- * @return A specified locale name of all available locales
- * @exception #I18N_ERROR_NONE Success
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_ulocale_get_available(int32_t n);
-
-/**
- * @brief Gets the size of the all available locale list.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @return The size of the locale list
- * @exception #I18N_ERROR_NONE Success
- */
-int32_t i18n_ulocale_count_available(void);
-
-/* Newly Added APIs */
-
-/**
- * @brief Gets the script code for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                        The locale to get the ISO script code with
- * @param[out] script                  The script code for @a locale_id. Must not be @c NULL.
- * @param[in] script_capacity  The size of the @a script buffer to store the script code with
- *
- * @return The actual buffer size needed for the script code. If it's greater than @a script_capacity,
- *                the returned script code will be truncated. If the @a script buffer is @c NULL
- *                or the @a script_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- *                and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_script(const char *locale_id, char *script, int32_t script_capacity);
-
-/**
- * @brief Gets the variant code for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                        The locale to get the variant code with
- * @param[out] variant                 The variant code for @a locale_id
- * @param[in] variant_capacity The size of the @a variant buffer to store the variant code with
- *
- * @return The actual buffer size needed for the variant code. If it's greater than @a variant_capacity,
- *                the returned variant code will be truncated. If the @a variant buffer is @c NULL
- *                or the @a variant_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- *                and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_variant(const char *locale_id, char *variant, int32_t variant_capacity);
-
-/**
- * @brief Gets the full name for the specified locale.
- * @details Note : This has the effect of 'canonicalizing' the I18N locale ID to
- *                     a certain extent. Upper and lower case are set as needed.
- *                     It does NOT map aliased names in any way.
- *                     See the top of this header file.
- *                     This API supports preflighting.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                        The locale to get the full name with
- * @param[out] name                            Fill in buffer for the name without keywords.
- * @param[in] name_capacity            Capacity of the fill in buffer.
- *
- * @return The actual buffer size needed for the full name. If it's greater than @a name_capacity,
- *                the returned full name will be truncated.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_BUFFER_OVERFLOW A result would not fit in the supplied buffer
- */
-int32_t i18n_ulocale_get_name(const char *locale_id, char *name, int32_t name_capacity);
-
-/**
- * @brief Gets the full name for the specified locale.
- * @details Note : This has the effect of 'canonicalizing' the string to
- *                     a certain extent. Upper and lower case are set as needed,
- *                     and if the components were in 'POSIX' format they are changed to
- *                     I18N format. It does NOT map aliased names in any way.
- *                     See the top of this header file.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                        The locale to get the full name with
- * @param[out] name                            The full name for @a locale_id
- * @param[in] name_capacity            The size of the @a name buffer to store the full name with
- *
- * @return The actual buffer size needed for the full name. If it's greater than @a name_capacity,
- *                the returned full name will be truncated.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_BUFFER_OVERFLOW A result would not fit in the supplied buffer
- */
-int32_t i18n_ulocale_canonicalize(const char *locale_id, char *name, int32_t name_capacity);
-
-/**
- * @brief Gets the ISO language code for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                The locale to get the ISO language code with
- *
- * @return A language the ISO language code for @a locale_id
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *i18n_ulocale_get_iso3_language(const char *locale_id);
-
-/**
- * @brief Gets the ISO country code for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                The locale to get the ISO country code with
- *
- * @return A country the ISO country code for @a locale_id
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *i18n_ulocale_get_iso3_country(const char *locale_id);
-
-/**
- * @brief Gets the Win32 LCID value for the specified locale.
- * @details If the I18N locale is not recognized by Windows, 0 will be returned.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                The locale to get the Win32 LCID value with
- *
- * @return A country the Win32 LCID for @a locale_id
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-uint32_t i18n_ulocale_get_lcid(const char *locale_id);
-
-/**
- * @brief Gets the language name suitable for display for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale                           The locale to get the ISO language code with
- * @param[in] display_locale           The locale to be used to display the name.\n
- *                                                                     @c NULL may be used to specify the default.
- * @param[out] language                                The displayable language code for @a locale.
- * @param[in] language_capacity                The size of the @a language buffer to store the displayable language code with
- *
- * @return The actual buffer size needed for the displayable language code. If it's greater than
- *                @a language_capacity, the returned language code will be truncated. If the @a language buffer is @c NULL
- *                or the @a language_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- *                and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_display_language(const char *locale, const char *display_locale, i18n_uchar *language, int32_t language_capacity);
-
-/**
- * @brief Gets the script name suitable for display for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale                   The locale to get the displayable script code with. @c NULL may be used to specify the default.
- * @param[in] display_locale   The locale to be used to display the name. @c NULL may be used to specify the default.
- * @param[out] script                  The displayable country code for @a locale
- * @param[in] script_capacity  The size of the script buffer to store the displayable script code with
- *
- * @return The actual buffer size needed for the displayable script code. If it's greater than @a script_capacity,
- *                the returned displayable script code will be truncated. If the @a script buffer is @c NULL
- *                or the @a script_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- *                and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_display_script(const char *locale, const char *display_locale, i18n_uchar *script, int32_t script_capacity);
-
-/**
- * @brief Gets the country name suitable for display for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale                   The locale to get the displayable country code with. @c NULL may be used to specify the default.
- * @param[in] display_locale   The locale to be used to display the name. @c NULL may be used to specify the default.
- * @param[out] country                 The displayable country code for @a locale
- * @param[in] country_capacity The size of the @a country buffer to store the displayable country code with
- *
- * @return The actual buffer size needed for the displayable country code. If it's greater than @a country_capacity,
- *                the returned displayable country code will be truncated. If the @a country buffer is @c NULL
- *                or the @a country_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- *                and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_display_country(const char *locale, const char *display_locale, i18n_uchar *country, int32_t country_capacity);
-
-/**
- * @brief Gets the variant name suitable for display for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale                   The locale to get the displayable variant code with. @c NULL may be used to specify the default.
- * @param[in] display_locale   The locale to be used to display the name. @c NULL may be used to specify the default.
- * @param[out] variant                 The displayable variant code for @a locale
- * @param[in] variant_capacity The size of the @a variant buffer to store the displayable variant code with
- *
- * @return The actual buffer size needed for the displayable variant code. If it's greater than @a variant_capacity,
- *                the returned displayable variant code will be truncated. If the @a variant buffer is @c NULL
- *                or the @a variant_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- *                and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_display_variant(const char *locale, const char *display_locale, i18n_uchar *variant, int32_t variant_capacity);
-
-/**
- * @brief Gets the keyword name suitable for display for the specified locale.
- * @details E.g : for the locale string de_DE\@collation=PHONEBOOK, this API gets the display string for the keyword collation.
- *                     Usage :
- * @code
- *       i18n_error_code_e status = I18N_ERROR_NONE;
- *       const char* keyword = NULL;
- *       int32_t keyword_len = 0;
- *       int32_t keyword_count = 0;
- *       i18n_uchar display_keyword[256];
- *       int32_t display_keyword_len = 0;
- *       i18n_uenumeration_h keyword_enum;
- *       i18n_ulocale_keywords_create("en_US@collation=PHONEBOOK;calendar=TRADITIONAL", &keyword_enum);
- *
- *       for(keyword_count = i18n_uenumeration_count(keyword_enum); keyword_count > 0; keyword_count--){
- *                     status = get_last_result();
- *                     if(status > 0){
- *                             // something went wrong so handle the error
- *                             break;
- *                     }
- *                     // the uenum_next returns NULL-terminated string
- *                     keyword = i18n_uenumeration_next(keyword_enum, &keyword_len);
- *                     display_keyword_len = i18n_ulocale_get_display_keyword(keyword, "en_US", display_keyword, 256);
- *                     // do something interesting
- *       }
- *       i18n_uenumeration_destroy(keyword_enum);
- * @endcode
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] keyword                  The keyword whose display string needs to be returned.
- * @param[in] display_locale   The locale to be used to display the name. @c NULL may be used to specify the default.
- * @param[out] dest                            The buffer to which the displayable keyword should be written.
- * @param[in] dest_capacity            The size of the buffer (number of #i18n_uchar characters). If it is 0, then
- *                                                             @a dest may be @c NULL and the function will only return the length of the result without
- *                                                             writing any of the result string (pre-flighting).
- *
- * @return The actual buffer size needed for the displayable variant code. If the @a dest buffer is @c NULL
- *                or the @a dest_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- *                and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ulocale_keywords_create()
- * @see i18n_uenumeration_count()
- * @see i18n_uenumeration_next()
- * @see i18n_uenumeration_destroy()
- */
-int32_t i18n_ulocale_get_display_keyword(const char *keyword, const char *display_locale, i18n_uchar *dest, int32_t dest_capacity);
-
-/**
- * @brief Gets the value of the keyword suitable for display for the specified locale.
- * @details E.g : for the locale string de_DE\@collation=PHONEBOOK, this API gets the display string for PHONEBOOK,
- * in the display locale, when "collation" is specified as the keyword.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale                   The locale to get the displayable variant code with. @c NULL may be used to specify the default.
- * @param[in] keyword                  The keyword for whose value should be used.
- * @param[in] display_locale   The locale to be used to display the name. @c NULL may be used to specify the default.
- * @param[out] dest                            The buffer to which the displayable keyword should be written.
- * @param[in] dest_capacity            The size of the buffer (number of #i18n_uchar characters). If it is 0, then
- *                                                             @a dest may be @c NULL and the function will only return the length of the result
- *                                                             without writing any of the result string (pre-flighting).
- *
- * @return The actual buffer size needed for the displayable variant code. If the @a dest buffer is @c NULL
- *                or the @a dest_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- *                and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_display_keyword_value(const char *locale, const char *keyword, const char *display_locale, i18n_uchar *dest, int32_t dest_capacity);
-
-/**
- * @brief Gets a list of all available 2-letter language codes defined in ISO 639,
- *               plus additional 3-letter codes determined to be useful for locale generation as
- *               defined by Unicode CLDR.
- * @details This is a pointer to an array of pointers to arrays of char. All of these pointers are owned
- *                     by I18N - do not delete them, and do not write through them.
- *                     The array is terminated with a @c NULL pointer.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @return A list of all available language codes
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *const *i18n_ulocale_get_iso_languages(void);
-
-/**
- *
- * @brief Gets a list of all available 2-letter country codes defined in ISO 639.
- * @details This is a pointer to an array of pointers to arrays of char. All of these pointers are
- *                     owned by I18N - do not delete them, and do not write through them.
- *                     The array is terminated with a @c NULL pointer.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @return A list of all available country codes
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *const *i18n_ulocale_get_iso_countries(void);
-
-/**
- * @brief Truncates the locale ID string to get the parent locale ID.
- * @details Copies the part of the string before the last underscore.
- *                     The parent locale ID will be an empty string if there is no
- *                     underscore, or if there is only one underscore at @a locale_id[0].
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                        Input locale ID string.
- * @param[out] parent                  Output string buffer for the parent locale ID. Must not be @c NULL.
- * @param[in] parent_capacity  Size of the output buffer. If it's lower than the number of characters
- *                                                             stored in the @a locale_id between the first character and the last occurrence
- *                                                             of the underscore ("_") character, than the error code will be set to
- *                                                             #I18N_ERROR_BUFFER_OVERFLOW.
- *
- * @return The length of the parent locale ID. If the @a parent buffer is @c NULL or the @a parent_capacity is lower than @c 0,
- *                then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If the capacity of the @a parent is lower than the number of characters
- *                                                                               in the @a locale_id from index 0 to the index of the last occurrence of
- *                                                                               the underscore ("_") symbol.
- */
-int32_t i18n_ulocale_get_parent(const char *locale_id, char *parent, int32_t parent_capacity);
-
-/**
- * @brief Gets the full name for the specified locale, like i18n_ulocale_get_name(), but without keywords.
- * @details Note : This has the effect of 'canonicalizing' the string to a certain extent.
- *                     Upper and lower case are set as needed,
- *                     and if the components were in 'POSIX' format they are changed to I18N format.
- *                     It does NOT map aliased names in any way.
- *                     See the top of this header file.
- *
- *                     This API strips off the keyword part, so "de_DE\@collation=phonebook" will become "de_DE".
- *                     This API supports preflighting.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                        The locale to get the full name with
- * @param[out] name                            Fill in buffer for the name without keywords.
- * @param[in] name_capacity            Capacity of the fill in buffer.
- *
- * @return The actual buffer size needed for the full name. If it's greater than @a name_capacity,
- *                the returned full name will be truncated.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_BUFFER_OVERFLOW A result would not fit in the supplied buffer
- */
-int32_t i18n_ulocale_get_base_name(const char *locale_id, char *name, int32_t name_capacity);
-
-/**
- * @brief Gets an enumeration of keywords for the specified locale.
- * @details Enumeration must get disposed of by the client using i18n_uenumeration_destroy() function.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                The locale to get the variant code with
- *
- * @param enumeration A pointer to the enumeration of keywords or @c NULL if there are no keywords.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_keywords_create(const char *locale_id, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Gets the value for a keyword.
- * @details Locale name does not need to be normalized.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                        A locale name containing the keyword ("de_DE@currency=EURO;collation=PHONEBOOK")
- * @param[in] keyword_name             The name of the keyword for which we want the value. Case insensitive.
- * @param[out] buffer                  Receiving buffer
- * @param[in] buffer_capacity  Capacity of receiving @a buffer
- *
- * @return The length of keyword value. If the @a keyword_name or @a buffer is @c NULL or the @a buffer_capacity is lower than @c 0,
- *                then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_keyword_value(const char *locale_id, const char *keyword_name, char *buffer, int32_t buffer_capacity);
-
-/**
- * @brief Sets or removes the value of the specified keyword.
- * @details For removing all keywords(retrieving only locale base name associated with the keywords),
- * use i18n_ulocale_get_base_name().
- *
- *                     NOTE : Unlike almost every other I18N function which takes a
- *                     buffer, this function will NOT truncate the output text. If a
- *                     #I18N_ERROR_BUFFER_OVERFLOW is received, it means that the original
- *                     buffer is untouched. This is done to prevent incorrect or possibly
- *                     even malformed locales from being generated and used.
- *
- * Below code prints following logs in SDK:
- *
- * Locale and keywords: en_US\@abc=12;def=34 \n
- * keyword1: abc \n
- * keyword2: def \n
- * Locale: en_US \n
- * Keyword1 value: 12
- *
- * @code
- *       int32_t buff_size = 50;
- *       int32_t sub_buff_size = 45;
- *       char *buff = malloc(sizeof(char)*buff_size);
- *       char *sub_buff = malloc(sizeof(char)*sub_buff_size);
- *       char *locale = "en_US";
- *
- *       snprintf(buff, buff_size, "%s%s",locale, sub_buff);
- *
- *       i18n_ulocale_set_keyword_value("abc", "cba", buff, buff_size);
- *       i18n_ulocale_set_keyword_value("def", "34", buff, buff_size);
- *
- *       i18n_uenumeration_h keyword_enum;
- *       i18n_ulocale_keywords_create(buff, &keyword_enum);
- *
- *       int32_t res_len = 0;
- *       const char *keyw = i18n_uenumeration_next(keyword_enum, &res_len);
- *       const char *keyw2 = i18n_uenumeration_next(keyword_enum, &res_len);
- *
- *       char *only_locale = malloc(sizeof(char)*10);
- *       i18n_ulocale_get_base_name(buff, only_locale, 10);
- *
- *       int32_t buff_size_get = 50;
- *       char *buff_out = malloc(sizeof(char)*buff_size_get);
- *       i18n_ulocale_get_keyword_value(buff, "abc", buff_out, buff_size_get);
- *
- *       dlog_print(DLOG_DEBUG, "test", "Locale and keywords: %s", buff);
- *       dlog_print(DLOG_DEBUG, "test", "keyword1: %s", keyw);
- *       dlog_print(DLOG_DEBUG, "test", "keyword2: %s", keyw2);
- *       dlog_print(DLOG_DEBUG, "test", "Locale: %s", only_locale);
- *       dlog_print(DLOG_DEBUG, "test", "Keyword1 value: %s", buff_out);
- *
- *       i18n_uenumeration_destroy(keyword_enum)
- *       free(buff);
- *       free(sub_buff);
- *       free(only_locale);
- *       free(buff_out);
- * @endcode
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] keyword_name             A name of the keyword to be set. Case insensitive.
- * @param[in] keyword_value            A value of the keyword to be set. If 0-length or
- *                                                             @c NULL, will result in the keyword being removed.
- *                                                             No error is given if that keyword does not exist.
- * @param[out] buffer                  Input buffer containing locale to be modified.
- * @param[in] buffer_capacity  Capacity of receiving @a buffer
- *
- * @return The length needed for the @a buffer. If the @a keyword_name or @a buffer is @c NULL or the @a buffer_capacity is lower than @c 0,
- *                then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ulocale_get_keyword_value()
- */
-int32_t i18n_ulocale_set_keyword_value(const char *keyword_name, const char *keyword_value, char *buffer, int32_t buffer_capacity);
-
-/**
- * @brief Gets the layout character orientation for the specified locale.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                locale name
- * @param[out] layout_type A pointer to the enum indicating the layout orientation for characters.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_get_character_orientation(const char *locale_id, i18n_ulocale_layout_type_e *layout_type);
-
-/**
- * @brief Gets the layout line orientation for the specified locale.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                locale name
- * @param[out] layout_type A pointer to the enum indicating the layout orientation for lines.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_get_line_orientation(const char *locale_id, i18n_ulocale_layout_type_e *layout_type);
-
-/**
- * @brief Gets the I18N locale ID for the specified Win32 LCID value.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] host_id                  The Win32 LCID to translate
- * @param[out] locale                  The output buffer for the I18N locale ID, which will be NULL-terminated if there is room.
- * @param[in] locale_capacity  The size of the output buffer
- *
- * @return The actual size of the locale ID, not including NULL-termination.
- *                If the @a locale buffer is @c NULL or the @a locale_capacity is lower than @c 0,
- *                then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_locale_for_lcid(uint32_t host_id, char *locale, int32_t locale_capacity);
-
-/**
- * @brief Adds the likely subtags for a provided locale ID, per the algorithm described
- *               in the following CLDR technical report : http://www.unicode.org/reports/tr35/#Likely_Subtags
- * @details If @a locale_id is already in the maximal form, or there is no data available
- *                     for maximization, it will be copied to the output buffer. For example,
- *                     "und-Zzzz" cannot be maximized, since there is no reasonable maximization.
- *
- *                     Examples :
- *
- *                     "en" maximizes to "en_Latn_US"
- *
- *                     "de" maximizes to "de_Latn_US"
- *
- *                     "sr" maximizes to "sr_Cyrl_RS"
- *
- *                     "sh" maximizes to "sr_Latn_RS" (Note this will not reverse.)
- *
- *                     "zh_Hani" maximizes to "zh_Hans_CN" (Note this will not reverse.)
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                                                The locale to maximize
- * @param[out] maximized_locale_id                     The maximized locale
- * @param[in] maximized_locale_id_capacity     The capacity of the @a maximized_locale_id buffer
- *
- * @return The actual buffer size needed for the maximized locale. If it's
- *                greater than @a maximized_lacale_id_capacity, the returned ID will be truncated.
- *                On error, the return value is -1.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_add_likely_subtags(const char *locale_id, char *maximized_locale_id, int32_t maximized_locale_id_capacity);
-
-/**
- * @brief Minimizes the subtags for a provided locale ID, per the algorithm described
- *               in the following CLDR technical report: http://www.unicode.org/reports/tr35/#Likely_Subtags
- * @details If @a locale_id is already in the minimal form, or there is no data available
- *                     for minimization, it will be copied to the output buffer.  Since the
- *                     minimization algorithm relies on proper maximization, see the comments
- *                     for i18n_ulocale_add_likely_subtags() for reasons why there might not be any data.
- *
- *                     Examples :
- *
- *                     "en_Latn_US" minimizes to "en"
- *
- *                     "de_Latn_US" minimizes to "de"
- *
- *                     "sr_Cyrl_RS" minimizes to "sr"
- *
- *                     "zh_Hant_TW" minimizes to "zh_TW" (The region is preferred to the script, and minimizing to "zh" would imply "zh_Hans_CN".)
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                                                The locale to minimize
- * @param[out] minimized_locale_id                     The minimized locale
- * @param[in] minimized_locale_id_capacity     The capacity of the @a minimized_locale_id buffer
- *
- * @return The actual buffer size needed for the minimized locale. If it's
- *                greater than @a minimized_locale_id_capacity, the returned ID will be truncated.
- *                On error, the return value is -1.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_minimize_subtags(const char *locale_id, char *minimized_locale_id, int32_t minimized_locale_id_capacity);
-
-/**
- * @brief Returns a locale ID for the specified BCP47 language tag string.
- * @details If the specified language tag contains any ill-formed subtags,
- *                     the first such subtag and all following subtags are ignored.<br>
- *
- *                     This implements the 'Language-Tag' production of BCP47, and so
- *                     supports grandfathered (regular and irregular) as well as private
- *                     use language tags. Private use tags are represented as 'x-whatever',
- *                     and grandfathered tags are converted to their canonical replacements
- *                     where they exist. Note that a few grandfathered tags have no modern
- *                     replacement, these will be converted using the fallback described in
- *                     the first paragraph, so some information might be lost.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] langtag                    The input BCP47 language tag.
- * @param[out] locale_id                 The output buffer receiving a locale ID for the
- *                                                               specified BCP47 language tag.
- * @param[in] locale_id_capacity  The size of the @a locale_id output buffer.
- * @param[in] parsed_length              If not @c NULL, successfully parsed length
- *                                                               for the input language tag is set.
- *
- * @return The length of the locale ID. If the @a langtag or @a locale_id buffer is @c NULL or the @a locale_id_capacity is lower than @c 0,
- *                then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_for_language_tag(const char *langtag, char *locale_id, int32_t locale_id_capacity, int32_t *parsed_length);
-
-/**
- * @brief Returns a well-formed language tag for this locale ID.
- * @details Note : When @a strict is @c false, any locale
- *                     fields which do not satisfy the BCP47 syntax requirement will
- *                     be omitted from the result.      When @a strict is
- *                     @c true, this function sets #I18N_ERROR_INVALID_PARAMETER to the
- *                     result if any locale fields do not satisfy the
- *                     BCP47 syntax requirement.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id                        The input locale ID
- * @param[out] langtag                 The output buffer receiving BCP47 language
- *                                                             tag for the locale ID.
- * @param[in] langtag_capacity The size of the BCP47 language tag
- *                                                             output buffer.
- * @param[in] strict                   Boolean value indicating if the function returns
- *                                                             an error for an ill-formed input locale ID.
- *
- * @return The length of the BCP47 language tag. If the @a locale_id  or @a langtag buffer is @c NULL or the @a langtag_capacity is lower than @c 0,
- *                then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_to_language_tag(const char *locale_id, char *langtag, int32_t langtag_capacity, i18n_ubool strict);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_ULOCALE_H__*/
diff --git a/src/include/mobile/utils_i18n_unormalization.h b/src/include/mobile/utils_i18n_unormalization.h
deleted file mode 100644 (file)
index f83660e..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UNORMALIZATION_H__
-#define __UTILS_I18N_UNORMALIZATION_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_unormalization.h
- * @version 0.1
- * @brief utils_i18n_unormaliztion
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE Unormalization
- * @brief The Unormalization module provides Unicode normalization functionality for standard unicode normalization.
- *
- * @section CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE_OVERVIEW Overview
- * @details The Unormalization module provides Unicode normalization functionality for standard unicode normalization.
- * All instances of i18n_unormalizer_h are unmodifiable/immutable.
- * Instances returned by i18n_unormalization_get_instance() are singletons that must not be deleted by the caller.
- *
- * @section CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Creates a normalizer and normalizes a unicode string
- * @code
-       i18n_unormalizer_h normalizer = NULL;
-       i18n_uchar src = 0xAC00;
-       i18n_uchar dest[4] = {0,};
-       int dest_str_len = 0;
-       int i = 0;
-
-       // gets instance for normalizer
-       i18n_unormalization_get_instance( NULL, "nfc", I18N_UNORMALIZATION_DECOMPOSE, &normalizer );
-
-       // normalizes a unicode string
-       i18n_unormalization_normalize( normalizer, &src, 1, dest, 4, &dest_str_len );
-       dlog_print(DLOG_INFO, LOG_TAG, "src is 0x%x\n", src );    // src is 0xAC00 (0xAC00: A Korean character combined with consonant and vowel)
-
-       for ( i = 0; i < dest_str_len; i++ ) {
-               dlog_print(DLOG_INFO, LOG_TAG, "dest[%d] is 0x%x\t", i + 1, dest[i] );    // dest[1] is 0x1100  dest[2] is 0x1161 (0x1100: consonant, 0x1161: vowel)
-       }
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE
- * @{
- */
-
-/**
- * @brief Gets a i18n_unormalizer_h which uses the specified data file and composes or decomposes text according to the specified mode.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] package_name @c NULL for ICU built-in data, otherwise application data package name.
- * @param[in] name "nfc" or "nfkc" or "nfkc_cf" or the name of the custom data file.
- * @param[in] mode The normalization mode (compose or decompose).
- * @param[out] normalizer The requested normalizer on success.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unormalization_get_instance(const char *package_name, const char *name, i18n_unormalization_mode_e mode,
-                                                                        i18n_unormalizer_h *normalizer);
-
-/**
- * @brief Writes the normalized form of the source string to the destination string(replacing its contents).
- * @details The source and destination strings must be different buffers.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] normalizer i18n normalizer handle.
- * @param[in] src The source string.
- * @param[in] len The length of the source string, otherwise @c -1 if NULL-terminated.
- * @param[out] dest The destination string\n
- * Its contents are replaced with normalized @a src.
- * @param[in] capacity The number of string_uchar that can be written to @a dest
- * @param[out] len_deststr The length of the destination string
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unormalization_normalize(i18n_unormalizer_h normalizer, const i18n_uchar *src, int32_t len, i18n_uchar *dest, int32_t capacity, int32_t *len_deststr);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_UNORMALIZATION_H__*/
diff --git a/src/include/mobile/utils_i18n_unumber.h b/src/include/mobile/utils_i18n_unumber.h
deleted file mode 100644 (file)
index b0ab229..0000000
+++ /dev/null
@@ -1,651 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UNUMBER_H__
-#define __UTILS_I18N_UNUMBER_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_unumber.h
- * @version 0.1
- * @brief utils_i18n_unumber
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UNUMBER_MODULE Unumber
- * @brief The Unumber module helps you format and parse numbers for any locale.
- *
- * @section CAPI_BASE_UTILS_I18N_UNUMBER_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UNUMBER_MODULE_OVERVIEW Overview
- * @details The Unumber module helps you format and parse numbers for any locale.
- * Your code can be completely independent of the locale conventions for decimal
- * points, thousands-separators, or even the particular decimal digits used,
- * or whether the number format is even decimal. There are different number format
- * styles like decimal, currency, percent and spellout.
- *
- * @section CAPI_BASE_UTILS_I18N_UNUMBER_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Gets a currency symbol according to a given locale.
- * @code
-       int buf_len;
-       i18n_uchar u_buffer[64];
-       char a_buffer[64];
-       i18n_unumber_format_h num_format;
-
-       // creates and returns a new unumber_format
-       i18n_unumber_create(I18N_UNUMBER_CURRENCY, NULL, -1, "en_US", NULL, &num_format);
-
-       // gets a symbol associated with i18n_unumber_format
-       i18n_unumber_get_symbol(num_format, I18N_UNUMBER_CURRENCY_SYMBOL, u_buffer, 64, &buf_len);
-
-       i18n_ustring_copy_au(a_buffer, u_buffer);
-       // en_US currency symbol: $
-       dlog_print(DLOG_INFO, LOG_TAG, "en_US currency symbol: %s \n", a_buffer);
-
-       // destroys i18n_unumber_format
-       i18n_unumber_destroy(num_format);
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UNUMBER_MODULE
- * @{
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Creates and returns a new unumber_format_h for formatting and parsing numbers.
- * @details A unumber_format_style_e may be used to format numbers by calling i18n_unumber_create().
- * The caller must call i18n_unumber_destroy() when done to release resources used by this object.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @remarks Must release @a num_format using i18n_unumber_destroy().
- *
- * @param[in] style The type of number format to create: one of
- * #I18N_UNUMBER_DECIMAL,
- * #I18N_UNUMBER_CURRENCY,
- * #I18N_UNUMBER_PERCENT,
- * #I18N_UNUMBER_SCIENTIFIC,
- * #I18N_UNUMBER_CURRENCY_ISO,
- * #I18N_UNUMBER_CURRENCY_PLURAL,
- * #I18N_UNUMBER_SPELLOUT,
- * #I18N_UNUMBER_ORDINAL,
- * #I18N_UNUMBER_DURATION,
- * #I18N_UNUMBER_NUMBERING_SYSTEM,
- * #I18N_UNUMBER_PATTERN_RULEBASED,
- * or #I18N_UNUMBER_DEFAULT \n
- * If #I18N_UNUMBER_PATTERN_DECIMAL or #I18N_UNUMBER_PATTERN_RULEBASED is passed then the number format is created using the given pattern, which must conform
- * to the syntax described in DecimalFormat or RuleBasedNumberFormat, respectively.
- * @param[in] pattern          A pattern specifying the format to use \n This parameter is ignored unless the style is #I18N_UNUMBER_PATTERN_DECIMAL or #I18N_UNUMBER_PATTERN_RULEBASED.
- * @param[in] pattern_len      The number of characters in the pattern, otherwise @c -1 if NULL-terminated\n
- *                                                     This parameter is ignored unless the style is I18N_UNUMBER_PATTERN_*.
- * @param[in] locale           A locale identifier to use to determine formatting
- *                                                     and parsing conventions, otherwise @c NULL to use the default locale.
- * @param[in] parse_err                A pointer to a #i18n_uparse_error_s structure to receive the
- *                                                     details of any parsing errors, otherwise @c NULL if no parsing error details are desired.
- * @param[out] num_format      A pointer to a newly created #i18n_unumber_format_h, otherwise @c NULL if an error occurs.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_create(i18n_unumber_format_style_e style, const i18n_uchar *pattern, int32_t pattern_len, const char *locale,
-                                               i18n_uparse_error_s *parse_err, i18n_unumber_format_h *num_format);
-
-/**
- * @brief Destroys an #i18n_unumber_format_h.
- * @details Once destroyed, an #i18n_unumber_format may no longer be used.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] fmt The formatter to destroy
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_destroy(i18n_unumber_format_h fmt);
-
-/**
- * @brief Gets a symbol associated with an #i18n_unumber_format_h.
- * @details An #i18n_unumber_format_h uses symbols to represent the special locale-dependent characters in a number,
- * for example the percent sign. This API is not supported for rule-based formatters.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] fmt The formatter to query.
- * @param[in] symbol The unumber_format_symbol_e constant for the symbol to get
- * @param[out] buffer The string buffer that will receive the symbol string\n
- * If it is @c NULL, then only the length of the symbol is returned.
- * @param[in] size The size of the string buffer
- * @param[out] len_symbol The length of the symbol\n
- * The buffer is not modified if <code>length &gt;= size</code>
- *
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_get_symbol(const i18n_unumber_format_h fmt, i18n_unumber_format_symbol_e symbol, i18n_uchar *buffer, int32_t size, int32_t *len_symbol);
-
-
-/* Newly Added APIs */
-
-
-/**
- * @brief Creates a copy of an #i18n_unumber_format_h.
- * @details This function performs a deep copy.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt      The format to copy.
- * @param[out] fmt_clone A pointer to clone of @a fmt.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_clone(const i18n_unumber_format_h fmt, i18n_unumber_format_h *fmt_clone);
-
-/**
-* @brief Formats an integer using a i18n_unumber_format_h.
-* @details The integer will be formatted according to the i18n_unumber_format_h's locale.
-* @since_tizen 2.3.1
-*
-* @param[in] fmt                  The formatter to use.
-* @param[in] number               The number to format.
-* @param[out] result      A pointer to a buffer to receive the NULL-terminated formatted number.
-*                                                 If the formatted number fits into dest but cannot be NULL-terminated (length == resultLength)
-*                                                 then the error code is set to #I18N_WARNING_STRING_NOT_TERMINATED.
-*                                                 If the formatted number doesn't fit into result then the error code is set to #I18N_ERROR_BUFFER_OVERFLOW.
-* @param[in] result_length The maximum size of result.
-* @param[in] pos                  A pointer to a i18n_ufield_position. On input, position->field is read.
-*                                                 On output, position->beginIndex and position->endIndex indicate the beginning and ending indices of field number position->field, if such a field exists.
-*                                                 This parameter may be NULL, in which case no field
-* @param[out] status      A pointer to an i18n_error_code_e to receive any errors
-*
-* @return The total buffer size needed; if greater than result_length, the output was truncated.
-*/
-int32_t i18n_unumber_format(const i18n_unumber_format_h fmt, int32_t number, i18n_uchar *result, int32_t result_length, i18n_ufield_position_s *pos, i18n_error_code_e *status);
-
-/**
- * @brief Formats an int64 using an #i18n_unumber_format_h.
- * @details The int64 will be formatted according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                              The formatter to use.
- * @param[in] number                   The number to format.
- * @param[out] result                  A pointer to a buffer to receive the NULL-terminated formatted number.
- *                                                             If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- *                                                             then the error code is set to #I18N_WARNING_STRING_NOT_TERMINATED.
- *                                                             If the formatted number doesn't fit into result then the error code is set to #I18N_ERROR_BUFFER_OVERFLOW.
- * @param[in] result_length            The maximum size of @a result.
- * @param[in,out] pos                  An #i18n_ufield_position_h handle. On input, position->field is read.
- *                                                             On output, position->beginIndex and position->endIndex indicate the beginning and ending indices of field number position->field, if such a field exists.
- *                                                             This parameter may be NULL, in which case no field
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_WARNING_STRING_NOT_TERMINATED If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If the formatted number doesn't fit into the @a result buffer
- */
-int32_t i18n_unumber_format_int64(const i18n_unumber_format_h fmt, int64_t number, i18n_uchar *result, int32_t result_length, i18n_ufield_position_h pos);
-
-/**
- * @brief Formats a double using an #i18n_unumber_format_h.
- * @details The double will be formatted according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                              The formatter to use.
- * @param[in] number                   The number to format.
- * @param[out] result                  A pointer to a buffer to receive the NULL-terminated formatted number.
- *                                                             If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- *                                                             then the error code is set to #I18N_WARNING_STRING_NOT_TERMINATED.
- *                                                             If the formatted number doesn't fit into result then the error code is set to #I18N_ERROR_BUFFER_OVERFLOW.
- * @param[in] result_length            The maximum size of @a result.
- * @param[in,out] pos                  An #i18n_ufield_position_h handle. On input, position->field is read.
- *                                                             On output, position->beginIndex and position->endIndex indicate the beginning
- *                                                             and ending indices of field number position->field, if such a field exists.
- *                                                             This parameter may be NULL, in which case no field
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_WARNING_STRING_NOT_TERMINATED If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If the formatted number doesn't fit into the @a result buffer
- */
-int32_t i18n_unumber_format_double(const i18n_unumber_format_h fmt, double number, i18n_uchar *result, int32_t result_length, i18n_ufield_position_h pos);
-
-/**
- * @brief Formats a decimal number using an #i18n_unumber_format_h.
- * @details The number will be formatted according to the #i18n_unumber_format_h's locale. The syntax of the input number
- *             is a "numeric string" as defined in the Decimal Arithmetic Specification, available at http://speleotrove.com/decimal
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                              The formatter to use.
- * @param[in] number                   The number to format.
- * @param[in] length                   The length of the input @a number, or -1 if the input is NULL-terminated.
- * @param[out] result                  A pointer to a buffer to receive the NULL-terminated formatted number.
- *                                                             If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>) then
- *                                                             the error code is set to #I18N_WARNING_STRING_NOT_TERMINATED.
- *                                                             If the formatted number doesn't fit into result then the error code is set to
- *                                                             #I18N_ERROR_BUFFER_OVERFLOW.
- * @param[in] result_length            The maximum size of @a result.
- * @param[in,out] pos                  An #i18n_ufield_position_h handle. On input, position->field is read.
- *                                                             On output, position->beginIndex and position->endIndex indicate the beginning and ending
- *                                                             indices of field number position->field, if such a field exists.
- *                                                             This parameter may be NULL, in which case it is ignored.
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_WARNING_STRING_NOT_TERMINATED If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If the formatted number doesn't fit into the @a result buffer
- */
-int32_t i18n_unumber_format_decimal(const i18n_unumber_format_h fmt, const char *number, int32_t length, i18n_uchar *result, int32_t result_length, i18n_ufield_position_h pos);
-
-/**
- * @brief Formats a double currency amount using an #i18n_unumber_format_h.
- * @details The double will be formatted according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                              The formatter to use.
- * @param[in] number                   The number to format.
- * @param[in] currency                 The 3-letter NULL-terminated ISO 4217 currency code.
- * @param[out] result                  A pointer to a buffer to receive the NULL-terminated formatted number.
- *                                                             If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- *                                                             then the error code is set to #I18N_WARNING_STRING_NOT_TERMINATED.
- *                                                             If the formatted number doesn't fit into result then the error code is set to
- *                                                             #I18N_ERROR_BUFFER_OVERFLOW.
- * @param[in] result_length            The maximum size of @a result.
- * @param[in,out] pos                  An #i18n_ufield_position_h handle. On input, position->field is read.
- *                                                             On output, position->beginIndex and position->endIndex indicate the beginning and ending indices
- *                                                             of field number position->field, if such a field exists.
- *                                                             This parameter may be NULL, in which case it is ignored.
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_WARNING_STRING_NOT_TERMINATED If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If the formatted number doesn't fit into the @a result buffer
- */
-int32_t i18n_unumber_format_double_currency(const i18n_unumber_format_h fmt, double number, i18n_uchar *currency, i18n_uchar *result, int32_t result_length, i18n_ufield_position_h pos);
-
-/**
- * @brief Parses a string into an integer using an #i18n_unumber_format_h.
- * @details The string will be parsed according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                       The formatter to use.
- * @param[in] text                      The text to parse.
- * @param[in] text_length       The length of @a text, or -1 if NULL-terminated.
- * @param[in,out] parse_pos     If not NULL, on input a pointer to an integer specifying the offset at which to begin parsing.
- *                                                      If not NULL, on output the offset at which parsing ended.
- *
- * @return The value of the parsed integer
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_unumber_parse(const i18n_unumber_format_h fmt, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos);
-
-/**
- * @brief Parses a string into an int64 using an #i18n_unumber_format_h.
- * @details The string will be parsed according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                       The formatter to use.
- * @param[in] text                      The text to parse.
- * @param[in] text_length       The length of @a text, or -1 if NULL-terminated.
- * @param[in,out] parse_pos     If not NULL, on input a pointer to an integer specifying the offset at which to begin parsing.
- *                                                      If not NULL, on output the offset at which parsing ended.
- *
- * @return The value of the parsed integer
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int64_t i18n_unumber_parse_int64(const i18n_unumber_format_h fmt, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos);
-
-/**
- * @brief Parses a string into a double using an #i18n_unumber_format_h.
- * @details The string will be parsed according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                       The formatter to use.
- * @param[in] text                      The text to parse.
- * @param[out] text_length      The length of @a text, or -1 if NULL-terminated.
- * @param[in,out] parse_pos     If not NULL, on input a pointer to an integer specifying the offset at which to begin parsing.
- *                                                      If not NULL, on output the offset at which parsing ended.
- *
- * @return The value of the parsed double
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-double i18n_unumber_parse_double(const i18n_unumber_format_h fmt, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos);
-
-/**
- * @brief Parses a number from a string into an unformatted numeric string using an #i18n_unumber_format_h.
- * @details The input string will be parsed according to the #i18n_unumber_format_h's locale.
- *                     The syntax of the output is a "numeric string" as defined in the Decimal Arithmetic Specification, available at
- *                     http://speleotrove.com/decimal
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                               The formatter to use.
- * @param[in] text                              The text to parse.
- * @param[in] text_length               The length of @a text, or -1 if NULL-terminated.
- * @param[in,out] parse_pos             If not NULL, on input a pointer to an integer specifying the offset at which to begin parsing.
- *                                                              If not NULL, on output the offset at which parsing ended.
- * @param[out] out_buf                  A (char *) buffer to receive the parsed number as a string.
- *                                                              The output string will be NULL-terminated if there is sufficient space.
- * @param[out] out_buf_length   The size of the output buffer. May be zero, in which case the @a out_buf pointer may be NULL,
- *                                                              and the function will return the size of the output string.
- *
- * @return The length of the output string, not including any terminating NULL.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_unumber_parse_decimal(const i18n_unumber_format_h fmt, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos, char *out_buf, int32_t out_buf_length);
-
-/**
- * @brief Parses a string into a double and a currency using an #i18n_unumber_format_h.
- * @details The string will be parsed according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                       The formatter to use.
- * @param[in] text                      The text to parse.
- * @param[in] text_length       The length of @a text, or -1 if NULL-terminated.
- * @param[in,out] parse_pos     A pointer to an offset index into text at which to begin parsing. On output, @a parse_pos will
- *                                                      point after the last parsed character. This parameter may be NULL, in which case parsing begins
- *                                                      at offset 0.
- *                                                      If not NULL, on output the offset at which parsing ended.
- * @param[out] currency                 A pointer to the buffer to receive the parsed NULL- terminated currency.
- *                                                      This buffer must have a capacity of at least 4 #i18n_uchar characters.
- *
- * @return The parsed double
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-double i18n_unumber_parse_double_currency(const i18n_unumber_format_h fmt, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos, i18n_uchar *currency);
-
-/**
- * @brief Sets the pattern used by an #i18n_unumber_format_h.
- * @details This can only be used on a DecimalFormat, other formats return #I18N_ERROR_NOT_SUPPORTED in the status.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] format                   The formatter to set.
- * @param[in] localized                        true if the pattern is localized, false otherwise.
- * @param[in] pattern                  The new pattern
- * @param[in] pattern_length   The length of @a pattern, or -1 if NULL-terminated.
- * @param[out] parse_error              A pointer to #i18n_uparse_error_s to receive information about errors occurred during parsing,
- *                                                              or NULL if no parse error information is desired.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_apply_pattern(i18n_unumber_format_h format, i18n_ubool localized, const i18n_uchar *pattern, int32_t pattern_length, i18n_uparse_error_s *parse_error);
-
-/**
- * @brief Gets a locale for which decimal formatting patterns are available.
- * @details An #i18n_unumber_format_h in a locale returned by this function will perform the correct formatting and parsing for the locale.
- *                     The results of this call are not valid for rule-based number formats.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_index     The index of the desired locale.
- *
- * @return A locale for which number formatting patterns are available, or 0 if none.
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *i18n_unumber_get_available(int32_t locale_index);
-
-/**
- * @brief Determines how many locales have decimal formatting patterns available.
- * @details The results of this call are not valid for rule-based number formats.
- *                     This function is useful for determining the loop ending condition for calls to i18n_unumber_get_available().
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @return The number of locales for which decimal formatting patterns are available.
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-int32_t i18n_unumber_count_available(void);
-
-/**
- * @brief Gets a numeric attribute associated with an #i18n_unumber_format_h.
- * @details An example of a numeric attribute is the number of integer digits a formatter will produce.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt              The formatter to query.
- * @param[in] attr             The attribute to query; one of #I18N_UNUMBER_PARSE_INT_ONLY, #I18N_UNUMBER_GROUPING_USED,
- *                                             #I18N_UNUMBER_DECIMAL_ALWAYS_SHOWN, #I18N_UNUMBER_MAX_INTEGER_DIGITS, #I18N_UNUMBER_MIN_INTEGER_DIGITS,
- *                                             #I18N_UNUMBER_INTEGER_DIGITS, #I18N_UNUMBER_MAX_FRACTION_DIGITS, #I18N_UNUMBER_MIN_FRACTION_DIGITS,
- *                                             #I18N_UNUMBER_FRACTION_DIGITS, #I18N_UNUMBER_MULTIPLIER, #I18N_UNUMBER_GROUPING_SIZE,
- *                                             #I18N_UNUMBER_ROUNDING_MODE, #I18N_UNUMBER_FORMAT_WIDTH, #I18N_UNUMBER_PADDING_POSITION,
- *                                             #I18N_UNUMBER_SECONDARY_GROUPING_SIZE, #I18N_UNUM_SCALE.
- *
- * @return The value of @a attr or @c -1 if the given attribute is not supported.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_unumber_get_attribute(const i18n_unumber_format_h fmt, i18n_unumber_format_attribute_e attr);
-
-/**
- * @brief Sets a numeric attribute associated with an #i18n_unumber_format_h.
- * @details An example of a numeric attribute is the number of integer digits a formatter will produce.
- *                     If the formatter does not understand the attribute, the call is ignored. Rule-based formatters only understand
- *                     the lenient-parse attribute. The #I18N_UNUMBER_ROUNDING_INCREMENT attribute is not supported.
- *
- *                     Note that the value for the #I18N_UNUMBER_PADDING_POSITION attribute should be one of the #i18n_unumber_pad_position_e
- *                     enumeration values.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt               The formatter to set.
- * @param[in] attr              The attribute to query; one of #I18N_UNUMBER_PARSE_INT_ONLY, #I18N_UNUMBER_GROUPING_USED,
- *                                              #I18N_UNUMBER_DECIMAL_ALWAYS_SHOWN, #I18N_UNUMBER_MAX_INTEGER_DIGITS, #I18N_UNUMBER_MIN_INTEGER_DIGITS,
- *                                              #I18N_UNUMBER_INTEGER_DIGITS, #I18N_UNUMBER_MAX_FRACTION_DIGITS, #I18N_UNUMBER_MIN_FRACTION_DIGITS,
- *                                              #I18N_UNUMBER_FRACTION_DIGITS, #I18N_UNUMBER_MULTIPLIER, #I18N_UNUMBER_GROUPING_SIZE,
- *                                              #I18N_UNUMBER_ROUNDING_MODE, #I18N_UNUMBER_FORMAT_WIDTH, #I18N_UNUMBER_PADDING_POSITION,
- *                                              #I18N_UNUMBER_SECONDARY_GROUPING_SIZE, #I18N_UNUMBER_SIGNIFICANT_DIGITS_USED, #I18N_UNUMBER_MIN_SIGNIFICANT_DIGITS,
- *                                              #I18N_UNUMBER_MAX_SIGNIFICANT_DIGITS, #I18N_UNUMBER_LENIENT_PARSE, #I18N_UNUM_SCALE,
- *                                              #I18N_UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS, #I18N_UNUM_PARSE_NO_EXPONENT.
- * @param[in] new_value         The new value of @a attr.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_NOT_SUPPORTED Not supported
- */
-int i18n_unumber_set_attribute(i18n_unumber_format_h fmt, i18n_unumber_format_attribute_e attr, int32_t new_value);
-
-/**
- * @brief Gets a numeric attribute associated with an #i18n_unumber_format_h.
- * @details An example of a numeric attribute is the number of integer digits a formatter will produce.
- *                     If the formatter does not understand the attribute, -1 is returned.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt       The formatter to query.
- * @param[in] attr      The attribute to query; only #I18N_UNUMBER_ROUNDING_INCREMENT is supported.
- *
- * @return The value of @a attr.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-double i18n_unumber_get_double_attribute(const i18n_unumber_format_h fmt, i18n_unumber_format_attribute_e attr);
-
-/**
- * @brief Sets a numeric attribute associated with an #i18n_unumber_format_h.
- * @details An example of a numeric attribute is the number of integer digits a formatter will produce.
- *                     If the formatter does not understand the attribute, this call is ignored.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt               The formatter to set.
- * @param[in] attr              The attribute to query; Only #I18N_UNUMBER_ROUNDING_INCREMENT is supported.
- * @param[in] new_value         The new value of @a attr.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_set_double_attribute(i18n_unumber_format_h fmt, i18n_unumber_format_attribute_e attr, double new_value);
-
-/**
- * @brief Gets a text attribute associated with an #i18n_unumber_format_h.
- * @details An example of a text attribute is the suffix for positive numbers. If the formatter does not understand the attribute,
- *                     #I18N_ERROR_NOT_SUPPORTED error code is set.
- *                     Rule-based formatters only understand #I18N_UNUMBER_DEFAULT_RULESET and #I18N_UNUMBER_PUBLIC_RULESETS.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                              The formatter to query.
- * @param[in] tag                              The attribute to query; one of #I18N_UNUMBER_POSITIVE_PREFIX, #I18N_UNUMBER_POSITIVE_SUFFIX,
- *                                                             #I18N_UNUMBER_NEGATIVE_PREFIX, #I18N_UNUMBER_NEGATIVE_SUFFIX, #I18N_UNUMBER_PADDING_CHARACTER,
- *                                                             #I18N_UNUMBER_CURRENCY_CODE, #I18N_UNUMBER_DEFAULT_RULESET, or #I18N_UNUMBER_PUBLIC_RULESETS.
- * @param[out] result                  A pointer to a buffer to receive the attribute.
- * @param[in] result_length            The maximum size of @a result.
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_unumber_get_text_attribute(const i18n_unumber_format_h fmt, i18n_unumber_format_text_attribute_e tag, i18n_uchar *result, int32_t result_length);
-
-/**
- * @brief Sets a text attribute associated with an #i18n_unumber_format_h.
- * @details An example of a text attribute is the suffix for positive numbers. Rule-based formatters only understand
- *                     #I18N_UNUMBER_DEFAULT_RULESET. The #I18N_UNUMBER_PUBLIC_RULESETS tag is not supported.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                               The formatter to set.
- * @param[in] tag                               The attribute to set; one of #I18N_UNUMBER_POSITIVE_PREFIX, #I18N_UNUMBER_POSITIVE_SUFFIX,
- *                                                              #I18N_UNUMBER_NEGATIVE_PREFIX, #I18N_UNUMBER_NEGATIVE_SUFFIX, #I18N_UNUMBER_PADDING_CHARACTER,
- *                                                              #I18N_UNUMBER_CURRENCY_CODE, #I18N_UNUMBER_DEFAULT_RULESET.
- * @param[in] new_value                         The new value of @a tag.
- * @param[in] new_value_length  The length of new_value, or -1 if NULL-terminated.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_set_text_attribute(const i18n_unumber_format_h fmt, i18n_unumber_format_text_attribute_e tag, const i18n_uchar *new_value, int32_t new_value_length);
-
-/**
- * @brief Extracts the pattern from an #i18n_unumber_format_h.
- * @details The pattern will follow the DecimalFormat pattern syntax.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt                                       The formatter to query.
- * @param[in] is_pattern_localized      true if the pattern should be localized, false otherwise.
- *                                                                      This is ignored if the formatter is a rule-based formatter.
- * @param[out] result                           A pointer to a buffer to receive the pattern.
- * @param[in] result_length                     The maximum size of @a result.
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_unumber_to_pattern(const i18n_unumber_format_h fmt, i18n_ubool is_pattern_localized, i18n_uchar *result, int32_t result_length);
-
-/**
- * @brief Sets a symbol associated with an #i18n_unumber_format_h.
- * @details An #i18n_unumber_format_h uses symbols to represent the special locale-dependent characters in a number, for example the percent sign.
- *                     This API is not supported for rule-based formatters.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt               The formatter to set.
- * @param[in] symbol    The #i18n_unumber_format_symbol_e constant for the symbol to set
- * @param[in] value             The string to set the symbol to
- * @param[in] length    The length of the input string, or -1 for a zero-terminated string
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_set_symbol(i18n_unumber_format_h fmt, i18n_unumber_format_symbol_e symbol, const i18n_uchar *value, int32_t length);
-
-/**
- * @brief Gets the locale for this number format object.
- * @details You can choose between valid and actual locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt               The formatter to get the locale from.
- * @param[in] type              Type of the locale we're looking for (valid or actual)
- *
- * @return The locale name
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_unumber_get_locale_by_type(const i18n_unumber_format_h fmt, i18n_ulocale_data_locale_type_e type);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_UNUMBER_H__*/
diff --git a/src/include/mobile/utils_i18n_uset.h b/src/include/mobile/utils_i18n_uset.h
deleted file mode 100644 (file)
index c186efb..0000000
+++ /dev/null
@@ -1,1175 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- *
- * Copyright (C) 1999-2013, International Business Machines Corporation
- * and others. All Rights Reserved.
- */
-
-#ifndef __UTILS_I18N_USET_PRODUCT_H__
-#define __UTILS_I18N_USET_PRODUCT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_uset.h
- * @version 0.1
- * @brief utils_i18n_uset
- */
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_USET_MODULE Uset
- * @brief Uset module allows to specify a subset of character used in strings.
- *
- * @section CAPI_BASE_UTILS_I18N_USET_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_USET_MODULE_OVERVIEW Overview
- * @details Uset module allows to specify a subset of character used in strings.
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_USET_MODULE
- * @{
- */
-
-/**
- * @brief Creates an empty #i18n_uset_h object.
- * @details Equivalent to i18n_uset_create(1, 0).
- *
- * @since_tizen 2.3.1
- * @param[out] set A pointer to the newly created #i18n_uset_h. The caller must call i18n_uset_destroy() on
- * it when done.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_destroy()
- */
-int i18n_uset_create_empty(i18n_uset_h *set);
-
-/**
- * @brief Creates an #i18n_uset_h object that contains the range of characters
- * start..end, inclusive.
- * @details If <code>start > end</code>
- * then an empty set is created (same as using i18n_uset_empty_create()).
- *
- * @since_tizen 2.3.1
- * @param[in] start First character of the range, inclusive
- * @param[in] end Last character of the range, inclusive
- * @param[out] set A pointer to the newly created #i18n_uset_h object. The caller must call i18n_uset_destroy() on
- * it when done.
- * * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_destroy()
- */
-int i18n_uset_create(i18n_uchar32 start, i18n_uchar32 end, i18n_uset_h *set);
-
-/**
- * @brief Creates a set based on a given pattern.
- * @details See the UnicodeSet class description for the syntax
- * of the pattern language.
- *
- * @since_tizen 2.3.1
- * @param[in] pattern A string specifying what characters are in the set
- * @param[in] pattern_length The length of the pattern, >= 0, or -1 if NULL-terminated.
- * @param[out] set A pointer to the newly created #i18n_uset_h object. The caller must call i18n_uset_destroy() on
- * it when done.
- * * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_destroy()
- */
-int i18n_uset_create_pattern(const i18n_uchar *pattern, int32_t pattern_length, i18n_uset_h *set);
-
-/**
- * @brief Creates a set based on a given pattern.
- * @details See the UnicodeSet class description for the syntax of the pattern language.
- *
- * @since_tizen 2.3.1
- * @param[in] pattern A string specifying what characters are in the set
- * @param[in] pattern_length The length of the pattern, >= 0, or -1 if NULL-terminated
- * @param[in] options Bitmask for options to apply to the pattern.
- * Valid options are #I18N_USET_IGNORE_SPACE and #I18N_USET_CASE_INSENSITIVE.
- * @param[out] set A pointer to the newly created #i18n_uset_h object. The caller must call i18n_uset_destroy() on
- * it when done.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_destroy()
- */
-int i18n_uset_create_pattern_options(const i18n_uchar *pattern, int32_t pattern_length, uint32_t options, i18n_uset_h *set);
-
-/**
- * @brief Disposes of the storage used by a #i18n_uset_h object.
- * @details This function should be called exactly once for objects returned by i18n_uset_create().
- * @since_tizen 2.3.1
- *
- * @param[in] set The object to dispose of
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_destroy(i18n_uset_h set);
-
-/**
- * @brief Returns a copy of this object.
- * @details If this set is frozen, then the clone will be frozen as well.
- * Uses i18n_uset_clone_as_thawed() for a mutable clone of a frozen set.
- *
- * @since_tizen 2.3.1
- * @param[in] set The original set. Must not be @c NULL.
- * @param[out] set_clone The newly allocated copy of the set
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_clone_as_thawed()
- */
-int i18n_uset_clone(const i18n_uset_h set, i18n_uset_h *set_clone);
-
-/**
- * @brief Determines whether the set has been frozen (made immutable) or not.
- * @details See the ICU4J Freezable interface for details.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @return true/false for whether the set has been frozen
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_freeze()
- * @see i18n_uset_clone_as_thawed()
- */
-i18n_ubool i18n_uset_is_frozen(const i18n_uset_h set);
-
-/**
- * @brief Freezes the set (make it immutable).
- * @details Once frozen, it cannot be unfrozen and is therefore thread-safe
- * until it is deleted.
- * See the ICU4J Freezable interface for details.
- * Freezing the set may also make some operations faster, for example
- * i18n_uset_contains() and i18n_uset_span().
- * A frozen set will not be modified. (It remains frozen.)
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @return the same set, now frozen
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_is_frozen()
- * @see i18n_uset_clone_as_thawed()
- */
-int i18n_uset_freeze(i18n_uset_h set);
-
-/**
- * @brief Clones the set and make the clone mutable.
- * @details See the ICU4J Freezable interface for details.
- * @since_tizen 2.3.1
- *
- * @param[in] set The set. Must not be @c NULL.
- * @param[out] set_copy The mutable clone
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_freeze()
- * @see i18n_uset_is_frozen()
- * @see i18n_uset_clone()
- */
-int i18n_uset_clone_as_thawed(const i18n_uset_h set, i18n_uset_h *set_copy);
-
-/**
- * @brief Causes the #i18n_uset_h object to represent the range <code>start - end</code>.
- * @details If <code>start > end</code> then this #i18n_uset_h is set to an empty range.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to set to the given range. Must not be @c NULL.
- * @param[in] start First character in the set, inclusive
- * @param[in] end Last character in the set, inclusive
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_set(i18n_uset_h set, i18n_uchar32 start, i18n_uchar32 end);
-
-/**
- * @brief Modifies the set to represent the set specified by the given
- * pattern.
- * @details See the UnicodeSet class description for the syntax of
- * the pattern language. See also the User Guide chapter about UnicodeSet.
- * <em>Empties the set passed before applying the pattern.</em>
- * A frozen set will not be modified.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and in #i18n_error_code_e description.
- *
- * @since_tizen 2.3.1
- * @param[in] set                       The set to which the pattern is to be applied. Must not be @c NULL.
- * @param[in] pattern           A pointer to #i18n_uchar string specifying what characters are in the set.
- *                                                      The character at pattern[0] must be a '['.
- * @param[in] pattern_length The length of the #i18n_uchar string, >= 0, or -1 if NULL terminated.
- * @param[in] options           A bitmask for options to apply to the pattern.
- *                                                      Valid options are #I18N_USET_IGNORE_SPACE and #I18N_USET_CASE_INSENSITIVE.
- * @return                                      Upon successful parse, the value is either
- *                                                      the index of the character after the closing ']'
- *                                                      of the parsed pattern.
- *                                                      If the status code indicates failure, then the return value
- *                                                      is the index of the error in the source.
- *                                                      If @a set is NULL, 0 is returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_uset_apply_pattern(i18n_uset_h set, const i18n_uchar *pattern, int32_t pattern_length, uint32_t options);
-
-/**
- * @brief Modifies the set to contain those code points which have the given value
- *             for the given binary or enumerated property, as returned by
- *             i18n_uchar_get_int_property_value().
- * @details Prior contents of this set are lost.
- *             A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to contain the code points defined by the property. Must not be @c NULL.
- * @param[in] prop A property in the range #I18N_UCHAR_INT_START..#I18N_UCHAR_INT_LIMIT-1
- *             or #I18N_UCHAR_MASK_START..#I18N_UCHAR_MASK_LIMIT-1.
- * @param[in] value A value in the range i18n_uchar_get_int_property_min_value(prop)..
- *             i18n_uchar_get_int_property_max_value(prop), with one exception. If prop is
- *             #I18N_UCHAR_GENERAL_CATEGORY_MASK, then value should not be a #i18n_uchar_category_e, but
- *             rather a mask value produced by I18N_U_GET_GC_MASK(). This allows grouped
- *             categories such as [:L:] to be represented.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_apply_int_property_value(i18n_uset_h set, i18n_uchar_uproperty_e prop, int32_t value);
-
-/**
- * @brief Modifies the set to contain those code points which have the
- *             given value for the given property.
- * @details Prior contents of this set are lost. A frozen set will not be modified.
- * @since_tizen 2.3.1
- *
- * @param[in] set The object to contain the code points defined by the given
- *             property and value alias. Must not be @c NULL.
- * @param[in] prop A string specifying a property alias, either short or long.
- *             The name is matched loosely. See PropertyAliases.txt for names and a
- *             description of loose matching. If the value string is empty, then this
- *             string is interpreted as either a General_Category value alias, a Script
- *             value alias, a binary property alias, or a special ID. Special IDs are
- *             matched loosely and correspond to the following sets:
- *
- * "ANY" = [\\u0000-\\U0010FFFF],
- * "ASCII" = [\\u0000-\\u007F],
- * "Assigned" = [:^Cn:].
- *
- * @param[in] prop_length The length of the @a prop, >= 0, or @c -1 if @c NULL.
- * @param[in] value A string specifying a value alias, either short or long.
- *             The name is matched loosely. See PropertyValueAliases.txt for names
- *             and a description of loose matching. In addition to aliases listed,
- *             numeric values and canonical combining classes may be expressed
- *             numerically, e.g., ("nv", "0.5") or ("ccc", "220"). The value string
- *             may also be empty.
- * @param[in] value_length The length of the value, >= 0, or -1 if NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_apply_property_alias(i18n_uset_h set, const i18n_uchar *prop, int32_t prop_length, const i18n_uchar *value, int32_t value_length);
-
-/**
- * @brief Return true if the given position, in the given pattern, appears
- *             to be the start of a UnicodeSet pattern.
- * @since_tizen 2.3.1
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @param[in] pattern A string specifying the pattern.
- * @param[in] pattern_length The length of the pattern, >= 0, or @c -1 if @c NULL.
- * @param[in] pos The given position, >= 0.
- *
- * @return @c true if the given position, in the given pattern, appears to be the start of a UnicodeSet pattern.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_resembles_pattern(const i18n_uchar *pattern, int32_t pattern_length, int32_t pos);
-
-/**
- * @brief Returns a string representation of the given @a set.
- * @details If the result of calling this function is passed to an i18n_uset_pattern_create(),
- *                     it will produce another set that is equal to this one.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] set                                      The set. Must not be @c NULL.
- * @param[in,out] result                       The string to receive the rules, may be @c NULL.
- * @param[in] result_capacity          The capacity of @a result, >= 0, may be @c 0 if result is @c NULL.
- * @param[in] escape_unprintable       If true then convert unprintable character to their hex escape representations,
- *                                                                     \\uxxxx or \\Uxxxxxxxx. Unprintable characters are those other than U+000A, U+0020..U+007E.
- *
- * @return Length of string, >= 0, possibly larger than @a result_capacity. If @a set is NULL, 0 is returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_uset_pattern_create()
- */
-int32_t i18n_uset_to_pattern(const i18n_uset_h set, i18n_uchar *result, int32_t result_capacity, i18n_ubool escape_unprintable);
-
-/**
- * @brief Adds the given character to the given #i18n_uset_h.
- * @details After this call, i18n_uset_contains(set, character) will return true.
- *                     A frozen set will not be modified.
- * @since_tizen 2.3.1
- *
- * @param[in] set                      The object to which to add the @a character. Must not be @c NULL.
- * @param[in] character                The character to add.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_uset_contains()
- */
-int i18n_uset_add(i18n_uset_h set, i18n_uchar32 character);
-
-
-/**
- * @brief Adds all of the elements in the specified set to this set if
- *             they are not already present.
- * @details This operation effectively modifies this set so that its value is the <i>union</i> of the two
- *             sets. The behavior of this operation is unspecified if the specified
- *             collection is modified while the operation is in progress.
- *             A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the set. Must not be @c NULL.
- * @param[in] additional_set The source set whose elements are to be added to this set.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_add_all(i18n_uset_h set, const i18n_uset_h additional_set);
-
-/**
- * @brief Adds the given range of characters to the given #i18n_uset_h. After this call,
- * i18n_uset_contains(set, start, end) will return true.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the character. Must not be @c NULL.
- * @param[in] start The first character of the range to add, inclusive
- * @param[in] end The last character of the range to add, inclusive
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_contains()
- */
-int i18n_uset_add_range(i18n_uset_h set, i18n_uchar32 start, i18n_uchar32 end);
-
-/**
- * @brief Adds the given string to the given #i18n_uset_h.
- * @details After this call, i18n_uset_contains_string(set, str, str_len) will return true.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the character. Must not be @c NULL.
- * @param[in] str The string to add.
- * @param[in] str_len The length of the string, >= 0, or -1 if NULL terminated.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_contains_string()
- */
-int i18n_uset_add_string(i18n_uset_h set, const i18n_uchar *str, int32_t str_len);
-
-/**
- * @brief Adds each of the characters in this string to the set. Thus "ch" => {"c", "h"}
- * @details If this set already any particular character, it has no effect on that character.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the character. Must not be @c NULL.
- * @param[in] str The source string.
- * @param[in] str_len The length of the string, >= 0, or -1 if NULL terminated.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_add_all_code_points(i18n_uset_h set, const i18n_uchar *str, int32_t str_len);
-
-/**
- * @brief Removes the given @a character from the given #i18n_uset_h.
- * @details After this call, i18n_uset_contains(set, character) will return @c false.
- *                     A frozen set will not be modified.
- * @since_tizen 2.3.1
- *
- * @param[in] set                      the object from which to remove the @a character. Must not be @c NULL.
- * @param[in] character                the character to remove
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_uset_contains()
- */
-int i18n_uset_remove(i18n_uset_h set, i18n_uchar32 character);
-
-/**
- * @brief Removes the given range of characters from the given #i18n_uset_h.
- * @details After this call, i18n_uset_contains(set, start, end) will return false.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the character. Must not be @c NULL.
- * @param[in] start The first character of the range to remove, inclusive
- * @param[in] end The last character of the range to remove, inclusive
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_contains()
- */
-int i18n_uset_remove_range(i18n_uset_h set, i18n_uchar32 start, i18n_uchar32 end);
-
-/**
- * @brief Removes the given string to the given #i18n_uset_h.
- * @details After this call, i18n_uset_contains_string(set, str, str_len) will return false.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the character. Must not be @c NULL.
- * @param[in] str The string to remove.
- * @param[in] str_len The length of the string, >= 0, or -1 if NULL terminated.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_contains_string()
- */
-int i18n_uset_remove_string(i18n_uset_h set, const i18n_uchar *str, int32_t str_len);
-
-/**
- * @brief Removes from this set all of its elements that are contained in the specified set.
- * @details This operation effectively modifies this set so that its value is the <i>asymmetric set difference</i> of
- * the two sets.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object from which the elements are to be removed. Must not be @c NULL.
- * @param[in] remove_set The object that defines which elements will be
- * removed from this set. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_remove_all(i18n_uset_h set, const i18n_uset_h remove_set);
-
-/**
- * @brief Retains only the elements in this set that are contained in the specified range.
- * @details If <code>start > end</code> then an empty range is retained, leaving the set empty.  This is equivalent to
- * a boolean logic AND, or a set INTERSECTION.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object for which to retain only the specified range. Must not be @c NULL.
- * @param[in] start First character, inclusive, of range to be retained
- * to this set.
- * @param[in] end Last character, inclusive, of range to be retained
- * to this set.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_retain(i18n_uset_h set, i18n_uchar32 start, i18n_uchar32 end);
-
-/**
- * @brief Retains only the elements in this set that are contained in the
- * specified set.
- * @details In other words, removes from this set all of
- * its elements that are not contained in the specified set.  This
- * operation effectively modifies this set so that its value is
- * the <i>intersection</i> of the two sets.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object on which to perform the retain. Must not be @c NULL.
- * @param[in] retain Set that defines which elements this set will retain. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_retain_all(i18n_uset_h set, const i18n_uset_h retain);
-
-/**
- * @brief Reallocates this objects internal structures to take up the least
- * possible space, without changing this object's value.
- *
- * @details A frozen set will not be modified.
- * @since_tizen 2.3.1
- * @param[in] set The object on which to perfrom the compact. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_compact(i18n_uset_h set);
-
-/**
- * @brief Inverts this set.     This operation modifies this set so that
- * its value is its complement.
- * @details This operation does not affect
- * the multicharacter strings, if any.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_complement(i18n_uset_h set);
-
-/**
- * @brief Complements in this set all elements contained in the specified set.
- * @details Any character in the other set will be removed if it is
- * in this set, or will be added if it is not in this set.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set with which to complement. Must not be @c NULL.
- * @param[in] complement Set that defines which elements will be xor'ed
- * from this set. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_complement_all(i18n_uset_h set, const i18n_uset_h complement);
-
-/**
- * @brief Removes all of the elements from this set.
- * @details This set will be empty after this call returns.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_clear(i18n_uset_h set);
-
-/**
- * @brief Closes this set over the given attribute.
- * @details For the attribute
- * #I18N_USET_CASE_INSENSITIVE, the result is to modify this set so that:
- *
- * 1. For each character or string 'a' in this set, all strings or
- * characters 'b' such that foldCase(a) == foldCase(b) are added
- * to this set.
- *
- * 2. For each string 'e' in the resulting set, if e !=
- * foldCase(e), 'e' will be removed.
- *
- * Example: [aq\\u00DF{Bc}{bC}{Fi}] => [aAqQ\\u00DF\\uFB01{ss}{bc}{fi}]
- *
- * (Here foldCase(x) refers to the operation i18n_ustring_fold_case(), and a
- * == b denotes that the contents are the same, not pointer
- * comparison.)
- *
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @param[in]  attributes Bitmask for attributes to close over.
- * Currently only the #I18N_USET_CASE_INSENSITIVE bit is supported. Any undefined bits
- * are ignored.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ustring_fold_case()
- */
-int i18n_uset_destroy_over(i18n_uset_h set, int32_t attributes);
-
-/**
- * @brief Removes all strings from this set.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_remove_all_strings(i18n_uset_h set);
-
-/**
- * @brief Returns true if the given #i18n_uset_h contains no characters and no
- * strings.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @return true if set is empty
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_is_empty(const i18n_uset_h set);
-
-/**
- * @brief Returns @c true if the given #i18n_uset_h contains the given @a character.
- * @details This function works faster with a frozen set.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set                      the set. Must not be @c NULL.
- * @param[in] character                the codepoint to check for within the @a set
- *
- * @return @c true if @a set contains the given @a character
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains(const i18n_uset_h set, i18n_uchar32 character);
-
-/**
- * @brief Returns true if the given #i18n_uset_h contains all characters c
- * where start <= c && c <= end.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @param[in] start The first character of the range to test, inclusive
- * @param[in] end The last character of the range to test, inclusive
- * @return true if set contains the range
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_range(const i18n_uset_h set, i18n_uchar32 start, i18n_uchar32 end);
-
-/**
- * @brief Returns true if the given #i18n_uset_h contains the given string.
- * @since_tizen 2.3.1
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @param[in] set The set. Must not be @c NULL.
- * @param[in] str The string.
- * @param[in] str_len The length of the string, >= 0, or -1 if NULL terminated
- * @return true if set contains str
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_string(const i18n_uset_h set, const i18n_uchar *str, int32_t str_len);
-
-/**
- * @brief Returns the index of the given @a character within this @a set, where
- *               the @a set is ordered by ascending code point.
- * @details If the @a character is not in this @a set, return @c -1.
- *                     The inverse of this function is <code>i18n_uset_char_at()</code>.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set                      the set. Must not be @c NULL.
- * @param[in] character                the character to obtain the index for
- *
- * @return An index from 0..size()-1, or @c -1
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_uset_index_of(const i18n_uset_h set, i18n_uchar32 character);
-
-/**
- * @brief Returns the character at the given index within this set, where
- * the set is ordered by ascending code point.
- * @details If the index is out of range, return (i18n_uchar32)-1.     The inverse of this function is
- * <code>i18n_uset_index_of()</code>.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @param[in] char_index An index from 0..size()-1 to obtain the char for
- * @return The character at the given index, or (i18n_uchar32)-1.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_uchar32 i18n_uset_char_at(const i18n_uset_h set, int32_t char_index);
-
-/**
- * @brief Returns the number of characters and strings contained in the given #i18n_uset_h.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @return A non-negative integer counting the characters and strings
- * contained in set.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_uset_size(const i18n_uset_h set);
-
-/**
- * @brief Returns the number of items in this set.
- * @details An item is either a range of characters or a single multicharacter string.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @return A non-negative integer counting the character ranges
- * and/or strings contained in set.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_uset_get_item_count(const i18n_uset_h set);
-
-/**
- * @brief Returns an item of this set.
- * @details An item is either a range of characters or a single multicharacter string.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @param[in] item_index A non-negative integer in the range [0; i18n_uset_get_item_count(set)-1].
- * @param[in] start Pointer to variable to receive first character
- * in range, inclusive
- * @param[in] end Pointer to variable to receive last character in range,
- * inclusive
- * @param[out] str Buffer to receive the string, may be NULL
- * @param[in] str_capacity Capacity of @a str, or 0 if str is NULL
- * @return The length of the string (>= 2), or 0 if the item is a
- * range, in which case it is the range *start..*end, or -1 if
- * item_index is out of range
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_uset_get_item(const i18n_uset_h set, int32_t item_index, i18n_uchar32 *start, i18n_uchar32 *end, i18n_uchar *str, int32_t str_capacity);
-
-/**
- * @brief Returns true if set1 contains all the characters and strings of set2. It answers the question, 'Is set1 a superset of set2?'
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set1 Set to be checked for containment. Must not be @c NULL.
- * @param[in] set2 Set to be checked for containment. Must not be @c NULL.
- * @return true if the test condition is met
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_all(const i18n_uset_h set1, const i18n_uset_h set2);
-
-/**
- * @brief Returns true if this set contains all the characters of the given string.
- * @details This is does not check containment of grapheme
- * clusters, like i18n_uset_contains_string().
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set Set of characters to be checked for containment. Must not be @c NULL.
- * @param[in] str String containing codepoints to be checked for containment
- * @param[in] str_len The length of the string, >= 0, or -1 if NULL terminated.
- * @return true if the test condition is met.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_all_code_points(const i18n_uset_h set, const i18n_uchar *str, int32_t str_len);
-
-/**
- * @brief Returns true if set1 contains none of the characters and strings of set2.
- * @details It answers the question, 'Is set1 a disjoint set of set2?'
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set1 Set to be checked for containment. Must not be @c NULL.
- * @param[in] set2 Set to be checked for containment. Must not be @c NULL.
- * @return true if the test condition is met
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_none(const i18n_uset_h set1, const i18n_uset_h set2);
-
-/**
- * @brief Returns true if set1 contains some of the characters and strings of set2.
- * @details It answers the question, 'Does set1 and set2 have an intersection?'
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set1 Set to be checked for containment. Must not be @c NULL.
- * @param[in] set2 Set to be checked for containment. Must not be @c NULL.
- * @return true if the test condition is met
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_some(const i18n_uset_h set1, const i18n_uset_h set2);
-
-/**
- * @brief Returns the length of the initial substring of the input string which
- *               consists only of characters and strings that are contained in this set
- *               (#I18N_USET_SPAN_CONTAINED, #I18N_USET_SPAN_SIMPLE),
- *               or only of characters and strings that are not contained
- *               in this set (#I18N_USET_SPAN_NOT_CONTAINED).
- * @details See #i18n_uset_span_condition_e for details.
- *                     Similar to the strspn() C library function.
- *                     Unpaired surrogates are treated according to contains() of their surrogate code points.
- *                     This function works faster with a frozen set and with a non-negative string length argument.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set                              the set. Must not be @c NULL.
- * @param[in] str                              start of the input string.
- * @param[in] length                   length of the @a string; >= 0, can be @c -1 for NULL-terminated
- * @param[in] span_condition   specifies the containment condition
- *
- * @return The length of the initial substring according to the @a span_condition;
- *                @c 0 if the start of the string does not fit the @a span_condition
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_uset_span_condition_e
- */
-int32_t i18n_uset_span(const i18n_uset_h set, const i18n_uchar *str, int32_t length, i18n_uset_span_condition_e span_condition);
-
-/**
- * @brief Returns the start of the trailing substring of the input string which
- *               consists only of characters and strings that are contained in this set
- *               (#I18N_USET_SPAN_CONTAINED, #I18N_USET_SPAN_SIMPLE),
- *               or only of characters and strings that are not contained
- *               in this set (#I18N_USET_SPAN_NOT_CONTAINED).
- * @details See #i18n_uset_span_condition_e for details.
- *                     Unpaired surrogates are treated according to contains() of their surrogate code points.
- *                     This function works faster with a frozen set and with a non-negative string length argument.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set                              the set. Must not be @c NULL.
- * @param[in] str                              start of the input string
- * @param[in] length                   length of the @ string; >= 0, can be @c -1 for NULL-terminated
- * @param[in] span_condition   specifies the containment condition
- *
- * @return the start of the trailing substring according to the @a span_condition;
- *                the string length if the end of the string does not fit the @a span_condition
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_uset_span_condition_e
- */
-int32_t i18n_uset_span_back(const i18n_uset_h set, const i18n_uchar *str, int32_t length, i18n_uset_span_condition_e span_condition);
-
-/**
- * @brief Returns the length of the initial substring of the input string which
- *               consists only of characters and strings that are contained in this set
- *               (#I18N_USET_SPAN_CONTAINED, #I18N_USET_SPAN_SIMPLE),
- *               or only of characters and strings that are not contained
- *               in this set (#I18N_USET_SPAN_NOT_CONTAINED).
- * @details See #i18n_uset_span_condition_e for details.
- *                     Similar to the strspn() C library function.
- *                     Malformed byte sequences are treated according to contains(0xfffd).
- *                     This function works faster with a frozen set and with a non-negative string length argument.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set                              the set. Must not be @c NULL.
- * @param[in] str                              start of the string (UTF-8)
- * @param[in] length                   length of the string; >= 0, can be @c -1 for NULL-terminated
- * @param[in] span_condition   specifies the containment condition
- *
- * @return the length of the initial substring according to the @a span_condition;
- *                @c 0 if the start of the string does not fit the @a span_condition
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_uset_span_condition_e
- */
-int32_t i18n_uset_span_utf8(const i18n_uset_h set, const char *str, int32_t length, i18n_uset_span_condition_e span_condition);
-
-/**
- * @brief Returns the start of the trailing substring of the input string which
- *               consists only of characters and strings that are contained in this set
- *               (#I18N_USET_SPAN_CONTAINED, #I18N_USET_SPAN_SIMPLE),
- *               or only of characters and strings that are not contained
- *               in this set (#I18N_USET_SPAN_NOT_CONTAINED).
- * @details See #i18n_uset_span_condition_e for details.
- *                     Malformed byte sequences are treated according to contains(0xfffd).
- *                     This function works faster with a frozen set and with a non-negative string length argument.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set                              the set. Must not be @c NULL.
- * @param[in] str                              start of the string (UTF-8)
- * @param[in] length                   length of the string; >= 0, can be @c -1 for NULL-terminated
- * @param[in] span_condition   specifies the containment condition
- *
- * @return the start of the trailing substring according to the @a span_condition;
- *                the string length if the end of the string does not fit the @a span_condition
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_uset_span_condition_e
- */
-int32_t i18n_uset_span_back_utf8(const i18n_uset_h set, const char *str, int32_t length, i18n_uset_span_condition_e span_condition);
-
-/**
- * @brief Returns true if set1 contains all of the characters and strings
- * of set2, and vice versa. It answers the question, 'Is set1 equal to set2?'
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set1 Set to be checked for containment. Must not be @c NULL.
- * @param[in] set2 Set to be checked for containment. Must not be @c NULL.
- * @return true if the test condition is met
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_equals(const i18n_uset_h set1, const i18n_uset_h set2);
-
-/*********************************************************************
- * Serialized set API
- *********************************************************************/
-
-/**
- * @brief Serializes this @a set into an array of 16-bit integers.
- * @details Serialization (currently) only records the characters in the set;
- *                     multicharacter strings are ignored.
- *
- *                     The array has following format (each line is one 16-bit integer):
- *
- *                     length     = (n+2*m) | (m!=0?0x8000:0)
- *                     bmpLength  = n;
- *                     present if m!=0
- *                     bmp[0]
- *                     bmp[1]
- *                     ...
- *                     bmp[n-1]
- *                     supp-high[0]
- *                     supp-low[0]
- *                     supp-high[1]
- *                     supp-low[1]
- *                     ...
- *                     supp-high[m-1]
- *                     supp-low[m-1]
- *
- *                     The array starts with a header. After the header are n bmp
- *                     code points, then m supplementary code points. Either n or m
- *                     or both may be zero. n+2*m is always <= 0x7FFF.
- *
- *                     If there are no supplementary characters (if m==0) then the
- *                     header is one 16-bit integer, 'length', with value n.
- *
- *                     If there are supplementary characters (if m!=0) then the header
- *                     is two 16-bit integers. The first, 'length', has value
- *                     (n+2*m)|0x8000.  The second, 'bmpLength', has value n.
- *
- *                     After the header the code points are stored in ascending order.
- *                     Supplementary code points are stored as most significant 16
- *                     bits followed by least significant 16 bits.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section and in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] set                              the set. Must not be @c NULL.
- * @param[out] dest                            pointer to buffer of @a dest_capacity 16-bit integers
- *                                                             May be NULL only if @a dest_capacity is zero.
- * @param[in] dest_capacity            size of @a dest, or zero
- *                                                             Must not be negative.
- *
- * @return the total length of the serialized format, including
- *                the header, that is, <code>n+2*m+(m != 0 ? 2 : 1)</code>,
- *                or @c 0 on error other than #I18N_ERROR_BUFFER_OVERFLOW.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_ERROR_INDEX_OUTOFBOUNDS If <code>n+2*m > 0x7FFF</code>
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If <code>n+2*m+(m != 0 ? 2 : 1) > dest_capacity</code>.
- */
-int32_t i18n_uset_serialize(const i18n_uset_h set, uint16_t *dest, int32_t dest_capacity);
-
-/**
- * @brief Given a serialized array, fill in the given serialized set object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] src                      pointer to start of array. Must not be @c NULL.
- * @param[in] src_length       length of @a src array, >= 0.
- * @param[out] fill_set                the serialized set to be filled
- *
- * @return @c true if the given array is valid, otherwise @c false
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_userialized_set_s
- */
-i18n_ubool i18n_uset_get_serialized_set(const uint16_t *src, int32_t src_length, i18n_userialized_set_s *fill_set);
-
-/**
- * @brief Sets the #i18n_userialized_set_s to contain the given @a character (and nothing else).
- * @since_tizen 2.3.1
- *
- * @param[in] character                the code point to set
- * @param[out] fill_set                the serialized set to be filled
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_userialized_set_s
- */
-int i18n_uset_set_serialized_to_one(i18n_uchar32 character, i18n_userialized_set_s *fill_set);
-
-/**
- * @brief Returns @c true if the given #i18n_userialized_set_s contains the given @a character.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set                      the serialized set. Must not be @c NULL.
- * @param[in] character                the code point to check for within the @a set
- *
- * @return @c true if @a set contains @a character
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see #i18n_userialized_set_s
- */
-i18n_ubool i18n_uset_serialized_contains(const i18n_userialized_set_s *set, i18n_uchar32 character);
-
-/**
- * @brief Returns the number of disjoint ranges of characters contained in
- * the given serialized set.
- * @details Ignores any strings contained in the set.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The serialized set. Must not be @c NULL.
- * @return A non-negative integer counting the character ranges contained in set
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see #i18n_userialized_set_s
- */
-int32_t i18n_uset_get_serialized_range_count(const i18n_userialized_set_s *set);
-
-/**
- * @brief Returns a range of characters contained in the given serialized set.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *                     Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The serialized set. Must not be @c NULL.
- * @param[in] range_index A non-negative integer in the range 0..
- * i18n_uset_get_serialized_range_count(set)-1
- * @param[out] p_start Pointer to variable to receive first character
- * in range, inclusive
- * @param[out] p_end Pointer to variable to receive last character in range,
- * inclusive
- * @return true if range_index is valid, otherwise false
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see #i18n_userialized_set_s
- */
-i18n_ubool i18n_uset_get_serialized_range(const i18n_userialized_set_s *set, int32_t range_index, i18n_uchar32 *p_start, i18n_uchar32 *p_end);
-
-/**
- * @}
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
similarity index 99%
rename from src/include/mobile/utils_i18n.h
rename to src/include/utils_i18n.h
index aedf168..771a8cb 100644 (file)
@@ -65,7 +65,7 @@ extern "C" {
  *   <td>Unicode 6.2</td>
  *  </tr>
  *  <tr>
- *   <td>Tizen 3.0</td>
+ *   <td>Tizen 2.3.2, 3.0</td>
  *   <td>ICU 57</td>
  *   <td>CLDR 29</td>
  *   <td>Unicode 8.0</td>
@@ -2215,6 +2215,11 @@ extern "C" {
  * </tr>
  * <tr>
  *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
+ *       <td>#i18n_measure_unit_create_mile_per_gallon_imperial</td>
+ *       <td>createMilePerGallonImperial</td>
+ * </tr>
+ * <tr>
+ *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
  *       <td>#i18n_measure_unit_create_bit</td>
  *       <td>createBit</td>
  * </tr>
similarity index 96%
rename from src/include/mobile/utils_i18n_alpha_idx.h
rename to src/include/utils_i18n_alpha_idx.h
index b3f3022..fabfc7c 100644 (file)
@@ -62,7 +62,7 @@ extern "C" {
  *          exemplar characters. The locale determines the sorting order
  *          for both the index characters and the user item names appearing
  *          under each Index character.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          #i18n_alpha_idx_destroy() function.
  *
@@ -80,7 +80,7 @@ int i18n_alpha_idx_create(const char *language, const char *country,
 
 /**
  * @brief Destroys the alphabetic index object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index  The alphabetic index to be destroyed
  *
@@ -96,7 +96,7 @@ int i18n_alpha_idx_destroy(i18n_alpha_idx_h index);
  *          they do not replace the existing index characters. The collation
  *          order for this index is not changed; it remains that of the locale
  *          that was originally specified when creating this Index.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index     Label will be added to this alphabetic index
  * @param[in] language  The language of the locale
@@ -117,7 +117,7 @@ int i18n_alpha_idx_add_labels(i18n_alpha_idx_h index, const char *language,
  *          of the names in the index's locale. Records with duplicate
  *          names are permitted; they will be kept in the order that
  *          they were added.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index  Record will be added to this alphabetic index
  * @param[in] name   The display name for the record.
@@ -133,7 +133,7 @@ int i18n_alpha_idx_add_record(i18n_alpha_idx_h index, const char *name,
 
 /**
  * @brief Sets the next bucket as current bucket in the index.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index       The alphabetic index, which contains buckets
  * @param[out] available  A flag set to @c true if the next bucket was available,
@@ -151,7 +151,7 @@ int i18n_alpha_idx_get_next_bucket(i18n_alpha_idx_h index, bool *available);
  * @brief Sets the next record as current record in current bucket of the index.
  * @details When i18n_alpha_idx_get_next_bucket() is called, record iteration is reset
  *          to just before the first record in the new bucket.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index       The alphabetic index, which contains buckets with records
  * @param[out] available  A flag set to @c true if the next record was available,
@@ -169,7 +169,7 @@ int i18n_alpha_idx_get_next_record(i18n_alpha_idx_h index, bool *available);
  * @brief Gets the number of <name, data> records in the current bucket.
  * @details If the current bucket iteration position is before the first
  *          label or after the last, return 0.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index           The alphabetic index, which contains buckets with records
  * @param[out] records_count  Number of <name, data> records in the current bucket
@@ -185,7 +185,7 @@ int i18n_alpha_idx_get_bucket_record_count(i18n_alpha_idx_h index, int32_t *reco
  * @details If the iteration is before the first Bucket
  *          (i18n_alpha_idx_get_next_bucket() has not been called),
  *          or after the last, return an empty string.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained @a label should be released by the caller with the free() function.
  *
  * @param[in] index   The alphabetic index, which contains buckets
@@ -204,7 +204,7 @@ int i18n_alpha_idx_get_bucket_label(i18n_alpha_idx_h index, char **label);
  *          - the current iteration position is before the first item in this Bucket,
  *            or after the last,
  *          - the given @a index parameter is invalid.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The specific error code can be obtained using the get_last_result() method.
  *          Error codes are described in Exceptions section.
  *
@@ -220,7 +220,7 @@ const void *i18n_alpha_idx_get_record_data(i18n_alpha_idx_h index);
  * @brief Gets the default label used for abbreviated buckets between other index characters.
  * @details For example, consider the labels when Latin and Greek are used:
  *          X Y Z ... &\#x0391; &\#x0392; &\#x0393;
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained @a label should be released by the caller with the free() function.
  *
  * @param[in] index  The alphabetic index, which contains buckets with records
@@ -238,7 +238,7 @@ int i18n_alpha_idx_get_inflow_label(i18n_alpha_idx_h index, char **label);
  * @details An inflow label will be automatically inserted if two otherwise-adjacent label characters
  *          are from different scripts, e.g. Latin and Cyrillic, and a third script,
  *          e.g. Greek, sorts between the two. The default inflow character is an ellipsis (...)
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index  The alphabetic index, which contains buckets with records
  * @param[in] label  The new inflow label
@@ -252,7 +252,7 @@ int i18n_alpha_idx_set_inflow_label(i18n_alpha_idx_h index, const char *label);
 /**
  * @brief Gets the special label used for items that sort after the last normal label,
  *        and that would not otherwise have an appropriate label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained @a label should be released by the caller with the free() function.
  *
  * @param[in] index   The alphabetic index, which contains buckets with records
@@ -268,7 +268,7 @@ int i18n_alpha_idx_get_overflow_label(i18n_alpha_idx_h index, char **label);
 /**
  * @brief Sets the special label used for items that sort after the last normal label,
  *        and that would not otherwise have an appropriate label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index  The alphabetic index, which contains buckets with records
  * @param[in] label  The new overflow label
@@ -282,7 +282,7 @@ int i18n_alpha_idx_set_overflow_label(i18n_alpha_idx_h index, const char *label)
 /**
  * @brief Gets the special label used for items that sort before the first normal label,
  *        and that would not otherwise have an appropriate label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained @a label should be released by the caller with the free() function.
  *
  * @param[in] index   The alphabetic index, which contains buckets with records
@@ -298,7 +298,7 @@ int i18n_alpha_idx_get_underflow_label(i18n_alpha_idx_h index, char **label);
 /**
  * @brief Sets the special label used for items that sort before the first normal label,
  *        and that would not otherwise have an appropriate label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index  The alphabetic index, which contains buckets with records
  * @param[in] label  The new underflow label
@@ -312,7 +312,7 @@ int i18n_alpha_idx_set_underflow_label(i18n_alpha_idx_h index, const char *label
 /**
  * @brief Gets the limit on the number of labels permitted in the index.
  * @details The number does not include over, under and inflow labels.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index             The alphabetic index, which contains buckets with records
  * @param[out] max_label_count  The maximum number of labels
@@ -329,7 +329,7 @@ int i18n_alpha_idx_get_max_label_count(i18n_alpha_idx_h index, int32_t *max_labe
  *          Currently, if the number is exceeded, then every nth item
  *          is removed to bring the count down. A more sophisticated
  *          mechanism may be available in the future.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index            The alphabetic index, which contains buckets with records
  * @param[in] max_label_count  The new maximum number of labels
@@ -344,7 +344,7 @@ int i18n_alpha_idx_set_max_label_count(i18n_alpha_idx_h index, int32_t max_label
  * @brief Remove all records from the index.
  * @details The set of Buckets, which define the headings under which records are classified,
  *          is not altered.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index  The alphabetic index, which contains buckets with records
  *
@@ -356,7 +356,7 @@ int i18n_alpha_idx_clear_records(i18n_alpha_idx_h index);
 
 /**
  * @brief Gets the number of labels in this index.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks Note: may trigger lazy index construction.
  *
  * @param[in] index          The alphabetic index, which contains buckets with records
@@ -372,7 +372,7 @@ int i18n_alpha_idx_get_bucket_count(i18n_alpha_idx_h index, int32_t *bucket_coun
 /**
  * @brief Gets the total number of records in this index, that is, the number of
  *        <name, data> pairs added.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index         The alphabetic index, which contains buckets with records
  * @param[out] record_count The number of records in this index, that is,
@@ -391,7 +391,7 @@ int i18n_alpha_idx_get_record_count(i18n_alpha_idx_h index, int32_t *record_coun
  * @details The name need not be in the index.
  *          A Record will not be added to the index by this function.
  *          Bucket numbers are zero-based, in Bucket iteration order.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index          The alphabetic index, which contains buckets with records
  * @param[in] item_name      The name whose bucket position in the index is to be determined
@@ -407,7 +407,7 @@ int i18n_alpha_idx_get_bucket_index(i18n_alpha_idx_h index, const char *item_nam
  * @brief Gets the zero based index of the current bucket of this index.
  * @details Sets the variable pointed by the @a bucket_index to -1 if no iteration
  *          is in process.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index          The alphabetic index, which contains buckets with records
  * @param[out] bucket_index  The index of the current Bucket
@@ -421,7 +421,7 @@ int i18n_alpha_idx_get_current_bucket_index(i18n_alpha_idx_h index, int32_t *buc
 /**
  * @brief Gets the type of the label for the current Bucket
  *        (selected by the iteration over Buckets).
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index  The alphabetic index, which contains buckets with records
  * @param[out] type  The alphabetic index label type
@@ -438,7 +438,7 @@ int i18n_alpha_idx_get_bucket_label_type(i18n_alpha_idx_h index,
  * @details If the Record iteration position is before the first or after the last record,
  *          sets the string pointed by the @a record_name parameter to NULL and returns
  *          the #I18N_ERROR_INDEX_OUTOFBOUNDS error code.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained @a record_name should be released by the caller with the free() function.
  *
  * @param[in] index        The alphabetic index, which contains buckets with records
@@ -455,7 +455,7 @@ int i18n_alpha_idx_get_record_name(i18n_alpha_idx_h index, char **record_name);
 /**
  * @brief Resets the bucket iteration for this index.
  * @details The next call to i18n_alpha_idx_get_next_bucket() will restart the iteration at the first label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index  The alphabetic index, which contains buckets with records
  *
@@ -468,7 +468,7 @@ int i18n_alpha_idx_reset_bucket_iter(i18n_alpha_idx_h index);
 /**
  * @brief Resets the record iteration for this index to before the first Record in the current Bucket.
  * @details The next call to i18n_alpha_idx_get_next_record() will restart the iteration at the first label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] index  The alphabetic index, which contains buckets with records
  *
similarity index 96%
rename from src/include/mobile/utils_i18n_field_position.h
rename to src/include/utils_i18n_field_position.h
index 0fe580c..b3911f8 100644 (file)
@@ -55,7 +55,7 @@ extern "C" {
 
 /**
  * @brief Creates a field position object with a non-specified field.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          i18n_field_position_destroy() function.
  *
@@ -72,7 +72,7 @@ int i18n_field_position_create(i18n_field_position_h *field_position);
  * @brief Creates a field position object for the given field.
  * @details The only fields currently supported are the fields accepted by the date formatter,
  *             see #i18n_udate_format_field_e.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          i18n_field_position_destroy() function.
  *
@@ -88,7 +88,7 @@ int i18n_field_position_create_for_field(int32_t field, i18n_field_position_h *f
 
 /**
  * @brief Destroys the field position object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] field_position  The field position object to destroy
  *
@@ -100,7 +100,7 @@ int i18n_field_position_destroy(i18n_field_position_h field_position);
 
 /**
  * @brief Creates a clone of the given @a field_position object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The @a clone object should be released by the caller with the
  *          i18n_field_position_destroy() function.
  *
@@ -116,7 +116,7 @@ int i18n_field_position_clone(i18n_field_position_h field_position, i18n_field_p
 
 /**
  * @brief Retrieves the field identifier.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in]  field_position  The field_position object
  * @param[out] field           The field identifier
@@ -129,7 +129,7 @@ int i18n_field_position_get_field(i18n_field_position_h field_position, int32_t
 
 /**
  * @brief Retrieves the index of the first character in the requested field.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in]  field_position  The field position object
  * @param[out] begin_index     The index of the first character in the requested field
@@ -142,7 +142,7 @@ int i18n_field_position_get_begin_index(i18n_field_position_h field_position, in
 
 /**
  * @brief Retrieves the index of the character following the last character in the requested field.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in]  field_position  The field position object
  * @param[out] end_index       The index of the character following the last character
@@ -156,7 +156,7 @@ int i18n_field_position_get_end_index(i18n_field_position_h field_position, int3
 
 /**
  * @brief Sets the field.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] field_position  The field_position object
  * @param[in] field           The new value of the field
@@ -169,7 +169,7 @@ int i18n_field_position_set_field(i18n_field_position_h field_position, int32_t
 
 /**
  * @brief Sets the begin index.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] field_position  The field_position object
  * @param[in] begin_index     The new value of the begin index
@@ -182,7 +182,7 @@ int i18n_field_position_set_begin_index(i18n_field_position_h field_position, in
 
 /**
  * @brief Sets the end index.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] field_position  The field_position object
  * @param[in] end_index       The new value of the end index
similarity index 97%
rename from src/include/wearable/utils_i18n_format.h
rename to src/include/utils_i18n_format.h
index 66231e7..fdc9d3b 100644 (file)
@@ -56,7 +56,7 @@ extern "C" {
 
 /**
  * @brief Destroys the format object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] format  The format object to destroy
  *
@@ -68,7 +68,7 @@ int i18n_format_destroy(i18n_format_h format);
 
 /**
  * @brief Creates a polymorphic clone of the given @a format object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The cloned object should be released by the caller with the
  *          i18n_format_destroy() function.
  *
@@ -84,7 +84,7 @@ int i18n_format_clone(i18n_format_h format, i18n_format_h *clone);
 
 /**
  * @brief Formats an object to produce a string.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The @a append_to parameter should be released by the caller with the
  *          free() function.
  *
@@ -102,7 +102,7 @@ int i18n_format_format(i18n_format_h format, i18n_formattable_h formattable, cha
 
 /**
  * @brief Formats an object to produce a string.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The @a append_to parameter should be released by the caller with the
  *          free() function.
  *
@@ -122,7 +122,7 @@ int i18n_format_format_with_field_position(i18n_format_h format, i18n_formattabl
 
 /**
  * @brief Parses a string to produce an object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained @a result formattable object should be released by the caller with the
  *          i18n_formattable_destroy() function.
  *
@@ -139,7 +139,7 @@ int i18n_format_parse_object(i18n_format_h format, const char *source, i18n_form
 
 /**
  * @brief Parses a string to produce an object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained @a result formattable object should be released by the caller with the
  *          i18n_formattable_destroy() function.
  *
@@ -160,7 +160,7 @@ int i18n_format_parse_object_with_parse_position(i18n_format_h format, const cha
 /**
  * @brief Gets the locale for the given format object.
  * @details You can choose between valid and actual locale.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks Both @a language and @a country should be released by the caller with the free() function.
  *
  * @param[in] format     The format object
similarity index 96%
rename from src/include/mobile/utils_i18n_formattable.h
rename to src/include/utils_i18n_formattable.h
index b8e3286..1479c40 100644 (file)
@@ -53,7 +53,7 @@ extern "C" {
 
 /**
  * @brief Creates a new default #i18n_formattable_h.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          #i18n_formattable_destroy() function.
  *
@@ -69,7 +69,7 @@ int i18n_formattable_create_default(i18n_formattable_h *formattable);
 
 /**
  * @brief Creates a new #i18n_formattable_h handle with an #i18n_udate instance.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          #i18n_formattable_destroy() function.
  *
@@ -86,7 +86,7 @@ int i18n_formattable_create_with_udate(i18n_udate date, i18n_formattable_h *form
 
 /**
  * @brief Creates a new #i18n_formattable_h handle with a double value.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          #i18n_formattable_destroy() function.
  *
@@ -103,7 +103,7 @@ int i18n_formattable_create_with_double(double value, i18n_formattable_h *format
 
 /**
  * @brief Creates a new #i18n_formattable_h handle with a long value.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          #i18n_formattable_destroy() function.
  *
@@ -120,7 +120,7 @@ int i18n_formattable_create_with_long(int32_t value, i18n_formattable_h *formatt
 
 /**
  * @brief Creates a new #i18n_formattable_h handle with an int64_t value.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          #i18n_formattable_destroy() function.
  *
@@ -138,7 +138,7 @@ int i18n_formattable_create_with_int64(int64_t value, i18n_formattable_h *format
 /**
  * @brief Creates a new #i18n_formattable_h handle with a char string pointer.
  * @details Assumes that the char string is null terminated.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          #i18n_formattable_destroy() function.
  *
@@ -156,7 +156,7 @@ int i18n_formattable_create_with_char_string(const char *str_to_copy, i18n_forma
 /**
  * @brief Creates a new #i18n_formattable_h handle with an array of
  *        #i18n_formattable_h handles.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          #i18n_formattable_destroy() function.
  *
@@ -174,7 +174,7 @@ int i18n_formattable_create_with_formattable_array(const i18n_formattable_h *arr
 
 /**
  * @brief Releases the given #i18n_formattable_h handle.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable  A handle to the formattable object to be released
  *
@@ -187,7 +187,7 @@ int i18n_formattable_destroy(i18n_formattable_h formattable);
 /**
  * @brief Clones the given formattable handle with the related object to the
  *        @a clone handle.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @details Clones can be used concurrently in multiple threads.
  * @remarks The cloned object should be released by the caller with the
  *          #i18n_formattable_destroy() function.
@@ -205,7 +205,7 @@ int i18n_formattable_clone(i18n_formattable_h formattable, i18n_formattable_h *c
 
 /**
  * @brief Gets the array value and count of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_ARRAY then the
  *          result is undefined. The obtained array should be released by the
  *          caller with the free() function.
@@ -223,7 +223,7 @@ int i18n_formattable_get_array(i18n_formattable_h formattable, i18n_formattable_
 
 /**
  * @brief Gets the date value of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_DATE then the
  *          result is undefined.
  *
@@ -239,7 +239,7 @@ int i18n_formattable_get_date(i18n_formattable_h formattable, i18n_udate *date);
 
 /**
  * @brief Gets the double value of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_DOUBLE then the
  *          result is undefined.
  *
@@ -255,7 +255,7 @@ int i18n_formattable_get_double(i18n_formattable_h formattable, double *value);
 
 /**
  * @brief Gets the int64 value of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_INT64 then the
  *          result is undefined.
  *
@@ -275,7 +275,7 @@ int i18n_formattable_get_int64(i18n_formattable_h formattable, int64_t *value);
  *          minimum long value, as appropriate, is set to @a value
  *          and the #I18N_ERROR_INVALID_FORMAT error code is returned by the
  *          function.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable   A handle to the formattable object
  * @param[out] value        A pointer to a int32_t variable which will be filled
@@ -289,7 +289,7 @@ int i18n_formattable_get_long(i18n_formattable_h formattable, int32_t *value);
 
 /**
  * @brief Gets the string value of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks If the type is not a string, the function returns the
  *          #I18N_ERROR_INVALID_FORMAT error code and the value is set to @c
  *          NULL. The @a value should be released by the caller with the free() function.
@@ -309,7 +309,7 @@ int i18n_formattable_get_string(i18n_formattable_h formattable, char **value);
 
 /**
  * @brief Gets the data type of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable  A handle to the formattable object
  * @param[out] type        A pointer to an #i18n_formattable_type_e variable which
@@ -326,7 +326,7 @@ int i18n_formattable_get_type(i18n_formattable_h formattable, i18n_formattable_t
  * @brief Sets the variable pointed by the @a is_numeric pointer to @c true if
  *        the data type of the given formattable object is #I18N_FORMATTABLE_TYPE_DOUBLE,
  *        #I18N_FORMATTABLE_TYPE_LONG or #I18N_FORMATTABLE_TYPE_INT64.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable  A handle to the formattable object
  * @param[out] is_numeric  A pointer to a boolean variable which will be filled by
@@ -342,7 +342,7 @@ int i18n_formattable_is_numeric(i18n_formattable_h formattable, bool *is_numeric
  * @brief Sets the variable pointed by the @a not_equal pointer to @c true if
  *        the given @a formattable object is not equal to the given @a other
  *        formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable  A handle to the formattable object
  * @param[in] other        A handle to the other formattable object
@@ -359,7 +359,7 @@ int i18n_formattable_not_equal(i18n_formattable_h formattable, i18n_formattable_
  * @brief Sets the variable pointed by the @a equal pointer to @c true if the
  *        given @a formattable object is equal to the given @a other
  *        formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable  A handle to the formattable object
  * @param[in] other        A handle to the other formattable object
@@ -376,7 +376,7 @@ int i18n_formattable_equal(i18n_formattable_h formattable, i18n_formattable_h ot
  * @brief Sets the object pointed by the @a element pointer to the element at
  *        the @a index position in the array stored by the given formattable
  *        object (if its type is #I18N_FORMATTABLE_TYPE_ARRAY).
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_ARRAY then the
  *          result is undefined.
  *
@@ -400,7 +400,7 @@ int i18n_formattable_element_at(i18n_formattable_h formattable, int32_t index, i
 /**
  * @brief Sets the array value and count of the given formattable object and
  *        changes the type to #I18N_FORMATTABLE_TYPE_ARRAY.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable  A handle to the formattable object
  * @param[in] array        An array of handles to the formattable objects
@@ -415,7 +415,7 @@ int i18n_formattable_set_array(i18n_formattable_h formattable, const i18n_format
 /**
  * @brief Sets the date value of the given formattable object and changes the
  *        type to the #I18N_FORMATTABLE_TYPE_DATE.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable  A handle to the formattable object
  * @param[in] date         The new i18n_udate value to be set
@@ -429,7 +429,7 @@ int i18n_formattable_set_date(i18n_formattable_h formattable, i18n_udate date);
 /**
  * @brief Sets the double value of the given formattable object and changes
  *        the type to the #I18N_FORMATTABLE_TYPE_DOUBLE.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable  A handle to the formattable object
  * @param[in] value        The new double value to be set
@@ -443,7 +443,7 @@ int i18n_formattable_set_double(i18n_formattable_h formattable, double value);
 /**
  * @brief Sets the int64 value of the given formattable object and changes the
  *        type to the #I18N_FORMATTABLE_TYPE_INT64.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable  A handle to the formattable object
  * @param[in] value        The new int64_t value to be set
@@ -457,7 +457,7 @@ int i18n_formattable_set_int64(i18n_formattable_h formattable, int64_t value);
 /**
  * @brief Sets the long value of the given formattable object and changes the
  *        type to the #I18N_FORMATTABLE_TYPE_LONG.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable  A handle to the formattable object
  * @param[in] value        The new int32_t value to be set
@@ -471,7 +471,7 @@ int i18n_formattable_set_long(i18n_formattable_h formattable, int32_t value);
 /**
  * @brief Sets the string value of the given formattable object and changes
  *        the type to the #I18N_FORMATTABLE_TYPE_STRING.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] formattable     A handle to the formattable object
  * @param[in] string_to_copy  The new string value to be set
similarity index 96%
rename from src/include/mobile/utils_i18n_measure.h
rename to src/include/utils_i18n_measure.h
index 06afc64..f9c3f37 100644 (file)
@@ -48,7 +48,7 @@ extern "C" {
 /**
  * @brief Creates an object with the given numeric amount and the given unit.
  * @details After this call, the caller must not delete the given measure unit object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          #i18n_measure_destroy() function.
  *
@@ -66,7 +66,7 @@ int i18n_measure_create(const i18n_formattable_h formattable, i18n_measure_unit_
 
 /**
  * @brief Creates a polymorphic clone of the given @a clone object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The @c clone object should be released by the caller with the
  *          #i18n_measure_destroy() function.
  *
@@ -82,7 +82,7 @@ int i18n_measure_clone(i18n_measure_h measure, i18n_measure_h *clone);
 
 /**
  * @brief Destroys the measure object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] measure  The measure object to destroy
  *
@@ -94,7 +94,7 @@ int i18n_measure_destroy(i18n_measure_h measure);
 
 /**
  * @brief Gets a reference to the numeric value of the measure object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained formattable object should be released by the caller
  *          with the #i18n_formattable_destroy() function.
  *
@@ -110,7 +110,7 @@ int i18n_measure_get_number(i18n_measure_h measure, i18n_formattable_h *formatta
 
 /**
  * @brief Gets a reference to the unit of the measure object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained measure unit object should be released by the caller
  *          with the #i18n_measure_unit_destroy() function.
  *
similarity index 97%
rename from src/include/mobile/utils_i18n_measure_format.h
rename to src/include/utils_i18n_measure_format.h
index 827699f..a39ebcc 100644 (file)
@@ -47,7 +47,7 @@ extern "C" {
 
 /**
  * @brief Creates the measure format object using given locale.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          i18n_measure_format_destroy() function.
  *
@@ -66,7 +66,7 @@ int i18n_measure_format_create(const char *language, const char *country,
 
 /**
  * @brief Destroys the measure format object
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] measure_format  The measure format object to destroy
  *
@@ -78,7 +78,7 @@ int i18n_measure_format_destroy(i18n_measure_format_h measure_format);
 
 /**
  * @brief Creates a polymorphic clone of the given @a measure_format object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The @a clone object should be released by the caller with the
  *          i18n_measure_format_destroy() function.
  *
@@ -94,7 +94,7 @@ int i18n_measure_format_clone(i18n_measure_format_h measure_format, i18n_format_
 
 /**
  * @brief Formats an object to produce a string.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained @a append_to string is actually a concatenation of the given input string and
  *          the result of the function (appended to the string). Actually, the @a append_to
  *          buffer is being reallocated inside the function which means that the buffer is not
@@ -118,7 +118,7 @@ int i18n_measure_format_format(i18n_measure_format_h measure_format, i18n_format
 
 /**
  * @brief Parses a string to produce an object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained @a result object should be released by the caller
  *          with the i18n_formattable_destroy() function.
  *
@@ -141,7 +141,7 @@ int i18n_measure_format_parse_object(i18n_measure_format_h measure_format, const
 
 /**
  * @brief Gets a formatter for currency amount objects in the given locale.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          i18n_measure_format_destroy() function.
  *
@@ -158,7 +158,7 @@ int i18n_measure_format_create_currency_format_from_locale(const char *language,
 
 /**
  * @brief Gets a formatter for currency amount objects in the default locale.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          i18n_measure_format_destroy() function.
  *
similarity index 94%
rename from src/include/wearable/utils_i18n_measure_unit.h
rename to src/include/utils_i18n_measure_unit.h
index 301c28d..dd7c6d2 100644 (file)
@@ -47,7 +47,7 @@ extern "C" {
 
 /**
  * @brief Creates the default measure unit object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          #i18n_measure_unit_destroy() function.
  *
@@ -62,7 +62,7 @@ int i18n_measure_unit_create(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Creates a polymorphic clone of the given @a clone object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          #i18n_measure_unit_destroy() function.
  *
@@ -78,7 +78,7 @@ int i18n_measure_unit_clone(i18n_measure_unit_h measure_unit, i18n_measure_unit_
 
 /**
  * @brief Destroys the measure unit object
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] measure_unit  The measure unit object to destroy
  *
@@ -90,7 +90,7 @@ int i18n_measure_unit_destroy(i18n_measure_unit_h measure_unit);
 
 /**
  * @brief Destroys the given array of the measure unit objects
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] array       The array of measure unit objects to destroy
  * @param[in] array_size  The capacity of the @a dest_array
@@ -103,7 +103,7 @@ int i18n_measure_unit_array_destroy(i18n_measure_unit_h *array, int32_t array_si
 
 /**
  * @brief Gets the measure unit object type.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained type should be released by the caller with the free() function.
  *
  * @param[in]  measure_unit  The measure unit object
@@ -118,7 +118,7 @@ int i18n_measure_unit_get_type(i18n_measure_unit_h measure_unit, char **type);
 
 /**
  * @brief Gets the measure unit object sub type.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained subtype should be released by the caller with the free() function.
  *
  * @param[in]  measure_unit  The measure unit object
@@ -138,7 +138,7 @@ int i18n_measure_unit_get_subtype(i18n_measure_unit_h measure_unit, char **subty
  *          then the returned array is truncated to the first @a max_count units
  *          and the returned error code is #I18N_ERROR_BUFFER_OVERFLOW.
  *
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained array of measure unit objects should be released by the caller
  *          with the #i18n_measure_unit_array_destroy() function.
  *
@@ -161,7 +161,7 @@ int i18n_measure_unit_get_available(int32_t max_count, i18n_measure_unit_h **out
  *          then the returned array is truncated to the first @a max_count units
  *          and the returned error code is #I18N_ERROR_BUFFER_OVERFLOW.
  *
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The obtained array of measure unit objects should be released by the caller
  *          with the #i18n_measure_unit_array_destroy() function.
  *
@@ -181,7 +181,7 @@ int i18n_measure_unit_get_available_with_type(int32_t max_count, const char *typ
 
 /**
  * @brief Invokes the given callback function for every available measure unit type.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] cb         The callback function invoked for every available measure unit type
  * @param[in] user_data  The user data passed to the callback function
@@ -194,7 +194,7 @@ int i18n_measure_unit_foreach_available_type(i18n_measure_unit_types_cb cb, void
 
 /**
  * @brief Gets unit of acceleration: g-force.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -209,7 +209,7 @@ int i18n_measure_unit_create_g_force(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of acceleration: meter-per-second-squared.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -224,7 +224,7 @@ int i18n_measure_unit_create_meter_per_second_squared(i18n_measure_unit_h *measu
 
 /**
  * @brief Gets unit of angle: arc-minute.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -239,7 +239,7 @@ int i18n_measure_unit_create_arc_minute(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of angle: arc-second.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -254,7 +254,7 @@ int i18n_measure_unit_create_arc_second(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of angle: degree.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -269,7 +269,7 @@ int i18n_measure_unit_create_degree(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of angle: radian.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -284,7 +284,7 @@ int i18n_measure_unit_create_radian(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of angle: acre.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -299,7 +299,7 @@ int i18n_measure_unit_create_acre(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of angle: hectare.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -314,7 +314,7 @@ int i18n_measure_unit_create_hectare(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit area: square-centimeter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -329,7 +329,7 @@ int i18n_measure_unit_create_square_centimeter(i18n_measure_unit_h *measure_unit
 
 /**
  * @brief Gets unit area: square-foot.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -344,7 +344,7 @@ int i18n_measure_unit_create_square_foot(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit area: square-inch.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -359,7 +359,7 @@ int i18n_measure_unit_create_square_inch(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit area: square-kilometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -374,7 +374,7 @@ int i18n_measure_unit_create_square_kilometer(i18n_measure_unit_h *measure_unit)
 
 /**
  * @brief Gets unit area: square-meter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -389,7 +389,7 @@ int i18n_measure_unit_create_square_meter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit area: square-mile.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -404,7 +404,7 @@ int i18n_measure_unit_create_square_mile(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit area: square-yard.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -419,7 +419,7 @@ int i18n_measure_unit_create_square_yard(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of consumption: liter-per-kilometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -434,7 +434,7 @@ int i18n_measure_unit_create_liter_per_kilometer(i18n_measure_unit_h *measure_un
 
 /**
  * @brief Gets unit of consumption: mile-per-gallon.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -449,7 +449,7 @@ int i18n_measure_unit_create_mile_per_gallon(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of digital: bit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -464,7 +464,7 @@ int i18n_measure_unit_create_bit(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of digital: byte.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -479,7 +479,7 @@ int i18n_measure_unit_create_byte(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of digital: gigabit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -494,7 +494,7 @@ int i18n_measure_unit_create_gigabit(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of digital: gigabyte.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -509,7 +509,7 @@ int i18n_measure_unit_create_gigabyte(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of digital: kilobit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -524,7 +524,7 @@ int i18n_measure_unit_create_kilobit(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of digital: kilobyte.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -539,7 +539,7 @@ int i18n_measure_unit_create_kilobyte(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of digital: megabit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -554,7 +554,7 @@ int i18n_measure_unit_create_megabit(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of digital: megabyte.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -569,7 +569,7 @@ int i18n_measure_unit_create_megabyte(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of digital: terabit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -584,7 +584,7 @@ int i18n_measure_unit_create_terabit(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of digital: terabyte.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -599,7 +599,7 @@ int i18n_measure_unit_create_terabyte(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of duration: day.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -614,7 +614,7 @@ int i18n_measure_unit_create_day(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of duration: hour.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -629,7 +629,7 @@ int i18n_measure_unit_create_hour(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of duration: microsecond.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -644,7 +644,7 @@ int i18n_measure_unit_create_microsecond(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of duration: millisecond.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -659,7 +659,7 @@ int i18n_measure_unit_create_millisecond(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of duration: minute.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -674,7 +674,7 @@ int i18n_measure_unit_create_minute(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of duration: month.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -689,7 +689,7 @@ int i18n_measure_unit_create_month(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of duration: nanosecond.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -704,7 +704,7 @@ int i18n_measure_unit_create_nanosecond(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of duration: second.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -719,7 +719,7 @@ int i18n_measure_unit_create_second(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of duration: week.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -734,7 +734,7 @@ int i18n_measure_unit_create_week(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of duration: year.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -749,7 +749,7 @@ int i18n_measure_unit_create_year(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of electric: ampere.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -764,7 +764,7 @@ int i18n_measure_unit_create_ampere(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of electric: milliampere.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -779,7 +779,7 @@ int i18n_measure_unit_create_milliampere(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of electric: ohm.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -794,7 +794,7 @@ int i18n_measure_unit_create_ohm(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of electric: volt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -809,7 +809,7 @@ int i18n_measure_unit_create_volt(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of energy: calorie.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -824,7 +824,7 @@ int i18n_measure_unit_create_calorie(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of energy: foodcalorie.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -839,7 +839,7 @@ int i18n_measure_unit_create_foodcalorie(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of energy: joule.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -854,7 +854,7 @@ int i18n_measure_unit_create_joule(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of energy: kilocalorie.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -869,7 +869,7 @@ int i18n_measure_unit_create_kilocalorie(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of energy: kilojoule.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -884,7 +884,7 @@ int i18n_measure_unit_create_kilojoule(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of energy: kilowatt-hour.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -899,7 +899,7 @@ int i18n_measure_unit_create_kilowatt_hour(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of frequency: gigahertz.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -914,7 +914,7 @@ int i18n_measure_unit_create_gigahertz(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of frequency: hertz.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -929,7 +929,7 @@ int i18n_measure_unit_create_hertz(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of frequency: kilohertz.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -944,7 +944,7 @@ int i18n_measure_unit_create_kilohertz(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of frequency: megahertz.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -959,7 +959,7 @@ int i18n_measure_unit_create_megahertz(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: astronomical-unit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -974,7 +974,7 @@ int i18n_measure_unit_create_astronomical_unit(i18n_measure_unit_h *measure_unit
 
 /**
  * @brief Gets unit of length: centimeter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -989,7 +989,7 @@ int i18n_measure_unit_create_centimeter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: decimeter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1004,7 +1004,7 @@ int i18n_measure_unit_create_decimeter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: fathom.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1019,7 +1019,7 @@ int i18n_measure_unit_create_fathom(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: foot.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1034,7 +1034,7 @@ int i18n_measure_unit_create_foot(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: furlong.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1049,7 +1049,7 @@ int i18n_measure_unit_create_furlong(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: inch.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1064,7 +1064,7 @@ int i18n_measure_unit_create_inch(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: kilometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1079,7 +1079,7 @@ int i18n_measure_unit_create_kilometer(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: light-year.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1094,7 +1094,7 @@ int i18n_measure_unit_create_light_year(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: meter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1109,7 +1109,7 @@ int i18n_measure_unit_create_meter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: micrometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1124,7 +1124,7 @@ int i18n_measure_unit_create_micrometer(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: mile.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1139,7 +1139,7 @@ int i18n_measure_unit_create_mile(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: millimeter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1154,7 +1154,7 @@ int i18n_measure_unit_create_millimeter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: nanometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1169,7 +1169,7 @@ int i18n_measure_unit_create_nanometer(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: nautical-mile.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1184,7 +1184,7 @@ int i18n_measure_unit_create_nautical_mile(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: parsec.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1199,7 +1199,7 @@ int i18n_measure_unit_create_parsec(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: picometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1214,7 +1214,7 @@ int i18n_measure_unit_create_picometer(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: yard.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1229,7 +1229,7 @@ int i18n_measure_unit_create_yard(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of length: lux.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1244,7 +1244,7 @@ int i18n_measure_unit_create_lux(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of mass: carat.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1259,7 +1259,7 @@ int i18n_measure_unit_create_carat(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of mass: gram.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1274,7 +1274,7 @@ int i18n_measure_unit_create_gram(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of mass: kilogram.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1289,7 +1289,7 @@ int i18n_measure_unit_create_kilogram(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of mass: metric-ton.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1304,7 +1304,7 @@ int i18n_measure_unit_create_metric_ton(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of mass: microgram.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1319,7 +1319,7 @@ int i18n_measure_unit_create_microgram(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of mass: milligram.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1334,7 +1334,7 @@ int i18n_measure_unit_create_milligram(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of mass: ounce.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1349,7 +1349,7 @@ int i18n_measure_unit_create_ounce(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of mass: ounce-troy.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1364,7 +1364,7 @@ int i18n_measure_unit_create_ounce_troy(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of mass: pound.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1379,7 +1379,7 @@ int i18n_measure_unit_create_pound(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of mass: stone.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1394,7 +1394,7 @@ int i18n_measure_unit_create_stone(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of mass: ton.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1409,7 +1409,7 @@ int i18n_measure_unit_create_ton(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of power: gigawatt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1424,7 +1424,7 @@ int i18n_measure_unit_create_gigawatt(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of power: horsepower.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1439,7 +1439,7 @@ int i18n_measure_unit_create_horsepower(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of power: kilowatt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1454,7 +1454,7 @@ int i18n_measure_unit_create_kilowatt(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of power: megawatt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1469,7 +1469,7 @@ int i18n_measure_unit_create_megawatt(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of power: milliwatt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1484,7 +1484,7 @@ int i18n_measure_unit_create_milliwatt(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of power: watt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1499,7 +1499,7 @@ int i18n_measure_unit_create_watt(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of pressure: hectopascal.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1514,7 +1514,7 @@ int i18n_measure_unit_create_hectopascal(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of pressure: inch-hg.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1529,7 +1529,7 @@ int i18n_measure_unit_create_inch_hg(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of pressure: millibar.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1544,7 +1544,7 @@ int i18n_measure_unit_create_millibar(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of pressure: millimeter-of-mercury.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1559,7 +1559,7 @@ int i18n_measure_unit_create_millimeter_of_mercury(i18n_measure_unit_h *measure_
 
 /**
  * @brief Gets unit of pressure: pound-per-square-inch.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1574,7 +1574,7 @@ int i18n_measure_unit_create_pound_per_square_inch(i18n_measure_unit_h *measure_
 
 /**
  * @brief Gets unit of proportion: karat.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1589,7 +1589,7 @@ int i18n_measure_unit_create_karat(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of speed: kilometer-per-hour.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1604,7 +1604,7 @@ int i18n_measure_unit_create_kilometer_per_hour(i18n_measure_unit_h *measure_uni
 
 /**
  * @brief Gets unit of speed: meter-per-second.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1619,7 +1619,7 @@ int i18n_measure_unit_create_meter_per_second(i18n_measure_unit_h *measure_unit)
 
 /**
  * @brief Gets unit of speed: mile-per-hour.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1634,7 +1634,7 @@ int i18n_measure_unit_create_mile_per_hour(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of temperature: celsius.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1649,7 +1649,7 @@ int i18n_measure_unit_create_celsius(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of temperature: fahrenheit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1664,7 +1664,7 @@ int i18n_measure_unit_create_fahrenheit(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of temperature: kelvin.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1679,7 +1679,7 @@ int i18n_measure_unit_create_kelvin(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: acre-foot.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1694,7 +1694,7 @@ int i18n_measure_unit_create_acre_foot(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: bushel.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1709,7 +1709,7 @@ int i18n_measure_unit_create_bushel(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: centiliter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1724,7 +1724,7 @@ int i18n_measure_unit_create_centiliter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: cubic-centimeter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1739,7 +1739,7 @@ int i18n_measure_unit_create_cubic_centimeter(i18n_measure_unit_h *measure_unit)
 
 /**
  * @brief Gets unit of volume: cubic-foot.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1754,7 +1754,7 @@ int i18n_measure_unit_create_cubic_foot(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: cubic-inch.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1769,7 +1769,7 @@ int i18n_measure_unit_create_cubic_inch(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: cubic-kilometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1784,7 +1784,7 @@ int i18n_measure_unit_create_cubic_kilometer(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: cubic-meter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1799,7 +1799,7 @@ int i18n_measure_unit_create_cubic_meter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: cubic-mile.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1814,7 +1814,7 @@ int i18n_measure_unit_create_cubic_mile(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: cubic-yard.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1829,7 +1829,7 @@ int i18n_measure_unit_create_cubic_yard(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: cup.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1844,7 +1844,7 @@ int i18n_measure_unit_create_cup(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: deciliter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1859,7 +1859,7 @@ int i18n_measure_unit_create_deciliter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: fluid-ounce.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1874,7 +1874,7 @@ int i18n_measure_unit_create_fluid_ounce(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: gallon.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1889,7 +1889,7 @@ int i18n_measure_unit_create_gallon(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: hectoliter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1904,7 +1904,7 @@ int i18n_measure_unit_create_hectoliter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: liter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1919,7 +1919,7 @@ int i18n_measure_unit_create_liter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: megaliter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1934,7 +1934,7 @@ int i18n_measure_unit_create_megaliter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: milliliter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1949,7 +1949,7 @@ int i18n_measure_unit_create_milliliter(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: pint.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1964,7 +1964,7 @@ int i18n_measure_unit_create_pint(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: quart.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1979,7 +1979,7 @@ int i18n_measure_unit_create_quart(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: tablespoon.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
@@ -1994,7 +1994,7 @@ int i18n_measure_unit_create_tablespoon(i18n_measure_unit_h *measure_unit);
 
 /**
  * @brief Gets unit of volume: teaspoon.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The returned @a measure_unit should be freed by the caller
  *          with i18n_measure_unit_destroy().
  *
similarity index 96%
rename from src/include/wearable/utils_i18n_parse_position.h
rename to src/include/utils_i18n_parse_position.h
index 9c94e52..09d2be8 100644 (file)
@@ -52,7 +52,7 @@ extern "C" {
 /**
  * @brief Creates a parse position object.
  * @details The index is set to position 0.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          i18n_parse_position_destroy() function.
  *
@@ -67,7 +67,7 @@ int i18n_parse_position_create(i18n_parse_position_h *parse_position);
 
 /**
  * @brief Creates a parse position object with the given initial index.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The created object should be released by the caller with the
  *          i18n_parse_position_destroy() function.
  *
@@ -83,7 +83,7 @@ int i18n_parse_position_create_with_index(int32_t new_index, i18n_parse_position
 
 /**
  * @brief Destroys the parse position object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] parse_position  The parse position object to destroy
  *
@@ -95,7 +95,7 @@ int i18n_parse_position_destroy(i18n_parse_position_h parse_position);
 
 /**
  * @brief Creates a clone of the given @a parse_position object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  * @remarks The @a clone object should be released by the caller with the
  *          i18n_parse_position_destroy() function.
  *
@@ -114,7 +114,7 @@ int i18n_parse_position_clone(i18n_parse_position_h parse_position, i18n_parse_p
  * @details On input to a parse function, this is the index of the character
  *          at which parsing will begin; on output, it is the index of the character
  *          following the last character parsed.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in]  parse_position  The parse position object
  * @param[out] index           The current index
@@ -127,7 +127,7 @@ int i18n_parse_position_get_index(i18n_parse_position_h parse_position, int32_t
 
 /**
  * @brief Sets the current parse position.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] parse_position  The parse position object
  * @param[in] index           The new index
@@ -143,7 +143,7 @@ int i18n_parse_position_set_index(i18n_parse_position_h parse_position, int32_t
  * @details Formatters should set this before returning an error code
  *          from their parse_object() function. The default value is -1
  *          if this is not set.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in] parse_position  The parse position object
  * @param[in] error_index     The error index
@@ -157,7 +157,7 @@ int i18n_parse_position_set_error_index(i18n_parse_position_h parse_position, in
 /**
  * @brief Retrieves the index at which an error occurred, or -1 if the error index
  *        has not been set.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
  *
  * @param[in]  parse_position  The parse position object
  * @param[out] error_index     The index at which an error occurred
diff --git a/src/include/utils_i18n_timezone.h b/src/include/utils_i18n_timezone.h
new file mode 100644 (file)
index 0000000..3488b02
--- /dev/null
@@ -0,0 +1,467 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *       Licensed under the Apache License, Version 2.0 (the "License");
+ *       you may not use this file except in compliance with the License.
+ *       You may obtain a copy of the License at
+ *
+ *               http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *       Unless required by applicable law or agreed to in writing, software
+ *       distributed under the License is distributed on an "AS IS" BASIS,
+ *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *       See the License for the specific language governing permissions and
+ *       limitations under the License.
+ */
+
+#ifndef __UTILS_I18N_TIMEZONE_H__
+#define __UTILS_I18N_TIMEZONE_H__
+
+#include <utils_i18n_types.h>
+
+/**
+ * @file utils_i18n_timezone.h
+ * @version 0.1
+ * @brief utils_i18n_timezone
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @ingroup CAPI_BASE_UTILS_I18N_MODULE
+ * @defgroup CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE Timezone
+ * @brief The Timezone module represents a time zone offset, and also figures out daylight savings.
+ * @section CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE_HEADER Required Header
+ *     \#include <utils_i18n.h>
+ *
+ * @section CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE_OVERVIEW Overview
+ * @details The Timezone module represents a time zone offset, and also figures out daylight savings.\n
+ * Typically, you get an i18n_timezone_h using #i18n_timezone_create_default which creates a TimeZone based on the time zone
+ * where the program is running. For example, for a program running in Japan,
+ * #i18n_timezone_create_default creates an i18n_timezone_h based on Japanese Standard Time.\n
+ * You can also get an i18n_timezone_h using #i18n_timezone_create along with a time zone ID.
+ * For instance, the time zone ID for the US Pacific Time zone is "America/Los_Angeles".
+ * So, you can get a Pacific Time i18n_timezone_h with:\n
+ * <code>
+ * i18n_timezone_h timezone;\n
+ * i18n_timezone_create(&timezone, "America/Los_Angeles");\n
+ * </code>
+ * To create a new i18n_timezone_h, you call the factory function #i18n_timezone_create() and pass it a time zone ID.
+ * You can use the int #i18n_timezone_foreach_timezone_id() function to obtain a list of all the time zone IDs recognized by #i18n_timezone_create().\n
+ * You can also use #i18n_timezone_create_default() to create an i18n_timezone_h. This function uses platform-specific APIs to produce
+ * an i18n_timezone_h for the time zone corresponding to the client's computer's physical location.
+ * For example, if you're in Japan (assuming your machine is set up correctly), #i18n_timezone_create_default()
+ * will return an i18n_timezone_h for Japanese Standard Time ("Asia/Tokyo").
+ */
+
+/**
+ * @addtogroup CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE
+ * @{
+ */
+
+/**
+ * @brief Returns the "unknown" time zone.
+ * @details #i18n_timezone_create() returns a mutable clone of this time zone if the input ID is not recognized.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] timezone the "unknown" time zone.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @see i18n_timezone_create()
+ * @see i18n_timezone_create_gmt()
+ */
+int i18n_timezone_create_unknown(i18n_timezone_h *timezone);
+
+/**
+ * @brief The GMT (=UTC) time zone has a raw offset of zero and does not use daylight savings time.
+ * @details This is a commonly used time zone.\n
+ * Note: For backward compatibility reason, the ID used by the time zone returned by this method is "GMT", although the I18N's canonical ID for the GMT time zone is "Etc/GMT".
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] timezone the GMT/UTC time zone.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @see i18n_timezone_create_unknown()
+ */
+int i18n_timezone_create_gmt(i18n_timezone_h *timezone);
+
+/**
+ * @brief Creates an i18n_timezone_h for the given timezone_id.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] timezone the GMT/UTC time zone.
+ * @param[in]  timezone_id the ID for an i18n_timezone_h, such as "America/Los_Angeles", or a custom ID such as "GMT-8:00".
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_create(i18n_timezone_h *timezone, const char *timezone_id);
+
+/**
+ * @brief Destroys an i18n_timezone_h.
+ * @details Once destroyed, an i18n_timezone_h may no longer be used.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to destroy.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_destroy(i18n_timezone_h timezone);
+
+/**
+ * @brief Returns an enumeration over system time zone IDs with the given filter conditions.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone_type The system time zone type.
+ * @param[in] region The ISO 3166 two-letter country code or UN M.49 three-digit area code. When NULL, no filtering done by region.
+ * @param[in] raw_offset An offset from GMT in milliseconds, ignoring the effect of daylight savings time, if any. When NULL, no filtering done by zone offset.
+ * @param[in] cb The callback function to get an enumeration object, owned by the caller.
+ * @param[in] user_data The user data to be passed to the callback function.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_foreach_timezone_id_by_region(i18n_system_timezone_type_e timezone_type, const char *region, const int32_t *raw_offset, i18n_timezone_id_cb cb, void *user_data);
+
+/**
+ * @brief Returns an enumeration over all recognized time zone IDs.
+ * (i.e., all strings that #i18n_timezone_create() accepts)
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] cb The callback function to get an enumeration object, owned by the caller.
+ * @param[in] user_data The user data to be passed to the callback function.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_foreach_timezone_id(i18n_timezone_id_cb cb, void *user_data);
+
+/**
+ * @brief Returns an enumeration over time zone IDs with a given raw offset from GMT.
+ * @details There may be several times zones with the same GMT offset that differ in the way they
+ * handle daylight savings time. For example, the state of Arizona doesn't observe daylight
+ * savings time. If you ask for the time zone IDs corresponding to GMT-7:00,
+ * you'll get back an enumeration over two time zone IDs: "America/Denver,"
+ * which corresponds to Mountain Standard Time in the winter and Mountain Daylight Time in the summer,
+ * and "America/Phoenix", which corresponds to Mountain Standard Time year-round, even in the summer.
+ *
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] raw_offset an offset from GMT in milliseconds, ignoring the effect of daylight savings time, if any
+ * @param[in] cb The callback function to get an enumeration object, owned by the caller.
+ * @param[in] user_data The user data to be passed to the callback function.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_foreach_timezone_id_with_offset(int32_t raw_offset, i18n_timezone_id_cb cb, void *user_data);
+
+/**
+ * @brief Returns an enumeration over time zone IDs associated with the given country.
+ * @details Some zones are affiliated with no country (e.g., "UTC"); these may also be retrieved, as a group.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] country The ISO 3166 two-letter country code, or NULL to retrieve zones not affiliated with any country.
+ * @param[in] cb The callback function to get an enumeration object, owned by the caller.
+ * @param[in] user_data The user data to be passed to the callback function.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_foreach_timezone_id_by_country(const char *country, i18n_timezone_id_cb cb, void *user_data);
+
+/**
+ * @brief Returns the number of IDs in the equivalency group that includes the given ID.
+ * @details An equivalency group contains zones that have the same GMT offset and rules.\n
+ * The returned count includes the given ID; it is always >= 1. The given ID must be a system time zone. If it is not, returns zero.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone_id a system time zone ID
+ * @param[out] count the number of zones in the equivalency group containing 'timezone_id', or zero if 'timezone_id' is not a valid system ID
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @see i18n_timezone_get_equivalent_id()
+ */
+int i18n_timezone_count_equivalent_ids(const char *timezone_id, int32_t *count);
+
+/**
+ * @brief Returns an ID in the equivalency group that includes the given ID.
+ * @details An equivalency group contains zones that have the same GMT offset and rules.\n
+ * The given index must be in the range 0..n-1, where n is the out parameter value
+ * from i18n_timezone_count_equivalent_ids(timezone_id, &n).
+ * For some value of 'index', the returned value will be equal to the given id.
+ * If the given id is not a valid system time zone,
+ * or if 'index' is out of range, then returns an empty string.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone_id a system time zone ID
+ * @param[in] index a value from 0 to n-1, where n is the out parameter value from i18n_timezone_count_equivalent_ids(timezone_id, &n)
+ * @param[out] equivalent_timezone_id the ID of the index-th zone in the equivalency group containing 'timezone_id',
+ *                        or an empty string if 'timezone_id' is not a valid system ID or 'index' is out of range
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @see i18n_timezone_count_equivalent_ids()
+ */
+int i18n_timezone_get_equivalent_id(const char *timezone_id, int32_t index, char **equivalent_timezone_id);
+
+/**
+ * @brief Creates a new copy of the default i18n_timezone_h for this host.
+ * @details Unless the default time zone has already been set using #i18n_timezone_set_default(),
+ * the default is determined by querying the system using methods in TPlatformUtilities.
+ * If the system routines fail, or if they specify an i18n_timezone_h or i18n_timezone_h offset
+ * which is not recognized, the i18n_timezone_h indicated by the ID kLastResortID
+ * is instantiated and made the default.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] timezone A default i18n_timezone_h. Clients are responsible for deleting the time zone object returned.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_create_default(i18n_timezone_h *timezone);
+
+/**
+ * @brief Sets the default time zone (i.e., what's returned by #i18n_timezone_create_default()) to be the specified time zone.
+ * @details If NULL is specified for the time zone, the default time zone is set to the default host time zone.
+ * The caller remains responsible for deleting it. \n
+ * This function is not thread safe. It is an error for multiple threads to concurrently attempt to set
+ * the default time zone, or for any thread to attempt to reference the default zone while another thread is setting it.
+ *
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks Do not use unless you know what you are doing.
+ *
+ * @param[in] timezone The given timezone.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_set_default(i18n_timezone_h timezone);
+
+/**
+ * @brief Returns the timezone data version currently used by I18N.
+ * @remarks The specific error code can be obtained using the get_last_result()
+ *             method. Error codes are described in #i18n_error_code_e description.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @return the version string, such as "2007f"
+ * @exception #I18N_ERROR_NONE Successful
+ */
+const char *i18n_timezone_get_tzdata_version(void);
+
+/**
+ * @brief Gets the region code associated with the given system time zone ID.
+ * @details The region code is either ISO 3166 2-letter country code or UN M.49 3-digit area code.
+ * When the time zone is not associated with a specific location, for example - "Etc/UTC",
+ * "EST5EDT", then this method returns "001" (UN M.49 area code for World).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in]  timezone_id The system time zone ID.
+ * @param[out] region Output buffer for receiving the region code.
+ * @param[out] region_len The length of the region code.
+ * @param[in]  region_capacity The size of the output buffer. If it is lower than required @a region buffer size,
+ *                                                        then I18N_ERROR_BUFFER_OVERFLOW error is returned.
+ *
+ * @return the version string, such as "2007f"
+ */
+int i18n_timezone_get_region(const char *timezone_id, char *region, int32_t *region_len, int32_t region_capacity);
+
+/**
+ * @brief Returns the time zone raw and GMT offset for the given moment in time.
+ * @details Upon return, local-millis = GMT-millis + rawOffset + dstOffset. All computations are performed
+ * in the proleptic Gregorian calendar.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in]  timezone The i18n_timezone_h to get an offset.
+ * @param[in]  date moment in time for which to return offsets, in units of milliseconds from January 1, 1970 0:00 GMT, either GMT time or local wall time, depending on `local'.
+ * @param[in]  local output if true, `date' is local wall time; otherwise it is in GMT time.
+ * @param[out] raw_offset parameter to receive the raw offset, that is, the offset not including DST adjustments
+ * @param[out] dst_offset output parameter to receive the DST offset, that is, the offset to be added to `raw_offset' to obtain the total offset between local and GMT time. If DST is not in effect, this value is zero; otherwise it is a positive value, typically one hour.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_offset_with_date(i18n_timezone_h timezone, i18n_udate date, i18n_ubool local, int32_t *raw_offset, int32_t *dst_offset);
+
+/**
+ * @brief Sets the i18n_timezone_h's raw GMT offset
+ *        (i.e., the number of milliseconds to add to GMT to get local time, before taking daylight savings time into account).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to set a raw offset.
+ * @param[in] offset_milliseconds The new raw GMT offset for this time zone.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_set_raw_offset(i18n_timezone_h timezone, int32_t offset_milliseconds);
+
+/**
+ * @brief Gets the i18n_timezone_h's raw GMT offset (i.e., the number of milliseconds
+ * to add to GMT to get local time, before taking daylight savings time into account).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a raw offset.
+ * @param[out] offset_milliseconds The i18n_timezone_h's raw GMT offset.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_raw_offset(i18n_timezone_h timezone, int32_t *offset_milliseconds);
+
+/**
+ * @brief Fills in "timezone_id" with the i18n_timezone_h's ID.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a timezone ID.
+ * @param[out] timezone_id Receives this i18n_timezone_h's ID.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_id(i18n_timezone_h timezone, char **timezone_id);
+
+/**
+ * @brief Sets the i18n_timezone_h's ID to the specified value.
+ * @details This doesn't affect any other fields. for example,\n
+ *        \n<code>
+ *        i18n_timezone_h timezone = NULL;\n
+ *        i18n_timezone_create ( &timezone, "America/New_York" );\n
+ *        i18n_timezone_set_id ( "America/Los_Angeles" );\n
+ *        </code>\n
+ * the timezone's GMT offset and daylight-savings rules don't change to those for Los Angeles.
+ * They're still those for New York. Only the ID has changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to set a timezone ID.
+ * @param[in] timezone_id The new time zone ID.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_set_id(i18n_timezone_h timezone, const char *timezone_id);
+
+/**
+ * @brief Returns a name of this time zone suitable for presentation to the user in the default locale.
+ * @details This method returns the long name, not including daylight savings.
+ * If the display name is not available for the locale, then this method returns a string in the localized GMT offset format such as GMT[+-]HH:mm.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a display name.
+ * @param[out] display_name The human-readable name of this time zone in the default locale.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_display_name(i18n_timezone_h timezone, char **display_name);
+
+/**
+ * @brief Returns a name of this time zone suitable for presentation to the user in the default locale.
+ * @details This method returns the long name, not including daylight savings.
+ * If the display name is not available for the locale, then this method returns a string in the localized GMT offset format such as GMT[+-]HH:mm.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a display name.
+ * @param[in] language The language in which to supply the display name. This parameter can be NULL; if so, the locale is initialized to match the current default locale.
+ * @param[in] country The country in which to supply the display name. This parameter can be NULL.
+ * @param[out] display_name The human-readable name of this time zone in the default locale.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_display_name_with_locale(i18n_timezone_h timezone, const char *language, const char *country , char **display_name);
+
+/**
+ * @brief Returns a name of this time zone suitable for presentation to the user in the default locale.
+ * @details If the display name is not available for the locale,
+ * then this method returns a string in the localized GMT offset format such as GMT[+-]HH:mm.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a display name.
+ * @param[in] daylight If true, display_name is filled with the daylight savings name.
+ * @param[in] style The style displayed on.
+ * @param[out] display_name The human-readable name of this time zone in the default locale.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_display_name_with_type(i18n_timezone_h timezone, i18n_ubool daylight, i18n_timezone_display_type_e style, char **display_name);
+
+/**
+ * @brief Returns a name of this time zone suitable for presentation to the user in the default locale.
+ * @details If the display name is not available for the locale,
+ * then this method returns a string in the localized GMT offset format such as GMT[+-]HH:mm.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a display name.
+ * @param[in] daylight If true, display_name is filled with the daylight savings name.
+ * @param[in] style The style displayed on.
+ * @param[in] language The language in which to supply the display name. This parameter can be NULL; if so, the locale is initialized to match the current default locale.
+ * @param[in] country The country in which to supply the display name. This parameter can be NULL.
+ * @param[out] display_name The human-readable name of this time zone in the default locale.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_display_name_with_type_locale(i18n_timezone_h timezone, i18n_ubool daylight, i18n_timezone_display_type_e style, const char *language, const char *country, char **display_name);
+
+/**
+ * @brief Queries if this time zone uses daylight savings time.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to know whether uses daylight savings time or not.
+ * @param[out] daylight_time True if this time zone uses daylight savings time, False, otherwise.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_use_daylight_time(i18n_timezone_h timezone, i18n_ubool *daylight_time);
+
+/**
+ * @brief Queries if the given date is in daylight savings time in this time zone.
+ * @details This method is wasteful since it creates a new GregorianCalendar and deletes it each time it is called.
+ * @since_tizen 2.3
+ *
+ * @deprecated Deprecated since 2.3.1. Use i18n_ucalendar_is_in_daylight_time() instead.
+ *
+ * @param[in] timezone The i18n_timezone_h to know whether in daylight savings time or not.
+ * @param[in] date the given i18n_udate.
+ * @param[out] daylight_time True if the given date is in daylight savings time, False, otherwise.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_in_daylight_time(i18n_timezone_h timezone, i18n_udate date, i18n_ubool *daylight_time);
+
+/**
+ * @brief Returns true if this zone has the same rule and offset as another zone.
+ * @details That is, if this zone differs only in ID, if at all.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to know whether has the same rule or not.
+ * @param[in] other The i18n_timezone_h to be compared with.
+ * @param[out] same_rule True if the given zone is the same as this one, with the possible exception of the ID.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_has_same_rule(i18n_timezone_h timezone, i18n_timezone_h other, i18n_ubool *same_rule);
+
+/**
+ * @brief Clones i18n_timezone_h polymorphically.
+ * @details Clients are responsible for deleting the i18n_timezone_h cloned.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to clone.
+ * @param[out] clone A new copy of this i18n_timezone_h.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_clone(i18n_timezone_h timezone, i18n_timezone_h *clone);
+
+/**
+ * @brief Returns the amount of time to be added to local standard time to get local wall clock time.
+ * @details The default implementation always returns 3600000 milliseconds (i.e., one hour) if this time zone observes Daylight Saving Time.
+ * Otherwise, 0 (zero) is returned.\n
+ * If an underlying TimeZone implementation subclass supports historical Daylight Saving Time changes,
+ * this method returns the known latest daylight saving value.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get DST savings.
+ * @param[out] dst_savings The amount of saving time in milliseconds.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_dst_savings(i18n_timezone_h timezone, int32_t *dst_savings);
+
+#ifdef __cplusplus
+}
+#endif
+
+/**
+ * @}
+ * @}
+ */
+#endif /* __UTILS_I18N_TIMEZONE_H__*/
diff --git a/src/include/utils_i18n_usearch.h b/src/include/utils_i18n_usearch.h
new file mode 100644 (file)
index 0000000..d82decc
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *       Licensed under the Apache License, Version 2.0 (the "License");
+ *       you may not use this file except in compliance with the License.
+ *       You may obtain a copy of the License at
+ *
+ *               http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *       Unless required by applicable law or agreed to in writing, software
+ *       distributed under the License is distributed on an "AS IS" BASIS,
+ *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *       See the License for the specific language governing permissions and
+ *       limitations under the License.
+ */
+
+#ifndef __UTILS_I18N_USEARCH_H__
+#define __UTILS_I18N_USEARCH_H__
+
+#include <utils_i18n_types.h>
+
+/**
+ * @file utils_i18n_usearch.h
+ * @version 0.1
+ * @brief utils_i18n_usearch
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @ingroup CAPI_BASE_UTILS_I18N_MODULE
+ * @defgroup CAPI_BASE_UTILS_I18N_USEARCH_MODULE Usearch
+ * @brief The Usearch module provides language-sensitive text searching based on the comparison rules defined in a ucollator data struct.
+ *
+ * @section CAPI_BASE_UTILS_I18N_USEARCH_MODULE_HEADER Required Header
+ *     \#include <utils_i18n.h>
+ *
+ * @section CAPI_BASE_UTILS_I18N_USEARCH_MODULE_OVERVIEW Overview
+ * @details The Usearch module provides language-sensitive text searching based on the comparison rules defined in a ucollator data struct.
+ *
+ * @section CAPI_BASE_UTILS_I18N_USEARCH_MODULE_SAMPLE_CODE_1 Sample Code 1
+ * @brief Searches the pattern and gets the matched text.
+ * @code
+       char *string = "TIZEN";
+       char *keyword = "ZE";
+       i18n_uchar target[16] = {0,};
+       i18n_uchar pattern[16] = {0,};
+       i18n_uchar u_matched[16] = {0,};
+       char tmp[1] = {0};
+       i18n_usearch_h search = NULL;
+       int pos = 0;
+       int matched_text_len = 0;
+       int i = 0;
+       i18n_error_code_e error_code;
+
+       i18n_ustring_from_UTF8( target, 16, NULL, string, -1, &error_code );
+       i18n_ustring_from_UTF8( pattern, 16, NULL, keyword, -1, &error_code );
+
+       // creates a search
+       i18n_usearch_create_new( pattern, -1, target, -1, "en_US", NULL, &search );
+
+       // gets the first index of the target that matches with the pattern
+       i18n_usearch_first( search, &pos );
+       dlog_print(DLOG_INFO, LOG_TAG, "the first index = %d", pos );    // The first index = 2
+
+       // gets the matched text
+       i18n_usearch_get_matched_text( search, u_matched, 16, &matched_text_len );
+       for ( i = 0; i < matched_text_len; i++) {
+               i18n_ustring_copy_au_n( tmp, &u_matched[i], 1 );
+               dlog_print(DLOG_INFO, LOG_TAG, "u_matched[%d] = %c", i, tmp[0] );        // u_matched[0] = Z, u_matched[1] = E
+       }
+       i18n_usearch_destroy( search );
+ * @endcode
+ */
+
+/**
+ * @addtogroup CAPI_BASE_UTILS_I18N_USEARCH_MODULE
+ * @{
+ */
+
+/**
+ * @brief Creates an i18n_usearch_h using the argument locale language rule set.
+ * @details A collator will be created in the process, which will be owned by
+ * this search and will be deleted in i18n_usearch_destroy().
+ * @remarks Must release @a search_iter using i18n_usearch_destroy().
+ * @since_tizen 2.3
+ *
+ * @deprecated Deprecated since 2.3.1. Use i18n_usearch_create_new() instead.
+ *
+ * @param[in] pattern The pattern for matching
+ * @param[in] pattern_len The length of the pattern, otherwise @c -1 for NULL-termination
+ * @param[in] text The text string
+ * @param[in] text_len The length of the text string, otherwise @c -1 for NULL-termination
+ * @param[in] locale The name of the locale for the rules to be used
+ * @param[in] break_iter An #i18n_ubreak_iterator_s that will be used to restrict the points at which matches are detected. If a match is found,\n
+ * but the match's start or end index is not a boundary as determined by the #i18n_ubreak_iterator_s,
+ * the match will be rejected and another will be searched for. If this parameter is @c NULL,\n
+ * no break detection is attempted.
+ * @param[out] search_iter The #i18n_usearch_h, otherwise @c NULL if there is an error
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int i18n_usearch_create(const i18n_uchar *pattern, int32_t pattern_len, const i18n_uchar *text, int32_t text_len, const char *locale, i18n_ubreak_iterator_s *break_iter, i18n_usearch_h *search_iter);
+
+/**
+ * @brief Creates an #i18n_usearch_h using the argument locale language rule set.
+ * @details A collator will be created in the process, which will be owned by
+ * this search and will be deleted in i18n_usearch_destroy().
+ * @remarks Must release @a search_iter using i18n_usearch_destroy().
+ * @since_tizen 2.3.1
+ *
+ * @param[in] pattern The pattern for matching
+ * @param[in] pattern_len The length of the pattern, otherwise @c -1 for NULL-termination
+ * @param[in] text The text string
+ * @param[in] text_len The length of the text string, otherwise @c -1 for NULL-termination
+ * @param[in] locale The name of the locale for the rules to be used
+ * @param[in] break_iter An #i18n_ubreak_iterator_h that will be used to restrict the points at which matches are detected. If a match is found,\n
+ * but the match's start or end index is not a boundary as determined by the #i18n_ubreak_iterator_h,
+ * the match will be rejected and another will be searched for. If this parameter is @c NULL,\n
+ * no break detection is attempted.
+ * @param[out] search_iter The #i18n_usearch_h, otherwise @c NULL if there is an error
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int i18n_usearch_create_new(const i18n_uchar *pattern, int32_t pattern_len, const i18n_uchar *text,
+                                                       int32_t text_len, const char *locale, i18n_ubreak_iterator_h break_iter, i18n_usearch_h *search_iter);
+
+/**
+ * @brief Destroys and cleans up the i18n_usearch_h.
+ * @details If a collator is created in i18n_usearch_create(), it will be destroyed here.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] search_iter The i18n_usearch_h to clean up
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int i18n_usearch_destroy(i18n_usearch_h search_iter);
+
+/**
+ * @brief Returns the text that matches by the most recent call to i18n_usearch_first(), or so on.
+ * @details If the iterator is not pointing at a valid match (e.g. just after
+ * construction or after #I18N_USEARCH_DONE has been returned, it returns
+ * an empty string. If the result is not large enough to store the matched text,
+ * the result will be filled with the partial text and an #I18N_ERROR_BUFFER_OVERFLOW
+ * will be returned in status. The result will be NULL-terminated whenever
+ * possible. If the buffer fits the matched text exactly, a NULL-termination
+ * is not possible.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in]  search_iter The search iterator handle
+ * @param[out] result i18n_uchar The buffer to store the matched string
+ * @param[in]  result_capacity The length of the result buffer
+ * @param[out] len_matched_text The exact length of the matched text, not counting the NULL-termination
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @retval #I18N_ERROR_BUFFER_OVERFLOW A result would not fit in the supplied buffer
+ */
+int i18n_usearch_get_matched_text(const i18n_usearch_h search_iter, i18n_uchar *result, int32_t result_capacity, int32_t *len_matched_text);
+
+/**
+ * @brief Gets the collator used for the language rules.
+ * @details Deleting the returned i18n_ucollator_h before calling
+ * i18n_usearch_destroy() would cause the string search to fail.
+ * i18n_usearch_destroy() will delete the collator if this search owns it.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] search_iter The search iterator handle
+ * @param[out] collator The collator
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int i18n_usearch_get_collator(const i18n_usearch_h search_iter, i18n_ucollator_h *collator);
+
+/**
+ * @brief Returns the first index at which the string text matches the search pattern.
+ * @details The iterator is adjusted so that its current index
+ * is the match position if one is found.
+ * If a match is not found, #I18N_USEARCH_DONE will be returned and
+ * the iterator will be adjusted to the index #I18N_USEARCH_DONE.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] search_iter The search iterator handle
+ * @param[out] index_first The character index of the first match,
+ * otherwise #I18N_USEARCH_DONE if there are no matches.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int i18n_usearch_first(i18n_usearch_h search_iter, int32_t *index_first);
+
+#ifdef __cplusplus
+}
+#endif
+
+/**
+ * @}
+ * @}
+ */
+
+#endif /* __UTILS_I18N_USEARCH_H__*/
diff --git a/src/include/utils_i18n_ustring.h b/src/include/utils_i18n_ustring.h
new file mode 100644 (file)
index 0000000..a89153a
--- /dev/null
@@ -0,0 +1,1366 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *       Licensed under the Apache License, Version 2.0 (the "License");
+ *       you may not use this file except in compliance with the License.
+ *       You may obtain a copy of the License at
+ *
+ *               http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *       Unless required by applicable law or agreed to in writing, software
+ *       distributed under the License is distributed on an "AS IS" BASIS,
+ *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *       See the License for the specific language governing permissions and
+ *       limitations under the License.
+ *
+ * Copyright (C) 1998-2012, International Business Machines
+ * Corporation and others.     All Rights Reserved.
+ */
+
+#ifndef __UTILS_I18N_USTRING_H__
+#define __UTILS_I18N_USTRING_H__
+
+#include <utils_i18n_types.h>
+
+/**
+ * @file utils_i18n_ustring.h
+ * @version 0.1
+ * @brief utils_i18n_ustring
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @ingroup CAPI_BASE_UTILS_I18N_MODULE
+ * @defgroup CAPI_BASE_UTILS_I18N_USTRING_MODULE Ustring
+ * @brief The Ustring module provides general unicode string handling information.
+ *
+ * @section CAPI_BASE_UTILS_I18N_USTRING_MODULE_HEADER Required Header
+ *     \#include <utils_i18n.h>
+ *
+ * @section CAPI_BASE_UTILS_I18N_USTRING_MODULE_OVERVIEW Overview
+ * @details The Ustring module provides general unicode string handling information.
+ *
+ * @section CAPI_BASE_UTILS_I18N_USTIRING_MODULE_SAMPLE_CODE_1 Sample Code 1
+ * @brief It converts a byte string to a unicode string and then to uppercase letters.
+ * @code
+       char str_1[64] = {0,};
+       i18n_uchar uchar_str_1[64] = {0,};
+       i18n_uchar uchar_str_2[64] = {0,};
+       int uchar_len = 0;
+       i18n_uerror_code_e err_code = I18N_ERROR_NONE;
+
+       strcpy(str_1, "tizen");
+       dlog_print(DLOG_INFO, LOG_TAG, "str_1 is %s\n", str_1);    // str_1 is tizen
+
+       // converts a byte string to a unicode string
+       i18n_ustring_copy_ua_n(uchar_str_1, str_1, strlen(str_1));
+
+       // converts to uppercase letters
+       i18n_ustring_to_upper(uchar_str_2, 64, uchar_str_1, i18n_ustring_get_length( uchar_str_1 ), "en_US", &err_code);
+
+       i18n_ustring_copy_au(str_1, uchar_str_2);
+       dlog_print(DLOG_INFO, LOG_TAG, "str_1 is %s\n", str_1);    // str_1 is TIZEN
+ * @endcode
+ */
+
+/**
+ * @addtogroup CAPI_BASE_UTILS_I18N_USTRING_MODULE
+ * @{
+ */
+
+/**
+ * @brief Determines the length of an array of #i18n_uchar.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s                The array of #i18n_uchar characters, @c NULL (U+0000) terminated.
+ *
+ * @return The number of #i18n_uchar characters in @c chars, minus the terminator
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_get_length(const i18n_uchar *s);
+
+/**
+ * @brief Counts Unicode code points in the length #i18n_uchar code units of the string.
+ * @details A code point may occupy either one or two #i18n_uchar code units.
+ *                     Counting code points involves reading all code units.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s                        The input string.
+ * @param[in] length   The number of #i18n_uchar code units to be checked, or @c -1 to count
+ *                                             all code points before the first NULL (U+0000).
+ *
+ * @return The number of code points in the specified code units.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_count_char32(const i18n_uchar *s, int32_t length);
+
+/**
+ * @brief Checks if the string contains more Unicode code points than a certain number.
+ * @details This is more efficient than counting all code points in the entire string and comparing that number with a threshold.
+ *                     This function may not need to scan the string at all if the length is known (not @c -1 for NULL-termination) and falls within a certain range,
+ *                     and never needs to count more than 'number+1' code points.
+ *                     Logically equivalent to ( i18n_ustring_count_char32 (s, length, &number_of_code_points); number_of_code_points > number ).
+ *                     A Unicode code point may occupy either one or two #i18n_uchar code units.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s                        The input string.
+ * @param[in] length   The length of the string, or @c -1 if it is NULL-terminated.
+ * @param[in] number   The number of code points in the string is compared against the @a number parameter.
+ *
+ * @return Boolean value for whether the string contains more Unicode code points than @a number. Same as ( i18n_ustring_count_char32 (s, length, &number_of_code_points); number_of_code_points > number).
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_ubool i18n_ustring_has_more_char32_than(const i18n_uchar *s, int32_t length, int32_t number);
+
+/**
+ * @brief Concatenates two ustrings.
+ * @details Appends a copy of @a src, including the NULL terminator, to @a dest.
+ *                     The initial copied character from @a src overwrites the NULL terminator in @a dest.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest            The destination string.
+ * @param[in] src              The source string.
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_cat(i18n_uchar *dest, const i18n_uchar *src);
+
+/**
+ * @brief Concatenate two ustrings.
+ * @details Appends a copy of @a src, including the NULL terminator, to @a dest.
+ *                     The initial copied character from @a src overwrites the NULL terminator in @a dest.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest            The destination string.
+ * @param[in] src              The source string.
+ * @param[in] n                        The maximum number of characters to append; no-op if <=0.
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_cat_n(i18n_uchar *dest, const i18n_uchar *src, int32_t n);
+
+/**
+ * @brief Finds the first occurrence of a substring in a string.
+ * @details The substring is found at code point boundaries. That means that if the substring begins with a trail surrogate
+ *                     or ends with a lead surrogate, then it is found only if these surrogates stand alone in the text.
+ *                     Otherwise, the substring edge units would be matched against halves of surrogate pairs.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s                                The string to search (NULL-terminated).
+ * @param[in] sub_string       The substring to find (NULL-terminated).
+ *
+ * @return A pointer to the first occurrence of @a sub_string in @a s,
+ *                or @a s itself if the @a sub_string is empty,
+ *                or @c NULL if @a sub_string is not in @a s.
+ *
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ *
+ * @see i18n_ustring_r_string()
+ * @see i18n_ustring_find_first()
+ * @see i18n_ustring_find_last()
+ */
+i18n_uchar *i18n_ustring_string(const i18n_uchar *s, const i18n_uchar *sub_string);
+
+/**
+ * @brief Finds the first occurrence of a substring in a string.
+ * @details The substring is found at code point boundaries. That means that if the substring begins with a trail surrogate
+ *                     or ends with a lead surrogate, then it is found only if these surrogates stand alone in the text.
+ *                     Otherwise, the substring edge units would be matched against halves of surrogate pairs.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s                                The string to search (NULL-terminated).
+ * @param[in] length           The length of @a s (number of #i18n_uchar characters), or @c -1 if it is NULL-terminated.
+ * @param[in] sub_string       The substring to find (NULL-terminated).
+ * @param[in] sub_length       The length of substring (number of #i18n_uchar characters), or @c -1 if it is NULL-terminated.
+ *
+ * @return A pointer to the first occurrence of @a sub_string in @a s,
+ *                or @a s itself if the @a sub_string is empty,
+ *                or @c NULL if @a sub_string is not in @a s.
+ *
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ *
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_last()
+ */
+i18n_uchar *i18n_ustring_find_first(const i18n_uchar *s, int32_t length, const i18n_uchar *sub_string, int32_t sub_length);
+
+/**
+ * @brief Finds the first occurrence of a BMP code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] c The BMP code point to find.
+ *
+ * @return A pointer to the first occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_char32()
+ * @see i18n_ustring_mem_char()
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_char(const i18n_uchar *s, i18n_uchar c);
+
+/**
+ * @brief Finds the first occurrence of a code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] c The code point to find.
+ *
+ * @return A pointer to the first occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_char()
+ * @see i18n_ustring_mem_char32()
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_char32(const i18n_uchar *s, i18n_uchar32 c);
+
+/**
+ * @brief Finds the last occurrence of a substring in a string.
+ * @details The substring is found at code point boundaries. That means that if the substring begins with a trail surrogate
+ * or ends with a lead surrogate, then it is found only if these surrogates stand alone in the text.
+ * Otherwise, the substring edge units would be matched against halves of surrogate pairs.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] sub_string The substring to find (NULL-terminated).
+ *
+ * @return A pointer to the last occurrence of @a substring in @a s,
+ * or @a s itself if the @a sub_string is empty,
+ * or @c NULL if @a sub_string is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ * @see i18n_ustring_find_last()
+ */
+i18n_uchar *i18n_ustring_r_string(const i18n_uchar *s, const i18n_uchar *sub_string);
+
+/**
+ * @brief Finds the last occurrence of a substring in a string.
+ * @details The substring is found at code point boundaries. That means that if the substring begins with a trail surrogate
+ * or ends with a lead surrogate, then it is found only if these surrogates stand alone in the text.
+ * Otherwise, the substring edge units would be matched against halves of surrogate pairs.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search.
+ * @param[in] length The length of s (number of #i18n_uchar), or @c -1 if it is NULL-terminated.
+ * @param[in] sub_string The sub_string to find (NULL-terminated).
+ * @param[in] sub_length The length of sub_string (number of #i18n_uchar), or @c -1 if it is NULL-terminated.
+ *
+ * @return A pointer to the last occurrence of @a sub_string in @a s,
+ * or @a s itself if the @a substring is empty,
+ * or @c NULL if @a sub_string is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_find_last(const i18n_uchar *s, int32_t length, const i18n_uchar *sub_string, int32_t sub_length);
+
+/**
+ * @brief Finds the last occurrence of a BMP code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] c The BMP code point to find.
+ *
+ * @return A pointer to the last occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_char32()
+ * @see i18n_ustring_mem_char()
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_r_char(const i18n_uchar *s, i18n_uchar c);
+
+/**
+ * @brief Finds the last occurrence of a code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] c The code point to find.
+ *
+ * @return A pointer to the last occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_char()
+ * @see i18n_ustring_mem_char32()
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_r_char32(const i18n_uchar *s, i18n_uchar32 c);
+
+/**
+ * @brief Locates the first occurrence in the string of any of the characters in the string matchSet.
+ * @details Works just like C's strpbrk but with Unicode.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] string The string in which to search, NULL-terminated.
+ * @param[in] match_set A NULL-terminated string defining a set of code points for which to search in the text string.
+ *
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @return A pointer to the     character in @a string that matches one of the
+ * characters in @a match_set, or NULL if no such character is found.
+ */
+i18n_uchar *i18n_ustring_pbrk(const i18n_uchar *string, const i18n_uchar *match_set);
+
+/**
+ * @brief Returns the number of consecutive characters in string, beginning with the first, that do not occur somewhere in match_set.
+ * @details Works just like C's strcspn but with Unicode.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] string The string in which to search, NULL-terminated.
+ * @param[in] match_set A NULL-terminated string defining a set of code points for which to search in the text string.
+ *
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @return The number of initial characters in @a string that do not
+ * occur in @a match_set.
+ */
+int32_t i18n_ustring_cspn(const i18n_uchar *string, const i18n_uchar *match_set);
+
+/**
+ * @brief Returns the number of consecutive characters in string, beginning with the first, that occur somewhere in match_set.
+ * @details Works just like C's strspn but with Unicode.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] string The string in which to search, NULL-terminated.
+ * @param[in] match_set A NULL-terminated string defining a set of code points for which to search in the text string.
+ * @return The number of initial characters in @a string that do
+ * occur in @a match_set.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_spn()
+ */
+int32_t i18n_ustring_spn(const i18n_uchar *string, const i18n_uchar *match_set);
+
+/**
+ * @brief The string tokenizer API allows an application to break a string into tokens.
+ * @details Works just like C's strspn but with Unicode.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] src String containing token(s). This string will be modified. After the first call to #i18n_ustring_tokenizer_r(), this argument must be NULL to get to the next token.
+ * @param[in] delim Set of delimiter characters (Unicode code points).
+ * @param[out] save_state The current pointer within the original string, which is set by this function.
+ * The save_state parameter should the address of a local variable of type #i18n_uchar *.
+ * @return A pointer to the next token found in src, or NULL
+ * when there are no more tokens.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_tokenizer_r(i18n_uchar *src, const i18n_uchar *delim, i18n_uchar **save_state);
+
+/**
+ * @brief Compares two Unicode strings for bitwise equality (code unit order).
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @return 0 if @a s1 and @a s2 are bitwise equal; a negative
+ * value if @a s1 is bitwise less than @a s2; a positive
+ * value if @a s1 is bitwise greater than @a s2.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_compare(const i18n_uchar *s1, const i18n_uchar *s2);
+
+/**
+ * @brief Compare two Unicode strings in code point order.
+ * @details See #i18n_ustring_compare() for details.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @return a negative/zero/positive integer corresponding to whether
+ * the first string is less than/equal to/greater than the second one
+ * in code point order
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_compare_code_point_order(const i18n_uchar *s1, const i18n_uchar *s2);
+
+/**
+ * @brief Compare two Unicode strings (binary order).
+ * @details The comparison can be done in code unit order or in code point order. They differ only in UTF-16 when comparing supplementary code points
+ * (U+10000..U+10ffff) to BMP code points near the end of the BMP (i.e., U+e000..U+ffff). In code unit order, high BMP code points sort after
+ * supplementary code points because they are stored as pairs of surrogates which are at U+d800..U+dfff.\n
+ * This functions works with strings of different explicitly specified lengths unlike the ANSI C-like #i18n_ustring_compare() and #i18n_ustring_mem_compare() etc.
+ * NULL-terminated strings are possible with length arguments of -1.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 First source string.
+ * @param[in] length1 Length of first source string, or @c -1 if NULL-terminated.
+ * @param[in] s2 Second source string.
+ * @param[in] length2 Length of second source string, or @c -1 if NULL-terminated.
+ * @param[in] code_point_order Choose between code unit order (false) and code point order (true).
+ * @return < 0, 0 or > 0 as usual for string comparisons
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_compare_binary_order(const i18n_uchar *s1, int32_t length1, const i18n_uchar *s2, int32_t length2, i18n_ubool code_point_order);
+
+/**
+ * @brief Compare two strings case-insensitively using full case folding.
+ * @details The comparison can be done in UTF-16 code unit order or in code point order. They differ only when comparing
+ * supplementary code points (U+10000..U+10ffff) to BMP code points near the end of the BMP (i.e., U+e000..U+ffff).
+ * In code unit order, high BMP code points sort after supplementary code points because they are stored as pairs of surrogates which are at U+d800..U+dfff.\n
+ * This functions works with strings of different explicitly specified lengths unlike the ANSI C-like #i18n_ustring_compare() and i18n_ustring_mem_compare() etc.
+ * NULL-terminated strings are possible with length arguments of -1.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 First source string.
+ * @param[in] length1 Length of first source string, or @c -1 if NULL-terminated.
+ * @param[in] s2 Second source string.
+ * @param[in] length2 Length of second source string, or @c -1 if NULL-terminated.
+ * @param[in] options A bit set of options:\n
+ * - #I18N_USTRING_U_FOLD_CASE_DEFAULT or 0 is used for default options: Comparison in code unit order with default case folding.\n
+ * - #I18N_USTRING_U_COMPARE_CODE_POINT_ORDER Set to choose code point order instead of code unit order (see i18n_ustring_compare_code_pointer_order() for details).\n
+ * - #I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return <0 or 0 or >0 as usual for string comparisons
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_case_compare_with_length(const i18n_uchar *s1, int32_t length1, const i18n_uchar *s2, int32_t length2, uint32_t options, i18n_error_code_e *error_code);
+
+/**
+ * @brief Compare two ustrings for bitwise equality.
+ * @details Compares at most n characters.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare (can be NULL/invalid if n<=0).
+ * @param[in] s2 A string to compare (can be NULL/invalid if n<=0).
+ * @param[in] n The maximum number of characters to compare; always returns 0 if n<=0.
+ * @return 0 if @a s1 and @a s2 are bitwise equal; a negative
+ * value if @a s1 is bitwise less than @a s2; a positive
+ * value if @a s1 is bitwise greater than @a s2.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_compare_n(const i18n_uchar *s1, const i18n_uchar *s2, int32_t n);
+
+/**
+ * @brief Compare two Unicode strings in code point order.
+ * @details This is different in UTF-16 from #i18n_ustring_compare_n() if supplementary characters are present. For details, see #i18n_ustring_compare_binary_order().
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @param[in] n The maximum number of characters to compare.
+ * @return a negative/zero/positive integer corresponding to whether
+ * the first string is less than/equal to/greater than the second one
+ * in code point order
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_compare_n_code_point_order(const i18n_uchar *s1, const i18n_uchar *s2, int32_t n);
+
+/**
+ * @brief Compare two strings case-insensitively using full case folding.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @param[in] options  bit set of options:\n
+ *     - #I18N_USTRING_U_FOLD_CASE_DEFAULT or 0 is used for default options: Comparison in code unit order with default case folding.
+ *     - #I18N_USTRING_U_COMPARE_CODE_POINT_ORDER Set to choose code point order instead of code unit order (see u_strCompare for details).
+ *     - #I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I
+ * @return A negative, zero, or positive integer indicating the comparison result.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_case_compare(const i18n_uchar *s1, const i18n_uchar *s2, uint32_t options);
+
+/**
+ * @brief Compare two strings case-insensitively using full case folding.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @param[in] n The maximum number of characters each string to case-fold and then compare.
+ * @param[in] options A bit set of options:\n
+ *     - #I18N_USTRING_U_FOLD_CASE_DEFAULT or 0 is used for default options: Comparison in code unit order with default case folding.
+ *     - #I18N_USTRING_U_COMPARE_CODE_POINT_ORDER Set to choose code point order instead of code unit order (see u_strCompare for details).
+ *     - #I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I
+ * @return A negative, zero, or positive integer indicating the comparison result.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_case_compare_n(const i18n_uchar *s1, const i18n_uchar *s2, int32_t n, uint32_t options);
+
+/**
+ * @brief Compare two strings case-insensitively using full case folding.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @param[in] length The number of characters in each string to case-fold and then compare.
+ * @param[in] options A bit set of options:\n
+ *     - #I18N_USTRING_U_FOLD_CASE_DEFAULT or 0 is used for default options: Comparison in code unit order with default case folding.
+ *     - #I18N_USTRING_U_COMPARE_CODE_POINT_ORDER Set to choose code point order instead of code unit order (see u_strCompare for details).
+ *     - #I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I
+ * @return A negative, zero, or positive integer indicating the comparison result.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_mem_case_compare(const i18n_uchar *s1, const i18n_uchar *s2, int32_t length, uint32_t options);
+
+/**
+ * @brief Copies a ustring. Adds a NULL terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in]  src The source string
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_copy(i18n_uchar *dest, const i18n_uchar *src);
+
+/**
+ * @brief Copies a ustring.
+ * @details Copies at most @a n characters. The result will be NULL terminated
+ * if the length of @a src is less than @a n.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string
+ * @param[in] n The maximum number of characters to copy
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_copy_n(i18n_uchar *dest, const i18n_uchar *src, int32_t n);
+
+/**
+ * @brief Copies a byte string encoded in the default codepage to a ustring.
+ * @details Adds a NULL terminator. Performs a host byte to #i18n_uchar conversion.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_copy_ua(i18n_uchar *dest, const char *src);
+
+/**
+ * @brief Copies a byte string encoded in the default codepage to a ustring.
+ * @details Copies at most @a n characters.     The result will be NULL terminated
+ * if the length of @a src is less than @a n.
+ * Performs a host byte to #i18n_uchar conversion.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string
+ * @param[in] n The maximum number of characters to copy
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_copy_ua_n(i18n_uchar *dest, const char *src, int32_t n);
+
+/**
+ * @brief Copies a ustring to a byte string encoded in the default codepage.
+ * @details Adds a NULL terminator. Performs an #i18n_uchar to host byte conversion.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+char *i18n_ustring_copy_au(char *dest, const i18n_uchar *src);
+
+/**
+ * @brief Copies a ustring to a byte string encoded in the default codepage.
+ * @details Copies at most @a n characters.     The result will be NULL terminated
+ * if the length of @a src is less than @a n.
+ * Performs an #i18n_uchar to host byte conversion.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string
+ * @param[in] n The maximum number of characters to copy
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+char *i18n_ustring_copy_au_n(char *dest, const i18n_uchar *src, int32_t n);
+
+/**
+ * @brief Synonym for memcpy(), but with #i18n_uchar characters only.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string (can be NULL/invalid if count<=0)
+ * @param[in] count The number of characters to copy; no-op if <=0
+ *
+ * @return A pointer to @a dest
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_mem_copy(i18n_uchar *dest, const i18n_uchar *src, int32_t count);
+
+/**
+ * @brief Synonym for memmove(), but with #i18n_uchar characters only.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string (can be NULL/invalid if count<=0)
+ * @param[in] count The number of characters to copy; no-op if <=0
+ *
+ * @return A pointer to @a dest
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_mem_move(i18n_uchar *dest, const i18n_uchar *src, int32_t count);
+
+/**
+ * @brief Initialize count characters of dest to c.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] c The character to initialize the string.
+ * @param[in] count The maximum number of characters to set.
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_mem_set(i18n_uchar *dest, const i18n_uchar c, int32_t count);
+
+/**
+ * @brief Compare the first count #i18n_uchar characters of each buffer.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] buf1 The first string to compare.
+ * @param[in] buf2 The second string to compare.
+ * @param[in] count The maximum number of #i18n_uchar characters to compare.
+ * @return When buf1 < buf2, a negative number is returned.
+ * When buf1 == buf2, 0 is returned.
+ * When buf1 > buf2, a positive number is returned.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_mem_compare(const i18n_uchar *buf1, const i18n_uchar *buf2, int32_t count);
+
+/**
+ * @brief Compare two Unicode strings in code point order.
+ * @details This is different in UTF-16 from #i18n_ustring_mem_compare() if supplementary characters are present. For details, see #i18n_ustring_compare_binary_order().
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @param[in] count The maximum number of characters to compare.
+ * @return a negative/zero/positive integer corresponding to whether
+ * the first string is less than/equal to/greater than the second one
+ * in code point order
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_mem_compare_code_point_order(const i18n_uchar *s1, const i18n_uchar *s2, int32_t count);
+
+/**
+ * @brief Finds the first occurrence of a BMP code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (contains count #i18n_uchar characters).
+ * @param[in] c The BMP code point to find.
+ * @param[in] count The length of the string.
+ * @return A pointer to the first occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_char()
+ * @see i18n_ustring_mem_char32()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_mem_char(const i18n_uchar *s, i18n_uchar c, int32_t count);
+
+/**
+ * @brief Finds the first occurrence of a code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (contains count #i18n_uchar characters).
+ * @param[in] c The code point to find.
+ * @param[in] count The length of the string.
+ * @return A pointer to the first occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_mem_char32(const i18n_uchar *s, i18n_uchar32 c, int32_t count);
+
+/**
+ * @brief Finds the last occurrence of a BMP code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (contains count #i18n_uchar characters).
+ * @param[in] c The BMP code point to find.
+ * @param[in] count The length of the string.
+ * @return A pointer to the last occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see #i18n_ustring_r_char
+ * @see #i18n_ustring_mem_r_char32
+ * @see #i18n_ustring_find_last
+ */
+i18n_uchar *i18n_ustring_mem_r_char(const i18n_uchar *s, i18n_uchar c, int32_t count);
+
+/**
+ * @brief Finds the last occurrence of a code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (contains count #i18n_uchar characters).
+ * @param[in] c The code point to find.
+ * @param[in] count The length of the string.
+ * @return A pointer to the last occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see #i18n_ustring_r_char32
+ * @see #i18n_ustring_mem_r_char
+ * @see #i18n_ustring_find_last
+ */
+i18n_uchar *i18n_ustring_mem_r_char32(const i18n_uchar *s, i18n_uchar32 c, int32_t count);
+
+/**
+ * @brief Unescape a string of characters and write the resulting Unicode characters to the destination buffer.
+ * @details The following escape sequences are recognized:\n
+ * \\uhhhh 4 hex digits; h in [0-9A-Fa-f] \\Uhhhhhhhh 8 hex digits \\xhh 1-2 hex digits \\x{h...} 1-8 hex digits \\ooo 1-3 octal digits; o in [0-7] \\cX control-X; X is masked with 0x1F\n
+ * as well as the standard ANSI C escapes:\n
+ * \\a => U+0007, \\b => U+0008, \\t => U+0009, \\n => U+000A, \\v => U+000B, \\f => U+000C, \\r => U+000D, \\e => U+001B, \\&quot; => U+0022, \\' => U+0027, \\? => U+003F, \\\\ => U+005C\n
+ * Anything else following a backslash is generically escaped. For example, "[a\-z]" returns "[a-z]".\n
+ * If an escape sequence is ill-formed, this method returns an empty string. An example of an ill-formed sequence is "\\u" followed by fewer than 4 hex digits.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] src a zero-terminated string of invariant characters
+ * @param[in] dest pointer to buffer to receive converted and unescaped text and, if there is room, a zero terminator. May be NULL for preflighting, in which case no #i18n_uchar characters will be written,
+ * but the return value will still be valid. On error, an empty string is stored here (if possible).
+ * @param[in] dest_capacity the number of #i18n_uchar characters that may be written at dest. Ignored if dest == NULL.
+ * @return the length of unescaped string.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_unescape_at()
+ */
+int32_t i18n_ustring_unescape(const char *src, i18n_uchar *dest, int32_t dest_capacity);
+
+/**
+ * @brief Unescape a single sequence.
+ * @details The character at offset-1 is assumed (without checking) to be a backslash. This method takes a callback pointer to a function that returns the #i18n_uchar at a given offset.
+ * By varying this callback, I18N functions are able to unescape char* strings, and UnicodeString objects.\n
+ * If offset is out of range, or if the escape sequence is ill-formed, (i18n_uchar32)0xFFFFFFFF is returned.
+ * See documentation of #i18n_ustring_unescape() for a list of recognized sequences.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *                     Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] char_at callback function that returns a #i18n_uchar of the source text given an offset and a context pointer.
+ * @param[in] offset pointer to the offset that will be passed to char_at. The offset value will be updated upon return to point after the last parsed character of the escape sequence.
+ * On error the offset is unchanged.
+ * @param[in] length the number of #i18n_uchar characters that may be written at dest. Ignored if dest == NULL.
+ * @param[in] context an opaque pointer passed directly into char_at.
+ *
+ * @return the character represented by the escape sequence at
+ * offset, or (i18n_uchar32)0xFFFFFFFF on error.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_unescape()
+ */
+i18n_uchar32 i18n_ustring_unescape_at(i18n_ustring_unescape_char_at_cb char_at, int32_t *offset, int32_t length, void *context);
+
+/**
+ * @brief Uppercases the characters in a string.
+ * @details Casing is locale-dependent and context-sensitive.
+ * The result may be longer or shorter than the original.
+ * The source string and the destination buffer are allowed to overlap.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string\n The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string.
+ * @param[in] src The original string
+ * @param[in] src_len The length of the original string\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in]  locale The locale to consider, or "" for the root locale or @c NULL for the default locale.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
+ * only some of the result was written to the destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_to_upper(i18n_uchar *dest, int32_t dest_capacity, const i18n_uchar *src, int32_t src_len, const char *locale, i18n_error_code_e *error_code);
+
+/**
+ * @brief Lowercase the characters in a string.
+ * @details Casing is locale-dependent and context-sensitive. The result may be longer or shorter than the original. The source string and the destination buffer are allowed to overlap.
+ * The result may be longer or shorter than the original.
+ * The source string and the destination buffer are allowed to overlap.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string. The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is 0, then dest may be NULL and the function will only return the length of the result without writing any of the result string.
+ * @param[in] src The original string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in] locale The locale to consider, or "" for the root locale or @c NULL for the default locale.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
+ * only some of the result was written to the destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_to_lower(i18n_uchar *dest, int32_t dest_capacity, const i18n_uchar *src, int32_t src_len, const char *locale, i18n_error_code_e *error_code);
+
+/**
+ * @brief Titlecases a string.
+ * @details Casing is locale-dependent and context-sensitive.
+ * Titlecasing uses a break iterator to find the first characters of words
+ * that are to be titlecased. It titlecases those characters and lowercases
+ * all others.
+ * @remarks The titlecase break iterator can be provided to customize arbitrary
+ * styles, using rules and dictionaries beyond the standard iterators.
+ * It may be more efficient to always provide an iterator to avoid
+ * opening and closing one for each string.
+ * The standard titlecase iterator for the root locale implements the
+ * algorithm of Unicode TR 21.\n
+ * The result may be longer or shorter than the original.
+ * The source string and the destination buffer are allowed to overlap.
+ * @since_tizen 2.3
+ *
+ * @deprecated Deprecated since 2.3.1. Use i18n_ustring_to_title_new() instead.
+ *
+ * @param[out] dest A buffer for the result string\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string.
+ * @param[in] src The original string
+ * @param[in] src_len The length of the original string.\n     If @c -1, then @a src must be zero-terminated.
+ * @param[in] title_iter A break iterator to find the first characters of words
+ * that are to be titlecased\n
+ * If none are provided (NULL), then a standard titlecase
+ * break iterator is opened.
+ * @param[in] locale The locale to consider, or "" for the root locale or @c NULL for the default locale.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
+ * only some of the result was written to the destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_to_title(i18n_uchar *dest, int32_t dest_capacity, const i18n_uchar *src, int32_t src_len, i18n_ubreak_iterator_s *title_iter,
+                                                         const char *locale, i18n_error_code_e *error_code);
+
+/**
+ * @brief Titlecases a string.
+ * @details Casing is locale-dependent and context-sensitive.
+ * Titlecasing uses a break iterator to find the first characters of words
+ * that are to be titlecased. It titlecases those characters and lowercases
+ * all others.
+ *
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section and in #i18n_error_code_e description.
+ *
+ * The titlecase break iterator can be provided to customize arbitrary
+ * styles, using rules and dictionaries beyond the standard iterators.
+ * It may be more efficient to always provide an iterator to avoid
+ * opening and closing one for each string.
+ * The standard titlecase iterator for the root locale implements the
+ * algorithm of Unicode TR 21.\n
+ * The result may be longer or shorter than the original.
+ * The source string and the destination buffer are allowed to overlap.
+ * @since_tizen 2.3.1
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters.\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string.
+ * @param[in] src The original string
+ * @param[in] src_len The length of the original string.\n     If @c -1, then @a src must be zero-terminated.
+ * @param[in] title_iter A break iterator to find the first characters of words
+ * that are to be titlecased.\n
+ * If none are provided (@c NULL), then a standard titlecase
+ * break iterator is opened.
+ * @param[in] locale The locale to consider, or "" for the root locale or @c NULL for the default locale.
+ * @return The length of the result string. It may be greater than dest_capacity. In that case,
+ * only some of the result were written to the destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_to_title()
+ */
+int32_t i18n_ustring_to_title_new(i18n_uchar *dest, int32_t dest_capacity, const i18n_uchar *src, int32_t src_len, i18n_ubreak_iterator_h title_iter, const char *locale);
+
+/**
+ * @brief Case-folds the characters in a string.
+ * @details Case-folding is locale-independent and not context-sensitive,
+ * but there is an option for whether to include or exclude mappings for dotted I and dotless i.\n
+ * The result may be longer or shorter than the original.
+ * The source string and the destination buffer are allowed to overlap.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string.
+ * @param[in] src The original string
+ * @param[in] src_len The length of the original string.\n     If @c -1, then @a src must be zero-terminated.
+ * @param[in] options Either #I18N_USTRING_U_FOLD_CASE_DEFAULT or #I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
+ * only some of the result was written to the destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_fold_case(i18n_uchar *dest, int32_t dest_capacity, const i18n_uchar *src, int32_t src_len, uint32_t options, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-16 string to a wchar_t string.
+ * @details If it is known at compile time that wchar_t strings are in UTF-16 or UTF-32, then this function simply calls the fast, dedicated function for that.
+ * Otherwise, two conversions UTF-16 -> default charset -> wchar_t* are performed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string. The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of wchar_t's).\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string.
+ * @param[in] src_len The length of the original string.\n     If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+wchar_t *i18n_ustring_to_WCS(wchar_t *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a wchar_t string to UTF-16.
+ * @details If it is known at compile time that wchar_t strings are in UTF-16 or UTF-32, then this function simply calls the fast, dedicated function for that.
+ * Otherwise, two conversions wchar_t* -> default charset -> UTF-16 are performed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string. The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters).\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string.
+ * @param[in] src_len The length of the original string.\n     If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_from_WCS(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const wchar_t *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Converts a UTF-16 string to UTF-8.
+ * @details If the input string is not well-formed, then the #I18N_ERROR_INVALID_CHAR_FOUND error code is set.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity     The size of the buffer (number of chars)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_from_UTF8()
+ */
+char *i18n_ustring_to_UTF8(char *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Converts a UTF-8 string to UTF-16.
+ * @details If the input string is not well-formed, then the #I18N_ERROR_INVALID_CHAR_FOUND error code is set.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity     The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_from_UTF8(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const char *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-16 string to UTF-8.
+ * Same as #i18n_ustring_to_UTF8() except for the additional sub_char which is output for illegal input sequences, instead of stopping with the #I18N_ERROR_INVALID_CHAR_FOUND error code.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity     The size of the buffer (number of chars)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in] sub_char The substitution character to use in place of an illegal input sequence, or U_SENTINEL if the function is to return with #I18N_ERROR_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_to_UTF8()
+ * @see i18n_ustring_from_UTF8_with_sub()
+ */
+char *i18n_ustring_to_UTF8_with_sub(char *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar *src, int32_t src_len, i18n_uchar32 sub_char, int32_t *num_substitutions, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-8 string to UTF-16.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity     The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in] sub_char The substitution character to use in place of an illegal input sequence, or U_SENTINEL if the function is to return with #I18N_ERROR_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_from_UTF8()
+ * @see i18n_ustring_from_UTF8_lenient()
+ * @see i18n_ustring_to_UTF8_with_sub()
+ */
+i18n_uchar *i18n_ustring_from_UTF8_with_sub(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const char *src, int32_t src_len, i18n_uchar32 sub_char,
+                                                                                       int32_t *num_substitutions, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-8 string to UTF-16.
+ * @details Same as i18n_ustring_from_UTF8() except that this function is designed to be very fast, which it achieves by being lenient about malformed UTF-8 sequences.
+ * This function is intended for use in environments where UTF-8 text is expected to be well-formed.\n
+ * Its semantics are:
+ * - Well-formed UTF-8 text is correctly converted to well-formed UTF-16 text.\n
+ * - The function will not read beyond the input string, nor write beyond the dest_capacity.\n
+ * - Malformed UTF-8 results in "garbage" 16-bit Unicode strings which may not be well-formed UTF-16. The function will resynchronize to valid code point boundaries within a small number of code points after an illegal sequence.\n
+ * - Non-shortest forms are not detected and will result in "spoofing" output.\n
+ * For further performance improvement, if src_len is given (>=0), then it must be dest_capacity>=src_len.\n
+ * There is no inverse i18n_ustring_to_UTF8_lenient() function because there is practically no performance gain from not checking that a UTF-16 string is well-formed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity     The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * Unlike for other I18N functions, if src_len>=0 then it must be dest_capacity>=src_len.
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding
+ * to the transformation of all the input units, even in case of a buffer overflow.
+ * Unlike for other I18N functions, if src_len>=0 but dest_capacity<src_len, then *dest_len will be
+ * set to src_len (and I18N_U_BUFFER_OVERFLOW_ERROR will be set) regardless of the actual result length.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_from_UTF8()
+ * @see i18n_ustring_to_UTF8_with_sub()
+ * @see i18n_ustring_from_UTF8_with_sub()
+ */
+i18n_uchar *i18n_ustring_from_UTF8_lenient(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const char *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-16 string to UTF-32.
+ * @details If the input string is not well-formed, then the #I18N_ERROR_INVALID_CHAR_FOUND error code is set.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity     The size of the buffer (number of #i18n_uchar32 characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding
+ * to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_to_UTF32_with_sub()
+ * @see i18n_ustring_from_UTF32()
+ */
+i18n_uchar32 *i18n_ustring_to_UTF32(i18n_uchar32 *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-32 string to UTF-16.
+ * @details If the input string is not well-formed, then the #I18N_ERROR_INVALID_CHAR_FOUND error code is set.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity     The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding
+ * to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_from_UTF32_with_sub()
+ * @see i18n_ustring_to_UTF32()
+ */
+i18n_uchar *i18n_ustring_from_UTF32(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar32 *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-16 string to UTF-32.
+ * @details Same as #i18n_ustring_to_UTF32() except for the additional sub_char which is output for illegal input sequences, instead of stopping with the #I18N_ERROR_INVALID_CHAR_FOUND error code.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity     The size of the buffer (number of i18n_char32s)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding
+ * to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in] sub_char The substitution character to use in place of an illegal input sequence, or U_SENTINEL if the function is to return with #I18N_ERROR_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_to_UTF32()
+ * @see i18n_ustring_from_UTF32_with_sub()
+ */
+i18n_uchar32 *i18n_ustring_to_UTF32_with_sub(i18n_uchar32 *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar *src, int32_t src_len,
+                                                                                        i18n_uchar32 sub_char, int32_t *num_substitutions, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-32 string to UTF-16.
+ * Same as #i18n_ustring_from_UTF32() except for the additional sub_char which is output for illegal input sequences, instead of stopping with the #I18N_ERROR_INVALID_CHAR_FOUND error code.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity     The size of the buffer (number of i18n_chars)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding
+ * to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in] sub_char The substitution character to use in place of an illegal input sequence, or U_SENTINEL if the function is to return with #I18N_ERROR_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ *
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_from_UTF32()
+ * @see i18n_ustring_to_UTF32_with_sub()
+ */
+i18n_uchar *i18n_ustring_from_UTF32_with_sub(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar32 *src, int32_t src_len, i18n_uchar32 sub_char, int32_t *num_substitutions, i18n_error_code_e *error_code);
+
+#ifdef __cplusplus
+}
+#endif
+
+/**
+ * @}
+ * @}
+ */
+#endif /* __UTILS_I18N_USTRING_H__*/
diff --git a/src/include/wearable/utils_i18n.h b/src/include/wearable/utils_i18n.h
deleted file mode 100644 (file)
index fedf69a..0000000
+++ /dev/null
@@ -1,2914 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- */
-
-#ifndef __UTILS_I18N_H__
-#define __UTILS_I18N_H__
-
-#include <utils_i18n_ucalendar.h>
-#include <utils_i18n_udate.h>
-#include <utils_i18n_udatepg.h>
-#include <utils_i18n_ulocale.h>
-#include <utils_i18n_unumber.h>
-#include <utils_i18n_uchar.h>
-#include <utils_i18n_ucollator.h>
-#include <utils_i18n_unormalization.h>
-#include <utils_i18n_usearch.h>
-#include <utils_i18n_ustring.h>
-#include <utils_i18n_timezone.h>
-#include <utils_i18n_types.h>
-#include <utils_i18n_uenumeration.h>
-#include <utils_i18n_uset.h>
-#include <utils_i18n_ubrk.h>
-#include <utils_i18n_alpha_idx.h>
-#include <utils_i18n_formattable.h>
-#include <utils_i18n_measure_unit.h>
-#include <utils_i18n_measure.h>
-#include <utils_i18n_format.h>
-#include <utils_i18n_measure_format.h>
-#include <utils_i18n_field_position.h>
-#include <utils_i18n_parse_position.h>
-
-/**
- * @file utils_i18n.h
- * @version 0.1
- * @brief utils_i18n
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_MODULE i18n
- * @brief The i18n module contains uchar, ucollator, unormalization, usearch, ustring, ucalendar, udate, udatepg, ulocale, unumber, alpha_idx, formattable, measure, format, measure format, field position and parse position.
- *        This module provides flexible generation of number or date format patterns and helps you format and parse dates/number for any locale.
- * The i18n module provides various features based on data from ICU. The following table shows the version of ICU used in each Tizen platform.
- * <table>
- *  <tr>
- *   <td>Tizen 2.3.1</td>
- *   <td>ICU 51</td>
- *   <td>CLDR 23</td>
- *   <td>Unicode 6.2</td>
- *  </tr>
- *  <tr>
- *   <td>Tizen 2.3.2, 3.0</td>
- *   <td>ICU 57</td>
- *   <td>CLDR 29</td>
- *   <td>Unicode 8.0</td>
- *  </tr>
- * </table>
- * @section CAPI_BASE_UTILS_I18N_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- * @section CAPI_BASE_UTILS_I18N_MODULE_OVERVIEW Overview
- * <table>
- * <tr>
- *       <th>API</th>
- *       <th>Description</th>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>The Timezone module represents a time zone offset, and also figures out daylight savings.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- *       <td>UEnumeration defines functions for handling String Enumeration.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>Ubrk module defines methods for finding the location of boundaries in text.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- *       <td>Ucollator module performs locale-sensitive string comparison. It builds searching and sorting routines for natural language text and provides correct sorting orders for most locales.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCHAR_MODULE</td>
- *       <td>Uchar module provides low-level access to the Unicode Character Database.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE</td>
- *       <td>Unormalization module provides Unicode normalization functionality for standard unicode normalization.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- *       <td>Usearch module provides language-sensitive text searching based on the comparison rules defined in a ucollator data struct.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>Uset module allows to specify a subset of character used in strings.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>Ustring module provides general unicode string handling.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>Ucalendar is used for converting between a i18n_udate type and a set of integer fields
-                such as #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_HOUR, and so on.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>Udate module consists of functions that convert dates and times from their
-                        internal representations to textual form and back again in a language-independent manner.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td> Udatepg module provides flexible generation of date format patterns, like "yy-MM-dd". </td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>A ulocale represents a specific geographical, political, or cultural region. </td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>Unumber helps you format and parse numbers for any locale.</td>
- * </tr>
- *  <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>Alpha_idx supports the creation of a UI index appropriate for a given language.</td>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>Formattable interconverts between the primitive numeric types (double, long, etc.) as well as the #i18n_udate and char string.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>The MeasureUnit module contains units such as length, mass, volume, currency, etc...</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- *       <td>The Measure module represents an amount of a specified unit, consisting of a number and a unit.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- *       <td>The Format module represents the basic format object.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- *       <td>The Measure Format module represents a formatter for measure objects.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- *       <td>The Field Position module is used to identify fields in a formatted output.</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- *       <td>The Parse Position module used by Format and its subclasses to keep track of the current position during parsing.</td>
- * </tr>
- * </table>
- *
- * @section CAPI_BASE_UTILS_I18N_MODULE_MAPPING_TABLE Mapping Table
- * <table>
- * <tr>
- *       <th>Module</th>
- *       <th>Native API</th>
- *       <th>ICU API</th>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_create_unknown</td>
- *       <td>getUnknown</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_create_gmt</td>
- *       <td>getGMT</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_create</td>
- *       <td>createTimeZone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_destroy</td>
- *       <td></td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_foreach_timezone_id_by_region</td>
- *       <td>createTimeZoneIDEnumeration</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_foreach_timezone_id</td>
- *       <td>createEnumeration</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_foreach_timezone_id_with_offset</td>
- *       <td>createEnumeration</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_foreach_timezone_id_by_country</td>
- *       <td>createEnumeration</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_count_equivalent_ids</td>
- *       <td>countEquivalentIDs</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_get_equivalent_id</td>
- *       <td>getEquivalentID</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_create_default</td>
- *       <td>createDefault</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_set_default</td>
- *       <td>setDefault</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_get_tzdata_version</td>
- *       <td>getTZDataVersion</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_get_region</td>
- *       <td>getRegion</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_get_offset_with_date</td>
- *       <td>getOffset</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_set_raw_offset</td>
- *       <td>setRawOffset</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_get_raw_offset</td>
- *       <td>getRawOffset</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_get_id</td>
- *       <td>getID</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_set_id</td>
- *       <td>setID</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_get_display_name</td>
- *       <td>getDisplayName</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_get_display_name_with_locale</td>
- *       <td>getDisplayName</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_get_display_name_with_type</td>
- *       <td>getDisplayName</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_get_display_name_with_type_locale</td>
- *       <td>getDisplayName</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_use_daylight_time</td>
- *       <td>useDaylightTime</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_has_same_rule</td>
- *       <td>hasSameRules</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_clone</td>
- *       <td>clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- *       <td>#i18n_timezone_get_dst_savings</td>
- *       <td>getDSTSavings</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- *       <td>#i18n_uenumeration_destroy</td>
- *       <td>uenum_close</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- *       <td>#i18n_uenumeration_count</td>
- *       <td>uenum_count</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- *       <td>#i18n_uenumeration_unext</td>
- *       <td>uenum_unext</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- *       <td>#i18n_uenumeration_next</td>
- *       <td>uenum_next</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- *       <td>#i18n_uenumeration_reset</td>
- *       <td>uenum_reset</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- *       <td>#i18n_uenumeration_uchar_strings_enumeration_create</td>
- *       <td>uenum_openUCharStringsEnumeration</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- *       <td>#i18n_uenumeration_char_strings_enumeration_create</td>
- *       <td>uenum_openCharStringsEnumeration</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_create</td>
- *       <td>ubrk_open</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_create_rules</td>
- *       <td>ubrk_openRules</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_safe_clone</td>
- *       <td>ubrk_safeClone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_destroy</td>
- *       <td>ubrk_close</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_set_text</td>
- *       <td>ubrk_setText</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_current</td>
- *       <td>ubrk_current</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_next</td>
- *       <td>ubrk_next</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_preceding</td>
- *       <td>ubrk_preceding</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_previous</td>
- *       <td>ubrk_previous</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_first</td>
- *       <td>ubrk_first</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_last</td>
- *       <td>ubrk_last</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_following</td>
- *       <td>ubrk_following</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_get_available</td>
- *       <td>ubrk_getAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_count_available</td>
- *       <td>ubrk_countAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_is_boundary</td>
- *       <td>ubrk_isBoundary</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_get_rule_status</td>
- *       <td>ubrk_getRuleStatus</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_get_rule_status_vec</td>
- *       <td>ubrk_getRuleStatusVec</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- *       <td>#i18n_ubrk_get_locale_by_type</td>
- *       <td>ubrk_getLocaleByType</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_set_default_timezone</td>
- *       <td>ucal_setDefaultTimeZone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_now</td>
- *       <td>ucal_getNow</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_create</td>
- *       <td>ucal_open</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_destroy</td>
- *       <td>ucal_close</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_clone</td>
- *       <td>ucal_clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_timezone_displayname</td>
- *       <td>ucal_getTimeZoneDisplayName</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_is_in_daylight_time</td>
- *       <td>ucal_inDaylightTime</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_set</td>
- *       <td>ucal_set</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_set_attribute</td>
- *       <td>ucal_setAttribute</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_attribute</td>
- *       <td>ucal_getAttribute</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_milliseconds</td>
- *       <td>ucal_getMillis</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_set_milliseconds</td>
- *       <td>ucal_setMillis</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_set_date_time</td>
- *       <td>ucal_setDateTime</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_is_equivalent_to</td>
- *       <td>ucal_equivalentTo</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_add</td>
- *       <td>ucal_add</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get</td>
- *       <td>ucal_get</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_clear</td>
- *       <td>ucal_clear</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_clear_field</td>
- *       <td>ucal_clearField</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_count_available</td>
- *       <td>ucal_countAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_country_timezones_create</td>
- *       <td>ucal_openCountryTimeZones</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_available</td>
- *       <td>ucal_getAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_canonical_timezone_id</td>
- *       <td>ucal_getCanonicalTimeZoneID</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_day_of_week_type</td>
- *       <td>ucal_getDayOfWeekType</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_default_timezone</td>
- *       <td>ucal_getDefaultTimeZone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_field_difference</td>
- *       <td>ucal_getFieldDifference</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_gregorian_change</td>
- *       <td>ucal_getGregorianChange</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_keyword_values_for_locale</td>
- *       <td>ucal_getKeywordValuesForLocale</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_limit</td>
- *       <td>ucal_getLimit</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_locale_by_type</td>
- *       <td>ucal_getLocaleByType</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_timezone_id</td>
- *       <td>ucal_getTimeZoneID</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_timezone_transition_date</td>
- *       <td>ucal_getTimeZoneTransitionDate</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_type</td>
- *       <td>ucal_getType</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_tz_data_version</td>
- *       <td>ucal_getTZDataVersion</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_get_weekend_transition</td>
- *       <td>ucal_getWeekendTransition</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_is_set</td>
- *       <td>ucal_isSet</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_is_weekend</td>
- *       <td>ucal_isWeekend</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_roll</td>
- *       <td>ucal_roll</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_set_date</td>
- *       <td>ucal_setDate</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_set_gregorian_change</td>
- *       <td>ucal_setGregorianChange</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_set_timezone</td>
- *       <td>ucal_setTimeZone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_timezones_create</td>
- *       <td>ucal_openTimeZones</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- *       <td>#i18n_ucalendar_timezone_id_enumeration_create</td>
- *       <td>ucal_openTimeZoneIDEnumeration</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCHAR_MODULE</td>
- *       <td>#i18n_uchar_get_int_property_value</td>
- *       <td>u_getIntpropertyValue</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCHAR_MODULE</td>
- *       <td>#i18n_uchar_get_ublock_code</td>
- *       <td>ublock_getCode</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- *       <td>#i18n_ucollator_create</td>
- *       <td>ucol_open</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- *       <td>#i18n_ucollator_destroy</td>
- *       <td>ucol_close</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- *       <td>#i18n_ucollator_str_collator</td>
- *       <td>ucol_strcoll</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- *       <td>#i18n_ucollator_equal</td>
- *       <td>ucol_equal</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- *       <td>#i18n_ucollator_set_strength</td>
- *       <td>ucol_setStrength</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- *       <td>#i18n_ucollator_set_attribute</td>
- *       <td>ucol_setAttribute</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_create</td>
- *       <td>udat_open</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_destroy</td>
- *       <td>udat_close</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_format_date</td>
- *       <td>udat_format</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_apply_pattern</td>
- *       <td>udat_applyPattern</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_clone</td>
- *       <td>udat_clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_count_available</td>
- *       <td>udat_countAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_count_symbols</td>
- *       <td>udat_countSymbols</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_get_2digit_year_start</td>
- *       <td>udat_get2DigitYearStart</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_get_available</td>
- *       <td>udat_getAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_get_calendar</td>
- *       <td>udat_getCalendar</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_get_locale_by_type</td>
- *       <td>udat_getLocaleByType</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_get_number_format</td>
- *       <td>udat_getNumberFormat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_get_symbols</td>
- *       <td>udat_getSymbols</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_is_lenient</td>
- *       <td>udat_isLenient</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_parse</td>
- *       <td>udat_parse</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_parse_calendar</td>
- *       <td>udat_parseCalendar</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_set_2digit_year_start</td>
- *       <td>udat_set2DigitYearStart</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_set_calendar</td>
- *       <td>udat_setCalendar</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_set_context</td>
- *       <td>udat_setContext</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_set_lenient</td>
- *       <td>udat_setLenient</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_set_number_format</td>
- *       <td>udat_setNumberFormat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_set_symbols</td>
- *       <td>udat_setSymbols</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_to_calendar_date_field</td>
- *       <td>udat_toCalendarDateField</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- *       <td>#i18n_udate_to_pattern</td>
- *       <td>udat_toPattern</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_create</td>
- *       <td>udatpg_open</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_destroy</td>
- *       <td>udatpg_close</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_get_best_pattern</td>
- *       <td>udatpg_getBestPattern</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_add_pattern</td>
- *       <td>udatpg_addPattern</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_base_skeletons_create</td>
- *       <td>udatpg_openBaseSkeletons</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_clone</td>
- *       <td>udatpg_clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_create_empty</td>
- *       <td>udatpg_openEmpty</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_get_append_item_format</td>
- *       <td>udatpg_getAppendItemFormat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_get_append_item_name</td>
- *       <td>udatpg_getAppendItemName</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_get_base_skeleton</td>
- *       <td>udatpg_getBaseSkeleton</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_get_best_pattern_with_options</td>
- *       <td>udatpg_getBestPatternWithOptions</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_get_date_time_format</td>
- *       <td>udatpg_getDateTimeFormat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_get_decimal</td>
- *       <td>udatpg_getDecimal</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_get_pattern_for_skeleton</td>
- *       <td>udatpg_getPatternForSkeleton</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_get_skeleton</td>
- *       <td>udatpg_getSkeleton</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_replace_field_types</td>
- *       <td>udatpg_replaceFieldTypes</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_replace_field_types_with_options</td>
- *       <td>udatpg_replaceFieldTypesWithOptions</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_set_append_item_format</td>
- *       <td>udatpg_setAppendItemFormat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_set_append_item_name</td>
- *       <td>udatpg_setAppendItemName</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_set_date_time_format</td>
- *       <td>udatpg_setDateTimeFormat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_set_decimal</td>
- *       <td>udatpg_setDecimal</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- *       <td>#i18n_udatepg_skeletons_create</td>
- *       <td>udatpg_openSkeletons</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_default</td>
- *       <td>uloc_getDefault</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_set_default</td>
- *       <td>uloc_setDefault</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_language</td>
- *       <td>uloc_getLanguage</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_country</td>
- *       <td>uloc_getCountry</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_display_name</td>
- *       <td>uloc_getDisplayName</td>
- * </tr>
- *
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_add_likely_subtags</td>
- *       <td>uloc_addLikelySubtags</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_canonicalize</td>
- *       <td>uloc_canonicalize</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_for_language_tag</td>
- *       <td>uloc_forLanguageTag</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_base_name</td>
- *       <td>uloc_getBaseName</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_character_orientation</td>
- *       <td>uloc_getCharacterOrientation</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_display_country</td>
- *       <td>uloc_getDisplayCountry</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_display_keyword</td>
- *       <td>uloc_getDisplayKeyword</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_display_keyword_value</td>
- *       <td>uloc_getDisplayKeywordValue</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_display_language</td>
- *       <td>uloc_getDisplayLanguage</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_display_script</td>
- *       <td>uloc_getDisplayScript</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_display_variant</td>
- *       <td>uloc_getDisplayVariant</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_iso3_country</td>
- *       <td>uloc_getISO3Country</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_iso3_language</td>
- *       <td>uloc_getISO3Language</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_iso_countries</td>
- *       <td>uloc_getISOCountries</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_iso_languages</td>
- *       <td>uloc_getISOLanguages</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_keyword_value</td>
- *       <td>uloc_getKeywordValue</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_lcid</td>
- *       <td>uloc_getLCID</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_line_orientation</td>
- *       <td>uloc_getLineOrientation</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_locale_for_lcid</td>
- *       <td>uloc_getLocaleForLCID</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_name</td>
- *       <td>uloc_getName</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_parent</td>
- *       <td>uloc_getParent</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_script</td>
- *       <td>uloc_getScript</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_variant</td>
- *       <td>uloc_getVariant</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_keywords_create</td>
- *       <td>uloc_openKeywords</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_minimize_subtags</td>
- *       <td>uloc_minimizeSubtags</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_set_keyword_value</td>
- *       <td>uloc_setKeywordValue</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_to_language_tag</td>
- *       <td>uloc_toLanguageTag</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_get_available</td>
- *       <td>uloc_getAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- *       <td>#i18n_ulocale_count_available</td>
- *       <td>uloc_countAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE</td>
- *       <td>#i18n_unormalization_get_instance</td>
- *       <td>unorm2_getInstance</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE</td>
- *       <td>#i18n_unormalization_normalize</td>
- *       <td>unorm2_normalize</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_create</td>
- *       <td>unum_open</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_destroy</td>
- *       <td>unum_close</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_get_symbol</td>
- *       <td>unum_getSymbol</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_apply_pattern</td>
- *       <td>unum_applyPattern</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_clone</td>
- *       <td>unum_clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_count_available</td>
- *       <td>unum_countAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_format</td>
- *       <td>unum_format</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_format_decimal</td>
- *       <td>unum_formatDecimal</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_format_double</td>
- *       <td>unum_formatDouble</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_format_double_currency</td>
- *       <td>unum_formatDoubleCurrency</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_format_int64</td>
- *       <td>unum_formatInt64</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_get_attribute</td>
- *       <td>unum_getAttribute</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_get_available</td>
- *       <td>unum_getAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_get_double_attribute</td>
- *       <td>unum_getDoubleAttribute</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_get_locale_by_type</td>
- *       <td>unum_getLocaleByType</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_get_text_attribute</td>
- *       <td>unum_getTextAttribute</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_parse</td>
- *       <td>unum_parse</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_parse_decimal</td>
- *       <td>unum_parseDecimal</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_parse_double</td>
- *       <td>unum_parseDouble</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_parse_double_currency</td>
- *       <td>unum_parseDoubleCurrency</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_parse_int64</td>
- *       <td>unum_parseInt64</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_set_attribute</td>
- *       <td>unum_setAttribute</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_set_double_attribute</td>
- *       <td>unum_setDoubleAttribute</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_set_symbol</td>
- *       <td>unum_setSymbol</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_set_text_attribute</td>
- *       <td>unum_setTextAttribute</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- *       <td>#i18n_unumber_to_pattern</td>
- *       <td>unum_toPattern</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- *       <td>#i18n_usearch_create_new</td>
- *       <td>usearch_open</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- *       <td>#i18n_usearch_destroy</td>
- *       <td>usearch_close</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- *       <td>#i18n_usearch_get_matched_text</td>
- *       <td>usearch_getMatchedText</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- *       <td>#i18n_usearch_get_collator</td>
- *       <td>usearch_getCollator</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- *       <td>#i18n_usearch_first</td>
- *       <td>usearch_first</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_create_empty</td>
- *       <td>uset_openEmpty</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_create</td>
- *       <td>uset_open</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_create_pattern</td>
- *       <td>uset_openPattern</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_create_pattern_options</td>
- *       <td>uset_openPatternOptions</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_destroy</td>
- *       <td>uset_close</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_clone</td>
- *       <td>uset_clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_is_frozen</td>
- *       <td>uset_isFrozen</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_freeze</td>
- *       <td>uset_freeze</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_clone_as_thawed</td>
- *       <td>uset_cloneAsThawed</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_set</td>
- *       <td>uset_set</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_apply_pattern</td>
- *       <td>uset_applyPattern</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_apply_int_property_value</td>
- *       <td>uset_applyIntPropertyValue</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_apply_property_alias</td>
- *       <td>uset_applyPropertyAlias</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_resembles_pattern</td>
- *       <td>uset_resemblesPattern</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_to_pattern</td>
- *       <td>uset_toPattern</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_add</td>
- *       <td>uset_add</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_add_all</td>
- *       <td>uset_addAll</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_add_range</td>
- *       <td>uset_addRange</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_add_string</td>
- *       <td>uset_addString</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_add_all_code_points</td>
- *       <td>uset_addAllCodePoints</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_remove</td>
- *       <td>uset_remove</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_remove_range</td>
- *       <td>uset_removeRange</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_remove_string</td>
- *       <td>uset_removeString</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_remove_all</td>
- *       <td>uset_removeAll</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_retain</td>
- *       <td>uset_retain</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_retain_all</td>
- *       <td>uset_retainAll</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_compact</td>
- *       <td>uset_compact</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_complement</td>
- *       <td>uset_complement</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_complement_all</td>
- *       <td>uset_complementAll</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_clear</td>
- *       <td>uset_clear</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_destroy_over</td>
- *       <td>uset_closeOver</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_remove_all_strings</td>
- *       <td>uset_removeAllStrings</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_is_empty</td>
- *       <td>uset_isEmpty</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_contains</td>
- *       <td>uset_contains</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_contains_range</td>
- *       <td>uset_containsRange</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_contains_string</td>
- *       <td>uset_containsString</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_index_of</td>
- *       <td>uset_indexOf</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_char_at</td>
- *       <td>uset_charAt</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_size</td>
- *       <td>uset_size</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_get_item_count</td>
- *       <td>uset_getItemCount</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_get_item</td>
- *       <td>uset_getItem</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_contains_all</td>
- *       <td>uset_containsAll</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_contains_all_code_points</td>
- *       <td>uset_containsAllCodePoints</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_contains_none</td>
- *       <td>uset_containsNone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_contains_some</td>
- *       <td>uset_containsSome</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_span</td>
- *       <td>uset_span</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_span_back</td>
- *       <td>uset_spanBack</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_span_utf8</td>
- *       <td>uset_spanUTF8</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_span_back_utf8</td>
- *       <td>uset_spanBackUTF8</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_equals</td>
- *       <td>uset_equals</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_serialize</td>
- *       <td>uset_serialize</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_get_serialized_set</td>
- *       <td>uset_getSerializedSet</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_set_serialized_to_one</td>
- *       <td>uset_setSerializedToOne</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_serialized_contains</td>
- *       <td>uset_serializedContains</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_get_serialized_range_count</td>
- *       <td>uset_getSerializedRangeCount</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- *       <td>#i18n_uset_get_serialized_range</td>
- *       <td>uset_getSerializedRange</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_get_length</td>
- *       <td>u_strlen</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_count_char32</td>
- *       <td>u_countChar32</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_has_more_char32_than</td>
- *       <td>u_strHasMoreChar32Than</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_cat</td>
- *       <td>u_strcat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_cat_n</td>
- *       <td>u_strncat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_string</td>
- *       <td>u_strstr</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_find_first</td>
- *       <td>u_strFindFirst</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_char</td>
- *       <td>u_strchr</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_char32</td>
- *       <td>u_strchr32</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_r_string</td>
- *       <td>u_strrstr</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_find_last</td>
- *       <td>u_strFindLast</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_r_char</td>
- *       <td>u_strrchr</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_r_char32</td>
- *       <td>u_strrchr32</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_pbrk</td>
- *       <td>u_strpbrk</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_cspn</td>
- *       <td>u_strcspn</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_spn</td>
- *       <td>u_strspn</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_tokenizer_r</td>
- *       <td>u_strtok_r</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_compare</td>
- *       <td>u_strcmp</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_compare_code_point_order</td>
- *       <td>u_strcmpCodePointOrder</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_compare_binary_order</td>
- *       <td>u_strCompare</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_case_compare_with_length</td>
- *       <td>u_strCaseCompare</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_compare_n</td>
- *       <td>u_strncmp</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_compare_n_code_point_order</td>
- *       <td>u_strncmpCodePointOrder</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_case_compare</td>
- *       <td>u_strcasecmp</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_case_compare_n</td>
- *       <td>u_strncasecmp</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_mem_case_compare</td>
- *       <td>u_memcasecmp</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_copy</td>
- *       <td>u_strcpy</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_copy_n</td>
- *       <td>u_strncpy</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_copy_ua</td>
- *       <td>u_uastrcpy</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_copy_ua_n</td>
- *       <td>u_uastrncpy</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_copy_au</td>
- *       <td>u_austrcpy</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_copy_au_n</td>
- *       <td>u_austrncpy</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_mem_copy</td>
- *       <td>u_memcpy</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_mem_move</td>
- *       <td>u_memmove</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_mem_set</td>
- *       <td>u_memset</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_mem_compare</td>
- *       <td>u_memcmp</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_mem_compare_code_point_order</td>
- *       <td>u_memcmpCodePointOrder</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_mem_char</td>
- *       <td>u_memchr</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_mem_char32</td>
- *       <td>u_memchr32</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_mem_r_char</td>
- *       <td>u_memrchr</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_mem_r_char32</td>
- *       <td>u_memrchr32</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_unescape</td>
- *       <td>u_unescape</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_unescape_at</td>
- *       <td>u_unescapeAt</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_to_upper</td>
- *       <td>u_strToUpper</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_to_lower</td>
- *       <td>u_strToLower</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_to_title_new</td>
- *       <td>u_strToTitle</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_fold_case</td>
- *       <td>u_strFoldCase</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_to_WCS</td>
- *       <td>u_strToWCS</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_from_WCS</td>
- *       <td>u_strFromWCS</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_to_UTF8</td>
- *       <td>u_strToUTF8</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_from_UTF8</td>
- *       <td>u_strFromUTF8</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_to_UTF8_with_sub</td>
- *       <td>u_strToUTF8WithSub</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_from_UTF8_with_sub</td>
- *       <td>u_strFromUTF8WithSub</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_from_UTF8_lenient</td>
- *       <td>u_strFromUTF8Lenient</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_to_UTF32</td>
- *       <td>u_strToUTF32</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_from_UTF32</td>
- *       <td>u_strFromUTF32</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_to_UTF32_with_sub</td>
- *       <td>u_strToUTF32WithSub</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- *       <td>#i18n_ustring_from_UTF32_with_sub</td>
- *       <td>u_strFromUTF32WithSub</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_create</td>
- *       <td>AlphabeticIndex</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_destroy</td>
- *       <td>~AlphabeticIndex</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_add_labels</td>
- *       <td>addLabels</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_add_record</td>
- *       <td>addRecord</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_next_bucket</td>
- *       <td>nextBucket</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_next_record</td>
- *       <td>nextRecord</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_bucket_record_count</td>
- *       <td>getBucketRecordCount</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_bucket_label</td>
- *       <td>getBucketLabel</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_record_data</td>
- *       <td>getRecordData</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_inflow_label</td>
- *       <td>getInflowLabel</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_set_inflow_label</td>
- *       <td>setInflowLabel</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_overflow_label</td>
- *       <td>getOverflowLabel</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_set_overflow_label</td>
- *       <td>setOverflowLabel</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_underflow_label</td>
- *       <td>getUnderflowLabel</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_set_underflow_label</td>
- *       <td>setUnderflowLabel</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_max_label_count</td>
- *       <td>getMaxLabelCount</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_set_max_label_count</td>
- *       <td>setMaxLabelCount</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_clear_records</td>
- *       <td>clearRecords</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_bucket_count</td>
- *       <td>getBucketCount</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_record_count</td>
- *       <td>getRecordCount</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_bucket_index</td>
- *       <td>getBucketIndex(const UnicodeString &itemName, UErrorCode &status)</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_current_bucket_index</td>
- *       <td>getBucketIndex()</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_bucket_label_type</td>
- *       <td>getBucketLabelType</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_get_record_name</td>
- *       <td>getRecordName</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_reset_bucket_iter</td>
- *       <td>resetBucketIterator</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- *       <td>#i18n_alpha_idx_reset_record_iter</td>
- *       <td>resetRecordIterator</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_create_default</td>
- *    <td>Formattable()</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_create_with_udate</td>
- *    <td>Formattable(UDate d, ISDATE flag)</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_create_with_double</td>
- *    <td>Formattable(double d)</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_create_with_long</td>
- *    <td>Formattable(int32_t l)</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_create_with_int64</td>
- *    <td>Formattable(int64_t ll)</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_create_with_char_string</td>
- *    <td>Formattable(const char* strToCopy)</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_create_with_formattable_array</td>
- *    <td>Formattable(const Formattable* arrayToCopy, int32_t count)</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_destroy</td>
- *    <td>delete</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_clone</td>
- *    <td>Formattable::clone</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_get_array</td>
- *    <td>Formattable::getArray</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_get_date</td>
- *    <td>Formattable::getDate</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_get_double</td>
- *    <td>Formattable::getDouble</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_get_int64</td>
- *    <td>Formattable::getInt64</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_get_long</td>
- *    <td>Formattable::getLong</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_get_string</td>
- *    <td>Formattable::getString</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_get_type</td>
- *    <td>Formattable::getType</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_is_numeric</td>
- *    <td>Formattable::isNumeric</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_not_equal</td>
- *    <td>Formattable::operator!=</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_equal</td>
- *    <td>Formattable::operator==</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_element_at</td>
- *    <td>Formattable::operator[]</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_set_array</td>
- *    <td>Formattable::setArray</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_set_date</td>
- *    <td>Formattable::setDate</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_set_double</td>
- *    <td>Formattable::setDouble</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_set_int64</td>
- *    <td>Formattable::setInt64</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_set_long</td>
- *    <td>Formattable::setLong</td>
- * </tr>
- * <tr>
- *    <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- *    <td>#i18n_formattable_set_string</td>
- *    <td>Formattable::setString</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create</td>
- *       <td>MeasureUnit</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_clone</td>
- *       <td>clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_destroy</td>
- *       <td>~MeasureUnit</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_get_type</td>
- *       <td>getType</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_get_subtype</td>
- *       <td>getSubtype</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_get_available</td>
- *       <td>getAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_get_available_with_type</td>
- *       <td>getAvailable</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_foreach_available_type</td>
- *       <td>getAvailableTypes</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_g_force</td>
- *       <td>createGForce</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_meter_per_second_squared</td>
- *       <td>createMeterPerSecondSquared</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_arc_minute</td>
- *       <td>createArcMinute</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_arc_second</td>
- *       <td>createArcSecond</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_degree</td>
- *       <td>createDegree</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_radian</td>
- *       <td>createRadian</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_acre</td>
- *       <td>createAcre</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_hectare</td>
- *       <td>createHectare</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_square_centimeter</td>
- *       <td>createSquareCentimeter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_square_foot</td>
- *       <td>createSquareFoot</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_square_inch</td>
- *       <td>createSquareInch</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_square_kilometer</td>
- *       <td>createSquareKilometer</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_square_meter</td>
- *       <td>createSquareMeter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_square_mile</td>
- *       <td>createSquareMile</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_square_yard</td>
- *       <td>createSquareYard</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_karat</td>
- *       <td>createKarat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_liter_per_kilometer</td>
- *       <td>createLiterPerKilometer</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_mile_per_gallon_imperial</td>
- *       <td>createMilePerGallonImperial</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_bit</td>
- *       <td>createBit</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_byte</td>
- *       <td>createByte</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_gigabit</td>
- *       <td>createGigabit</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_gigabyte</td>
- *       <td>createGigabyte</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_kilobit</td>
- *       <td>createKilobit</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_kilobyte</td>
- *       <td>createKilobyte</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_megabit</td>
- *       <td>createMegabit</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_megabyte</td>
- *       <td>createMegabyte</td>
- * </tr>
- * <tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_terabit</td>
- *       <td>createTerabit</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_terabyte</td>
- *       <td>createTerabyte</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_day</td>
- *       <td>createDay</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_hour</td>
- *       <td>createHour</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_microsecond</td>
- *       <td>createMicrosecond</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_millisecond</td>
- *       <td>createMillisecond</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_minute</td>
- *       <td>createMinute</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_month</td>
- *       <td>createMonth</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_nanosecond</td>
- *       <td>createNanosecond</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_second</td>
- *       <td>createSecond</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_week</td>
- *       <td>createWeek</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_year</td>
- *       <td>createYear</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_ampere</td>
- *       <td>createAmpere</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_milliampere</td>
- *       <td>createMilliampere</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_ohm</td>
- *       <td>createOhm</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_volt</td>
- *       <td>createVolt</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_calorie</td>
- *       <td>createCalorie</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_foodcalorie</td>
- *       <td>createFoodcalorie</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_joule</td>
- *       <td>createJoule</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_kilocalorie</td>
- *       <td>createKilocalorie</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_kilojoule</td>
- *       <td>createKilojoule</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_kilowatt_hour</td>
- *       <td>createKilowattHour</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_gigahertz</td>
- *       <td>createGigahertz</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_hertz</td>
- *       <td>createHertz</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_kilohertz</td>
- *       <td>createKilohertz</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_megahertz</td>
- *       <td>createMegahertz</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_astronomical_unit</td>
- *       <td>createAstronomicalUnit</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_centimeter</td>
- *       <td>createCentimeter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_decimeter</td>
- *       <td>createDecimeter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_fathom</td>
- *       <td>createFathom</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_foot</td>
- *       <td>createFoot</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_furlong</td>
- *       <td>createFurlong</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_inch</td>
- *       <td>createInch</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_kilometer</td>
- *       <td>createKilometer</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_light_year</td>
- *       <td>createLightYear</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_meter</td>
- *       <td>createMeter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_micrometer</td>
- *       <td>createMicrometer</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_mile</td>
- *       <td>createMile</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_millimeter</td>
- *       <td>createMillimeter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_nanometer</td>
- *       <td>createNanometer</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_nautical_mile</td>
- *       <td>createNauticalMile</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_parsec</td>
- *       <td>createParsec</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_picometer</td>
- *       <td>createPicometer</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_yard</td>
- *       <td>createYard</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_lux</td>
- *       <td>createLux</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_carat</td>
- *       <td>createCarat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_gram</td>
- *       <td>createGram</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_kilogram</td>
- *       <td>createKilogram</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_metric_ton</td>
- *       <td>createMetricTon</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_microgram</td>
- *       <td>createMicrogram</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_milligram</td>
- *       <td>createMilligram</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_ounce</td>
- *       <td>createOunce</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_ounce_troy</td>
- *       <td>createOunceTroy</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_pound</td>
- *       <td>createPound</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_stone</td>
- *       <td>createStone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_ton</td>
- *       <td>createTon</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_gigawatt</td>
- *       <td>createGigawatt</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_horsepower</td>
- *       <td>createHorsepower</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_kilowatt</td>
- *       <td>createKilowatt</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_megawatt</td>
- *       <td>createMegawatt</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_milliwatt</td>
- *       <td>createMilliwatt</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_watt</td>
- *       <td>createWatt</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_hectopascal</td>
- *       <td>createHectopascal</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_inch_hg</td>
- *       <td>createInchHg</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_millibar</td>
- *       <td>createMillibar</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_millimeter_of_mercury</td>
- *       <td>createMillimeterOfMercury</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_pound_per_square_inch</td>
- *       <td>createPoundPerSquareInch</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_kilometer_per_hour</td>
- *       <td>createKilometerPerHour</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_meter_per_second</td>
- *       <td>createMeterPerSecond</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_mile_per_hour</td>
- *       <td>createMilePerHour</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_celsius</td>
- *       <td>createCelsius</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_fahrenheit</td>
- *       <td>createFahrenheit</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_kelvin</td>
- *       <td>createKelvin</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_acre_foot</td>
- *       <td>createAcreFoot</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_bushel</td>
- *       <td>createBushel</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_centiliter</td>
- *       <td>createCentiliter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_cubic_centimeter</td>
- *       <td>createCubicCentimeter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_cubic_foot</td>
- *       <td>createCubicFoot</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_cubic_inch</td>
- *       <td>createCubicInch</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_cubic_kilometer</td>
- *       <td>createCubicKilometer</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_cubic_meter</td>
- *       <td>createCubicMeter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_cubic_mile</td>
- *       <td>createCubicMile</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_cubic_yard</td>
- *       <td>createCubicYard</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_cup</td>
- *       <td>createCup</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_deciliter</td>
- *       <td>createDeciliter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_fluid_ounce</td>
- *       <td>createFluidOunce</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_gallon</td>
- *       <td>createGallon</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_hectoliter</td>
- *       <td>createHectoliter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_liter</td>
- *       <td>createLiter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_megaliter</td>
- *       <td>createMegaliter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_milliliter</td>
- *       <td>createMilliliter</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_pint</td>
- *       <td>createPint</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_quart</td>
- *       <td>createQuart</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_tablespoon</td>
- *       <td>createTablespoon</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- *       <td>#i18n_measure_unit_create_teaspoon</td>
- *       <td>createTeaspoon</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- *       <td>#i18n_measure_create</td>
- *       <td>Measure</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- *       <td>#i18n_measure_clone</td>
- *       <td>clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- *       <td>#i18n_measure_destroy</td>
- *       <td>~Measure</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- *       <td>#i18n_measure_get_number</td>
- *       <td>getNumber</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- *       <td>#i18n_measure_get_unit</td>
- *       <td>getUnit</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- *       <td>#i18n_format_destroy</td>
- *       <td>~Format</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- *       <td>#i18n_format_clone</td>
- *       <td>clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- *       <td>#i18n_format_format</td>
- *       <td>format</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- *       <td>#i18n_format_parse_object</td>
- *       <td>parseObject</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- *       <td>#i18n_format_get_locale</td>
- *       <td>getLocale</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- *       <td>#i18n_measure_format_create</td>
- *       <td>MeasureFormat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- *       <td>#i18n_measure_format_destroy</td>
- *       <td>~MeasureFormat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- *       <td>#i18n_measure_format_clone</td>
- *       <td>clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- *       <td>#i18n_measure_format_format</td>
- *       <td>format</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- *       <td>#i18n_measure_format_parse_object</td>
- *       <td>parseObject</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- *       <td>#i18n_measure_format_create_currency_format_from_locale</td>
- *       <td>createCurrencyFormat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- *       <td>#i18n_measure_format_create_currency_format</td>
- *       <td>createCurrencyFormat</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- *       <td>#i18n_field_position_create</td>
- *       <td>FieldPosition</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- *       <td>#i18n_field_position_create_for_field</td>
- *       <td>FieldPosition</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- *       <td>#i18n_field_position_destroy</td>
- *       <td>~FieldPosition</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- *       <td>#i18n_field_position_clone</td>
- *       <td>clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- *       <td>#i18n_field_position_get_field</td>
- *       <td>getField</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- *       <td>#i18n_field_position_get_begin_index</td>
- *       <td>getBeginIndex</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- *       <td>#i18n_field_position_get_end_index</td>
- *       <td>getEndIndex</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- *       <td>#i18n_field_position_set_field</td>
- *       <td>setField</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- *       <td>#i18n_field_position_set_begin_index</td>
- *       <td>setBeginIndex</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- *       <td>#i18n_field_position_set_end_index</td>
- *       <td>setEndIndex</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- *       <td>#i18n_parse_position_create</td>
- *       <td>ParsePosition</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- *       <td>#i18n_parse_position_create_with_index</td>
- *       <td>ParsePosition</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- *       <td>#i18n_parse_position_destroy</td>
- *       <td>~ParsePosition</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- *       <td>#i18n_parse_position_clone</td>
- *       <td>clone</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- *       <td>#i18n_parse_position_get_index</td>
- *       <td>getIndex</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- *       <td>#i18n_parse_position_set_index</td>
- *       <td>setIndex</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- *       <td>#i18n_parse_position_set_error_index</td>
- *       <td>setErrorIndex</td>
- * </tr>
- * <tr>
- *       <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- *       <td>#i18n_parse_position_get_error_index</td>
- *       <td>getErrorIndex</td>
- * </tr>
- * </table>
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif   /* __UTILS_I18N_H__*/
diff --git a/src/include/wearable/utils_i18n_alpha_idx.h b/src/include/wearable/utils_i18n_alpha_idx.h
deleted file mode 100644 (file)
index c43973c..0000000
+++ /dev/null
@@ -1,489 +0,0 @@
-/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- */
-
-#ifndef __UTILS_I18N_ALPHA_IDX_H__
-#define __UTILS_I18N_ALPHA_IDX_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_alpha_idx.h
- * @version 0.1
- * @brief utils_i18n_alpha_idx
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE Alphabetic Index
- * @brief Alphabetic Index supports the creation of a UI index appropriate for a given language.
- * @section CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE_HEADER Required Header
- *          \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE_OVERVIEW Overview
- * @details The module can generate a list of labels for use as a UI "index",
- *          that is, a list of clickable characters (or character sequences)
- *          that allow the user to see a segment (bucket) of a larger "target" list.
- *          That is, each label corresponds to a bucket in the target list, where
- *          everything in the bucket is greater than or equal to the character
- *          (according to the locale's collation). Strings can be added to the index;
- *          they will be in sorted order in the right bucket.
- *          The module also supports having buckets for strings before the first (underflow),
- *          after the last (overflow), and between scripts (inflow). For example,
- *          if the index is constructed with labels for Russian and English,
- *          Greek characters would fall into an inflow bucket between the other two scripts.
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE
- * @{
- */
-
-/**
- * @brief Creates an alphabetic index object for the specified locale.
- * @details If the locale's data does not include index characters,
- *          a set of them will be synthesized based on the locale's
- *          exemplar characters. The locale determines the sorting order
- *          for both the index characters and the user item names appearing
- *          under each Index character.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          #i18n_alpha_idx_destroy() function.
- *
- * @param[in] language  The language of the locale
- * @param[in] country   The country of the locale
- * @param[out] index    The created alphabetic index object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_alpha_idx_create(const char *language, const char *country,
-                          i18n_alpha_idx_h *index);
-
-/**
- * @brief Destroys the alphabetic index object.
- * @since_tizen 2.3.2
- *
- * @param[in] index  The alphabetic index to be destroyed
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_destroy(i18n_alpha_idx_h index);
-
-/**
- * @brief Adds the index characters from a specified locale to the index.
- * @details The labels are added to those that are already in the index;
- *          they do not replace the existing index characters. The collation
- *          order for this index is not changed; it remains that of the locale
- *          that was originally specified when creating this Index.
- * @since_tizen 2.3.2
- *
- * @param[in] index     Label will be added to this alphabetic index
- * @param[in] language  The language of the locale
- * @param[in] country   The country of the locale
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_add_labels(i18n_alpha_idx_h index, const char *language,
-                              const char *country);
-
-/**
- * @brief Adds the record to the alphabetic index.
- * @details Each record will be associated with an index Bucket
- *          based on the record's name.  The list of records for
- *          each bucket will be sorted based on the collation ordering
- *          of the names in the index's locale. Records with duplicate
- *          names are permitted; they will be kept in the order that
- *          they were added.
- * @since_tizen 2.3.2
- *
- * @param[in] index  Record will be added to this alphabetic index
- * @param[in] name   The display name for the record.
- *                   The Record will be placed in a bucket based on this name.
- * @param[in] data   An optional pointer to user data associated with this item
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_add_record(i18n_alpha_idx_h index, const char *name,
-                              const void *data);
-
-/**
- * @brief Sets the next bucket as current bucket in the index.
- * @since_tizen 2.3.2
- *
- * @param[in] index       The alphabetic index, which contains buckets
- * @param[out] available  A flag set to @c true if the next bucket was available,
- *                        or @c false if there were no more buckets.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_ENUM_OUT_OF_SYNC The index is modified while
- * an enumeration of its contents are in process.
- */
-int i18n_alpha_idx_get_next_bucket(i18n_alpha_idx_h index, bool *available);
-
-/**
- * @brief Sets the next record as current record in current bucket of the index.
- * @details When i18n_alpha_idx_get_next_bucket() is called, record iteration is reset
- *          to just before the first record in the new bucket.
- * @since_tizen 2.3.2
- *
- * @param[in] index       The alphabetic index, which contains buckets with records
- * @param[out] available  A flag set to @c true if the next record was available,
- *                        or @c false if there were no more records.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_ENUM_OUT_OF_SYNC The index is modified while
- * an enumeration of its contents are in process.
- */
-int i18n_alpha_idx_get_next_record(i18n_alpha_idx_h index, bool *available);
-
-/**
- * @brief Gets the number of <name, data> records in the current bucket.
- * @details If the current bucket iteration position is before the first
- *          label or after the last, return 0.
- * @since_tizen 2.3.2
- *
- * @param[in] index           The alphabetic index, which contains buckets with records
- * @param[out] records_count  Number of <name, data> records in the current bucket
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_bucket_record_count(i18n_alpha_idx_h index, int32_t *records_count);
-
-/**
- * @brief Gets the name of the label of the current bucket in alphabetic index.
- * @details If the iteration is before the first Bucket
- *          (i18n_alpha_idx_get_next_bucket() has not been called),
- *          or after the last, return an empty string.
- * @since_tizen 2.3.2
- * @remarks The obtained @a label should be released by the caller with the free() function.
- *
- * @param[in] index   The alphabetic index, which contains buckets
- * @param[out] label  The name of the label of the current bucket
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_alpha_idx_get_bucket_label(i18n_alpha_idx_h index, char **label);
-
-/**
- * @brief Gets the data pointer of the current record in a current bucket in alphabetic index.
- * @details Returns NULL if:
- *          - the current iteration position is before the first item in this Bucket,
- *            or after the last,
- *          - the given @a index parameter is invalid.
- * @since_tizen 2.3.2
- * @remarks The specific error code can be obtained using the get_last_result() method.
- *          Error codes are described in Exceptions section.
- *
- * @param[in] index  The alphabetic index, which contains buckets with records
- *
- * @return The data pointer of the current record in a current bucket
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid parameter
- */
-const void *i18n_alpha_idx_get_record_data(i18n_alpha_idx_h index);
-
-/**
- * @brief Gets the default label used for abbreviated buckets between other index characters.
- * @details For example, consider the labels when Latin and Greek are used:
- *          X Y Z ... &\#x0391; &\#x0392; &\#x0393;
- * @since_tizen 2.3.2
- * @remarks The obtained @a label should be released by the caller with the free() function.
- *
- * @param[in] index  The alphabetic index, which contains buckets with records
- * @param[out] label The default label used for abbreviated bucket between other index characters
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_alpha_idx_get_inflow_label(i18n_alpha_idx_h index, char **label);
-
-/**
- * @brief Sets the default label used for abbreviated buckets between other index characters.
- * @details An inflow label will be automatically inserted if two otherwise-adjacent label characters
- *          are from different scripts, e.g. Latin and Cyrillic, and a third script,
- *          e.g. Greek, sorts between the two. The default inflow character is an ellipsis (...)
- * @since_tizen 2.3.2
- *
- * @param[in] index  The alphabetic index, which contains buckets with records
- * @param[in] label  The new inflow label
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_set_inflow_label(i18n_alpha_idx_h index, const char *label);
-
-/**
- * @brief Gets the special label used for items that sort after the last normal label,
- *        and that would not otherwise have an appropriate label.
- * @since_tizen 2.3.2
- * @remarks The obtained @a label should be released by the caller with the free() function.
- *
- * @param[in] index   The alphabetic index, which contains buckets with records
- * @param[out] label  The overflow label
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_alpha_idx_get_overflow_label(i18n_alpha_idx_h index, char **label);
-
-/**
- * @brief Sets the special label used for items that sort after the last normal label,
- *        and that would not otherwise have an appropriate label.
- * @since_tizen 2.3.2
- *
- * @param[in] index  The alphabetic index, which contains buckets with records
- * @param[in] label  The new overflow label
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_set_overflow_label(i18n_alpha_idx_h index, const char *label);
-
-/**
- * @brief Gets the special label used for items that sort before the first normal label,
- *        and that would not otherwise have an appropriate label.
- * @since_tizen 2.3.2
- * @remarks The obtained @a label should be released by the caller with the free() function.
- *
- * @param[in] index   The alphabetic index, which contains buckets with records
- * @param[out] label  The underflow label
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_alpha_idx_get_underflow_label(i18n_alpha_idx_h index, char **label);
-
-/**
- * @brief Sets the special label used for items that sort before the first normal label,
- *        and that would not otherwise have an appropriate label.
- * @since_tizen 2.3.2
- *
- * @param[in] index  The alphabetic index, which contains buckets with records
- * @param[in] label  The new underflow label
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_set_underflow_label(i18n_alpha_idx_h index, const char *label);
-
-/**
- * @brief Gets the limit on the number of labels permitted in the index.
- * @details The number does not include over, under and inflow labels.
- * @since_tizen 2.3.2
- *
- * @param[in] index             The alphabetic index, which contains buckets with records
- * @param[out] max_label_count  The maximum number of labels
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_max_label_count(i18n_alpha_idx_h index, int32_t *max_label_count);
-
-/**
- * @brief Sets a limit on the number of labels permitted in the index.
- * @details The number does not include over, under and inflow labels.
- *          Currently, if the number is exceeded, then every nth item
- *          is removed to bring the count down. A more sophisticated
- *          mechanism may be available in the future.
- * @since_tizen 2.3.2
- *
- * @param[in] index            The alphabetic index, which contains buckets with records
- * @param[in] max_label_count  The new maximum number of labels
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_set_max_label_count(i18n_alpha_idx_h index, int32_t max_label_count);
-
-/**
- * @brief Remove all records from the index.
- * @details The set of Buckets, which define the headings under which records are classified,
- *          is not altered.
- * @since_tizen 2.3.2
- *
- * @param[in] index  The alphabetic index, which contains buckets with records
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_clear_records(i18n_alpha_idx_h index);
-
-/**
- * @brief Gets the number of labels in this index.
- * @since_tizen 2.3.2
- * @remarks Note: may trigger lazy index construction.
- *
- * @param[in] index          The alphabetic index, which contains buckets with records
- * @param[out] bucket_count  The number of labels in this index, including any under,
- *                           over or inflow labels
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_bucket_count(i18n_alpha_idx_h index, int32_t *bucket_count);
-
-/**
- * @brief Gets the total number of records in this index, that is, the number of
- *        <name, data> pairs added.
- * @since_tizen 2.3.2
- *
- * @param[in] index         The alphabetic index, which contains buckets with records
- * @param[out] record_count The number of records in this index, that is,
- *                          the total number of (name, data) items added with
- *                          i18n_alpha_idx_add_record()
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_record_count(i18n_alpha_idx_h index, int32_t *record_count);
-
-/**
- * @brief Given the name of a record, returns the zero-based index of the bucket
- *        in which the item should appear.
- * @details The name need not be in the index.
- *          A Record will not be added to the index by this function.
- *          Bucket numbers are zero-based, in Bucket iteration order.
- * @since_tizen 2.3.2
- *
- * @param[in] index          The alphabetic index, which contains buckets with records
- * @param[in] item_name      The name whose bucket position in the index is to be determined
- * @param[out] bucket_index  The bucket number for this name
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_bucket_index(i18n_alpha_idx_h index, const char *item_name, int32_t *bucket_index);
-
-/**
- * @brief Gets the zero based index of the current bucket of this index.
- * @details Sets the variable pointed by the @a bucket_index to -1 if no iteration
- *          is in process.
- * @since_tizen 2.3.2
- *
- * @param[in] index          The alphabetic index, which contains buckets with records
- * @param[out] bucket_index  The index of the current Bucket
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_current_bucket_index(i18n_alpha_idx_h index, int32_t *bucket_index);
-
-/**
- * @brief Gets the type of the label for the current Bucket
- *        (selected by the iteration over Buckets).
- * @since_tizen 2.3.2
- *
- * @param[in] index  The alphabetic index, which contains buckets with records
- * @param[out] type  The alphabetic index label type
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_bucket_label_type(i18n_alpha_idx_h index,
-        i18n_alpha_idx_label_type_e *type);
-
-/**
- * @brief Gets the name of the current record.
- * @details If the Record iteration position is before the first or after the last record,
- *          sets the string pointed by the @a record_name parameter to NULL and returns
- *          the #I18N_ERROR_INDEX_OUTOFBOUNDS error code.
- * @since_tizen 2.3.2
- * @remarks The obtained @a record_name should be released by the caller with the free() function.
- *
- * @param[in] index        The alphabetic index, which contains buckets with records
- * @param[out] record_name The name of the current index item
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #I18N_ERROR_INDEX_OUTOFBOUNDS Trying to access the index that is out of bounds
- */
-int i18n_alpha_idx_get_record_name(i18n_alpha_idx_h index, char **record_name);
-
-/**
- * @brief Resets the bucket iteration for this index.
- * @details The next call to i18n_alpha_idx_get_next_bucket() will restart the iteration at the first label.
- * @since_tizen 2.3.2
- *
- * @param[in] index  The alphabetic index, which contains buckets with records
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_reset_bucket_iter(i18n_alpha_idx_h index);
-
-/**
- * @brief Resets the record iteration for this index to before the first Record in the current Bucket.
- * @details The next call to i18n_alpha_idx_get_next_record() will restart the iteration at the first label.
- * @since_tizen 2.3.2
- *
- * @param[in] index  The alphabetic index, which contains buckets with records
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_reset_record_iter(i18n_alpha_idx_h index);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_ALPHA_IDX_H__ */
diff --git a/src/include/wearable/utils_i18n_field_position.h b/src/include/wearable/utils_i18n_field_position.h
deleted file mode 100644 (file)
index 6909173..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- */
-
-#ifndef __UTILS_I18N_FIELD_POSITION_H__
-#define __UTILS_I18N_FIELD_POSITION_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_field_position.h
- * @version 0.1
- * @brief utils_i18n_field_position
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE FieldPosition
- * @brief Field Position is a simple type used by the Format module and its submodules
- *        to identify fields in formatted output.
- * @section CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE_HEADER Required Header
- *        \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE_OVERVIEW Overview
- * @details Fields are identified by constants defined in *_format_field_e enumerations.
- * The only fields currently supported are the fields accepted by the date formatter, see #i18n_udate_format_field_e.
- * Field position keeps track of the position of the field within the formatted
- * output with two indices: the index of the first character of the field and the index
- * of the last character of the field. One version of the format function in the various
- * Format modules requires a Field Position object as an argument. You use this format
- * function to perform partial formatting or to get information about the formatted output
- * (such as the position of a field).
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE
- * @{
- */
-
-/**
- * @brief Creates a field position object with a non-specified field.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          i18n_field_position_destroy() function.
- *
- * @param[out] field_position  The created field position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_field_position_create(i18n_field_position_h *field_position);
-
-/**
- * @brief Creates a field position object for the given field.
- * @details The only fields currently supported are the fields accepted by the date formatter,
- *             see #i18n_udate_format_field_e.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          i18n_field_position_destroy() function.
- *
- * @param[in] field            The field value
- * @param[out] field_position  The created field position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_field_position_create_for_field(int32_t field, i18n_field_position_h *field_position);
-
-/**
- * @brief Destroys the field position object.
- * @since_tizen 2.3.2
- *
- * @param[in] field_position  The field position object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_destroy(i18n_field_position_h field_position);
-
-/**
- * @brief Creates a clone of the given @a field_position object.
- * @since_tizen 2.3.2
- * @remarks The @a clone object should be released by the caller with the
- *          i18n_field_position_destroy() function.
- *
- * @param[in]  field_position  The field position object to be cloned
- * @param[out] clone           The created field position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_field_position_clone(i18n_field_position_h field_position, i18n_field_position_h *clone);
-
-/**
- * @brief Retrieves the field identifier.
- * @since_tizen 2.3.2
- *
- * @param[in]  field_position  The field_position object
- * @param[out] field           The field identifier
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_get_field(i18n_field_position_h field_position, int32_t *field);
-
-/**
- * @brief Retrieves the index of the first character in the requested field.
- * @since_tizen 2.3.2
- *
- * @param[in]  field_position  The field position object
- * @param[out] begin_index     The index of the first character in the requested field
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_get_begin_index(i18n_field_position_h field_position, int32_t *begin_index);
-
-/**
- * @brief Retrieves the index of the character following the last character in the requested field.
- * @since_tizen 2.3.2
- *
- * @param[in]  field_position  The field position object
- * @param[out] end_index       The index of the character following the last character
- *                             in the requested field
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_get_end_index(i18n_field_position_h field_position, int32_t *end_index);
-
-/**
- * @brief Sets the field.
- * @since_tizen 2.3.2
- *
- * @param[in] field_position  The field_position object
- * @param[in] field           The new value of the field
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_set_field(i18n_field_position_h field_position, int32_t field);
-
-/**
- * @brief Sets the begin index.
- * @since_tizen 2.3.2
- *
- * @param[in] field_position  The field_position object
- * @param[in] begin_index     The new value of the begin index
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_set_begin_index(i18n_field_position_h field_position, int32_t begin_index);
-
-/**
- * @brief Sets the end index.
- * @since_tizen 2.3.2
- *
- * @param[in] field_position  The field_position object
- * @param[in] end_index       The new value of the end index
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_set_end_index(i18n_field_position_h field_position, int32_t end_index);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_FIELD_POSITION_H__*/
diff --git a/src/include/wearable/utils_i18n_formattable.h b/src/include/wearable/utils_i18n_formattable.h
deleted file mode 100644 (file)
index 3d3727d..0000000
+++ /dev/null
@@ -1,493 +0,0 @@
-/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- */
-
-#ifndef UTILS_I18N_FORMATTABLE_H_
-#define UTILS_I18N_FORMATTABLE_H_
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_formattable.h
- * @version 0.1
- * @brief utils_i18n_formattable
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE Formattable
- * @brief Formattable interconverts between the primitive numeric types
- *        (double, long, etc.) as well as #i18n_udate and char string.
- *
- * @section CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE_HEADER Required Header
- *     \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE_OVERVIEW Overview
- * @details Internally, an #i18n_formattable_h handle holds an object
- *          that is a union of primitive types.
- *          As such, it can only store one flavor of data at a time.
- *          To determine what flavor of data it contains, use the
- *          #i18n_formattable_get_type function.
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE
- * @{
- */
-
-/**
- * @brief Creates a new default #i18n_formattable_h.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          #i18n_formattable_destroy() function.
- *
- * @param[out] formattable  A pointer to a handle to the newly created formattable
- *                          object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_default(i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with an #i18n_udate instance.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          #i18n_formattable_destroy() function.
- *
- * @param[in] date          The #i18n_udate instance
- * @param[out] formattable  A pointer to a handle to the newly created formattable
- *                          object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_udate(i18n_udate date, i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with a double value.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          #i18n_formattable_destroy() function.
- *
- * @param[in] value         The double value to be used
- * @param[out] formattable  A pointer to a handle to the newly created formattable
- *                          object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_double(double value, i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with a long value.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          #i18n_formattable_destroy() function.
- *
- * @param[in] value         The long value to be used
- * @param[out] formattable  A pointer to a handle to the newly created formattable
- *                          object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_long(int32_t value, i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with an int64_t value.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          #i18n_formattable_destroy() function.
- *
- * @param[in] value         The int64_t value to be used
- * @param[out] formattable  A pointer to a handle to the newly created formattable
- *                          object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_int64(int64_t value, i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with a char string pointer.
- * @details Assumes that the char string is null terminated.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          #i18n_formattable_destroy() function.
- *
- * @param[in] str_to_copy   The char string
- * @param[out] formattable  A pointer to a handle to the newly created formattable
- *                          object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_char_string(const char *str_to_copy, i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with an array of
- *        #i18n_formattable_h handles.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          #i18n_formattable_destroy() function.
- *
- * @param[in] array_to_copy  An array with the #i18n_formattable_h handles
- * @param[in] count          The number of the elements in the array
- * @param[out] formattable    A pointer to a handle to the newly created
- *                            formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_formattable_array(const i18n_formattable_h *array_to_copy, int32_t count, i18n_formattable_h *formattable);
-
-/**
- * @brief Releases the given #i18n_formattable_h handle.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable  A handle to the formattable object to be released
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_destroy(i18n_formattable_h formattable);
-
-/**
- * @brief Clones the given formattable handle with the related object to the
- *        @a clone handle.
- * @details Clones can be used concurrently in multiple threads.
- * @since_tizen 2.3.2
- * @remarks The cloned object should be released by the caller with the
- *          #i18n_formattable_destroy() function.
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[out] clone        A pointer to a handle to the formattable object which
- *                          will be filled with a copy of the @a formattable handle.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_clone(i18n_formattable_h formattable, i18n_formattable_h *clone);
-
-/**
- * @brief Gets the array value and count of the given formattable object.
- * @since_tizen 2.3.2
- * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_ARRAY then the
- *          result is undefined. The obtained array should be released by the
- *          caller with the free() function.
- *
- * @param[in] formattable   A handle to the formattable object
- * @param[out] array        A pointer to an array of #i18n_formattable_h handles
- * @param[out] count        A pointer to an int32_t variable which will be filled
- *                          with the number of array's elements
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_array(i18n_formattable_h formattable, i18n_formattable_h **array, int32_t *count);
-
-/**
- * @brief Gets the date value of the given formattable object.
- * @since_tizen 2.3.2
- * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_DATE then the
- *          result is undefined.
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[out] date         A pointer to an i18n_udate object which will be filled
- *                          with the date obtained from the given formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_date(i18n_formattable_h formattable, i18n_udate *date);
-
-/**
- * @brief Gets the double value of the given formattable object.
- * @since_tizen 2.3.2
- * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_DOUBLE then the
- *          result is undefined.
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[out] value        A pointer to a double variable which will be filled
- *                          with the value obtained from the given formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_double(i18n_formattable_h formattable, double *value);
-
-/**
- * @brief Gets the int64 value of the given formattable object.
- * @since_tizen 2.3.2
- * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_INT64 then the
- *          result is undefined.
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[out] value        A pointer to an int64_t variable which will be filled
- *                          with the value obtained from the given formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_int64(i18n_formattable_h formattable, int64_t *value);
-
-/**
- * @brief Gets the long value of the given formattable object.
- * @details If the magnitude is too large to fit in a long, then the maximum or
- *          minimum long value, as appropriate, is set to @a value
- *          and the #I18N_ERROR_INVALID_FORMAT error code is returned by the
- *          function.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable   A handle to the formattable object
- * @param[out] value        A pointer to a int32_t variable which will be filled
- *                          with the value obtained from the given formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_long(i18n_formattable_h formattable, int32_t *value);
-
-/**
- * @brief Gets the string value of the given formattable object.
- * @since_tizen 2.3.2
- * @remarks If the type is not a string, the function returns the
- *          #I18N_ERROR_INVALID_FORMAT error code and the value is set to @c
- *          NULL. The @a value should be released by the caller with the free() function.
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[out] value        A pointer to a char string variable which will be
- *                          filled with the value obtained from the given formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_INVALID_FORMAT The given formattable type is not a string
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #I18N_ERROR_UNKNOWN Unknown error
- */
-int i18n_formattable_get_string(i18n_formattable_h formattable, char **value);
-
-/**
- * @brief Gets the data type of the given formattable object.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[out] type        A pointer to an #i18n_formattable_type_e variable which
- *                         will be filled with the type obtained from the given formattable
- *                         object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_type(i18n_formattable_h formattable, i18n_formattable_type_e *type);
-
-/**
- * @brief Sets the variable pointed by the @a is_numeric pointer to @c true if
- *        the data type of the given formattable object is #I18N_FORMATTABLE_TYPE_DOUBLE,
- *        #I18N_FORMATTABLE_TYPE_LONG or #I18N_FORMATTABLE_TYPE_INT64.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[out] is_numeric  A pointer to a boolean variable which will be filled by
- *                         the function
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_is_numeric(i18n_formattable_h formattable, bool *is_numeric);
-
-/**
- * @brief Sets the variable pointed by the @a not_equal pointer to @c true if
- *        the given @a formattable object is not equal to the given @a other
- *        formattable object.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[in] other        A handle to the other formattable object
- * @param[out] not_equal   A pointer to a boolean variable which will be filled by
- *                         the function
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_not_equal(i18n_formattable_h formattable, i18n_formattable_h other, bool *not_equal);
-
-/**
- * @brief Sets the variable pointed by the @a equal pointer to @c true if the
- *        given @a formattable object is equal to the given @a other
- *        formattable object.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[in] other        A handle to the other formattable object
- * @param[out] equal        A pointer to a boolean variable which will be filled by
- *                          the function
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_equal(i18n_formattable_h formattable, i18n_formattable_h other, bool *equal);
-
-/**
- * @brief Sets the object pointed by the @a element pointer to the element at
- *        the @a index position in the array stored by the given formattable
- *        object (if its type is #I18N_FORMATTABLE_TYPE_ARRAY).
- * @since_tizen 2.3.2
- * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_ARRAY then the
- *          result is undefined.
- *
- *          The obtained formattable element should not be released by the caller
- *          as it belongs to the given formattable object of type #I18N_FORMATTABLE_TYPE_ARRAY.
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[in] index        A number representing the position in the array from
- *                         which the element should be obtained
- * @param[out] element      A pointer to a handle to the formattable object which
- *                          will be filled by the function
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_INDEX_OUTOFBOUNDS Index value out of range
- * @retval #I18N_ERROR_INVALID_FORMAT The given formattable type is not an array
- */
-int i18n_formattable_element_at(i18n_formattable_h formattable, int32_t index, i18n_formattable_h *element);
-
-/**
- * @brief Sets the array value and count of the given formattable object and
- *        changes the type to #I18N_FORMATTABLE_TYPE_ARRAY.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[in] array        An array of handles to the formattable objects
- * @param[in] count        The number of array elements to be copied
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_array(i18n_formattable_h formattable, const i18n_formattable_h *array, int32_t count);
-
-/**
- * @brief Sets the date value of the given formattable object and changes the
- *        type to the #I18N_FORMATTABLE_TYPE_DATE.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[in] date         The new i18n_udate value to be set
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_date(i18n_formattable_h formattable, i18n_udate date);
-
-/**
- * @brief Sets the double value of the given formattable object and changes
- *        the type to the #I18N_FORMATTABLE_TYPE_DOUBLE.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[in] value        The new double value to be set
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_double(i18n_formattable_h formattable, double value);
-
-/**
- * @brief Sets the int64 value of the given formattable object and changes the
- *        type to the #I18N_FORMATTABLE_TYPE_INT64.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[in] value        The new int64_t value to be set
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_int64(i18n_formattable_h formattable, int64_t value);
-
-/**
- * @brief Sets the long value of the given formattable object and changes the
- *        type to the #I18N_FORMATTABLE_TYPE_LONG.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable  A handle to the formattable object
- * @param[in] value        The new int32_t value to be set
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_long(i18n_formattable_h formattable, int32_t value);
-
-/**
- * @brief Sets the string value of the given formattable object and changes
- *        the type to the #I18N_FORMATTABLE_TYPE_STRING.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable     A handle to the formattable object
- * @param[in] string_to_copy  The new string value to be set
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_string(i18n_formattable_h formattable, const char *string_to_copy);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* UTILS_I18N_FORMATTABLE_H_ */
diff --git a/src/include/wearable/utils_i18n_measure.h b/src/include/wearable/utils_i18n_measure.h
deleted file mode 100644 (file)
index 76f9a47..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- */
-
-#ifndef __UTILS_I18N_MEASURE_H__
-#define __UTILS_I18N_MEASURE_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_measure.h
- * @version 0.1
- * @brief utils_i18n_measure
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_MEASURE_MODULE Measure
- * @brief Measure object contains an amount of a specified unit, consisting of a number and an unit.
- * @section CAPI_BASE_UTILS_I18N_MEASURE_MODULE_HEADER Required Header
- *       \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_MEASURE_MODULE_OVERVIEW Overview
- * @details
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_MODULE
- * @{
- */
-
-/**
- * @brief Creates an object with the given numeric amount and the given unit.
- * @details After this call, the caller must not delete the given measure unit object.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          #i18n_measure_destroy() function.
- *
- * @param[in] formattable   A numeric object; The #i18n_formattable_is_numeric()
- *                          function must return @c true for this object.
- * @param[in] measure_unit  The unit object, which must not be @c NULL
- * @param[out] measure      The created measure object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_create(const i18n_formattable_h formattable, i18n_measure_unit_h measure_unit, i18n_measure_h *measure);
-
-/**
- * @brief Creates a polymorphic clone of the given @a clone object.
- * @since_tizen 2.3.2
- * @remarks The @c clone object should be released by the caller with the
- *          #i18n_measure_destroy() function.
- *
- * @param[in]  measure  The measure object to be cloned
- * @param[out] clone    The created measure object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_clone(i18n_measure_h measure, i18n_measure_h *clone);
-
-/**
- * @brief Destroys the measure object.
- * @since_tizen 2.3.2
- *
- * @param[in] measure  The measure object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_measure_destroy(i18n_measure_h measure);
-
-/**
- * @brief Gets a reference to the numeric value of the measure object.
- * @since_tizen 2.3.2
- * @remarks The obtained formattable object should be released by the caller
- *          with the #i18n_formattable_destroy() function.
- *
- * @param[in]  measure      The measure object
- * @param[out] formattable  The numeric value of the measure object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_get_number(i18n_measure_h measure, i18n_formattable_h *formattable);
-
-/**
- * @brief Gets a reference to the unit of the measure object.
- * @since_tizen 2.3.2
- * @remarks The obtained measure unit object should be released by the caller
- *          with the #i18n_measure_unit_destroy() function.
- *
- * @param[in]  measure       The measure object
- * @param[out] measure_unit  The unit of the measure object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_get_unit(i18n_measure_h measure, i18n_measure_unit_h *measure_unit);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_MEASURE_H__*/
diff --git a/src/include/wearable/utils_i18n_measure_format.h b/src/include/wearable/utils_i18n_measure_format.h
deleted file mode 100644 (file)
index 332a995..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- */
-
-#ifndef __UTILS_I18N_MEASURE_FORMAT_H__
-#define __UTILS_I18N_MEASURE_FORMAT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_measure_format.h
- * @version 0.1
- * @brief utils_i18n_measure_format
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE MeasureFormat
- * @brief The MeasureFormat is a formatter for Measure objects.
- * @section CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE_HEADER Required Header
- *       \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE_OVERVIEW Overview
- * @details
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE
- * @{
- */
-
-/**
- * @brief Creates the measure format object using given locale.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          i18n_measure_format_destroy() function.
- *
- * @param[in] language         The language of the locale
- * @param[in] country          The country of the locale
- * @param[in] width            The format width
- * @param[out] measure_format  The created measure format object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_create(const char *language, const char *country,
-        i18n_umeasure_format_width_e width, i18n_measure_format_h *measure_format);
-
-/**
- * @brief Destroys the measure format object
- * @since_tizen 2.3.2
- *
- * @param[in] measure_format  The measure format object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_measure_format_destroy(i18n_measure_format_h measure_format);
-
-/**
- * @brief Creates a polymorphic clone of the given @a measure_format object.
- * @since_tizen 2.3.2
- * @remarks The @a clone object should be released by the caller with the
- *          i18n_measure_format_destroy() function.
- *
- * @param[in]  measure_format  The measure format object to be cloned
- * @param[out] clone           The created measure format object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_clone(i18n_measure_format_h measure_format, i18n_format_h *clone);
-
-/**
- * @brief Formats an object to produce a string.
- * @since_tizen 2.3.2
- * @remarks The obtained @a append_to string is actually a concatenation of the given input string and
- *          the result of the function (appended to the string). Actually, the @a append_to
- *          buffer is being reallocated inside the function which means that the buffer is not
- *          at the same place in memory as it was on the input. Please note that the @a append_to
- *          buffer should be released by the caller with the free() function.
- *
- * @param[in]  measure_format  The format object
- * @param[in]  formattable     The object to format
- * @param[out] append_to       Input/output parameter to receive the result.
- *                             The result is appended to the existing contents.
- * @param[out] field_position  On input: an alignment field, if desired.
- *                             On output: the offsets of the alignment field.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_format(i18n_measure_format_h measure_format, i18n_formattable_h formattable,
-                               char **append_to, i18n_field_position_h field_position);
-
-/**
- * @brief Parses a string to produce an object.
- * @since_tizen 2.3.2
- * @remarks The obtained @a result object should be released by the caller
- *          with the i18n_formattable_destroy() function.
- *
- * @param[in]  measure_format      The format object
- * @param[in]  source              The string to be parsed into an object
- * @param[out]  parse_position     The position to start parsing at. Upon return
- *                                 this parameter is set to the position after the
- *                                 last character successfully parsed. If the
- *                                 source is not parsed successfully, this parameter
- *                                 will remain unchanged.
- * @param[out] result              The formattable object to be set to the parse result.
- *                                 If parse fails, return contents are undefined.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_parse_object(i18n_measure_format_h measure_format, const char *source, i18n_parse_position_h parse_position, i18n_formattable_h *result);
-
-/**
- * @brief Gets a formatter for currency amount objects in the given locale.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          i18n_measure_format_destroy() function.
- *
- * @param[in] language         The language of the locale
- * @param[in] country          The country of the locale
- * @param[out] measure_format  The measure format object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_create_currency_format_from_locale(const char *language, const char *country, i18n_measure_format_h *measure_format);
-
-/**
- * @brief Gets a formatter for currency amount objects in the default locale.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- *          i18n_measure_format_destroy() function.
- *
- * @param[out] measure_format  The measure format object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_create_currency_format(i18n_measure_format_h *measure_format);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_MEASURE_FORMAT_H__*/
diff --git a/src/include/wearable/utils_i18n_private.h b/src/include/wearable/utils_i18n_private.h
deleted file mode 100644 (file)
index 692c2dd..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- */
-
-#ifndef __UTILS_I18N_PRIVATE_H__
-#define __UTILS_I18N_PRIVATE_H__
-
-#include <stdbool.h>
-#include <dlog.h>
-#include <utils_i18n_types.h>
-#include <unicode/utypes.h>
-
-/**
- * @file utils_i18n_private.h
- * @brief utils_i18n_private
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef LOG_TAG
-#undef LOG_TAG
-#endif
-#define LOG_TAG "BASE_UTILS"
-
-#define I18N_ERR(ret) do { \
-               if (ret != I18N_ERROR_NONE) { \
-                       LOGE("err(%d): %s", ret, get_error_message(ret)); \
-               } \
-       } while (0)
-
-#define ERR(fmt, arg...) LOGE(fmt, ##arg)
-
-#define ret_if(expr) do { \
-               if (expr) { \
-                       ERR("(%s)", #expr); \
-                       return; \
-               } \
-       } while (0)
-
-#define retv_if(expr, val) do { \
-               if (expr) { \
-                       ERR("(%s)", #expr); \
-                       return (val); \
-               } \
-       } while (0)
-
-#define retm_if(expr, fmt, arg...) do { \
-               if (expr) { \
-                       ERR(fmt, ##arg); \
-                       return; \
-               } \
-       } while (0)
-
-#define retvm_if(expr, val, fmt, arg...) do { \
-               if (expr) { \
-                       ERR(fmt, ##arg); \
-                       return (val); \
-               } \
-       } while (0)
-
-#define retex_if(expr, val, fmt, arg...) do { \
-               if (expr) { \
-                       ERR(fmt, ##arg); \
-                       val; \
-                       goto CATCH; \
-               } \
-       } while (0);
-
-#define ERR_MAPPING_REVERSE(BASE_UTILS_ERROR, ICU_ERROR) ICU_ERROR = \
-                                                                                                                                        (UErrorCode)_i18n_error_mapping_reverse((int)BASE_UTILS_ERROR)
-
-#define ERR_MAPPING(ICU_ERROR, BASE_UTILS_ERROR) BASE_UTILS_ERROR = \
-                                                                                                                                       (i18n_error_code_e)_i18n_error_mapping((int)ICU_ERROR)
-
-int _i18n_error_mapping(int err);
-int _i18n_error_mapping_reverse(int err);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_PRIVATE_H__*/
diff --git a/src/include/wearable/utils_i18n_types.h b/src/include/wearable/utils_i18n_types.h
deleted file mode 100644 (file)
index 644ecfa..0000000
+++ /dev/null
@@ -1,3028 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *       Licensed under the Apache License, Version 2.0 (the "License");
- *       you may not use this file except in compliance with the License.
- *       You may obtain a copy of the License at
- *
- *               http://www.apache.org/licenses/LICENSE-2.0
- *
- *       Unless required by applicable law or agreed to in writing, software
- *       distributed under the License is distributed on an "AS IS" BASIS,
- *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *       See the License for the specific language governing permissions and
- *       limitations under the License.
- *
- * Copyright (C) 1999-2012, International Business Machines
- * Corporation and others.     All Rights Reserved.
- */
-
-
-
-#ifndef __UTILS_I18N_TYPES_H__
-#define __UTILS_I18N_TYPES_H__
-
-#include <inttypes.h>
-#include <tizen.h>
-#include <wchar.h>
-
-/**
- * @file utils_i18n_types.h
- * @version 0.1
- * @brief utils_i18n_types
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MODULE
- * @{
- */
-
-/**
- * @brief Enumeration for error codes to replace exception handlings.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_ERROR_NONE                                                 = TIZEN_ERROR_NONE,                                       /**< No error, no warning */
-       I18N_ERROR_MISSING_RESOURCE                             = TIZEN_ERROR_UTILITY_ICU | 0x01,         /**< The requested resource cannot be found */
-       I18N_ERROR_INVALID_FORMAT                               = TIZEN_ERROR_UTILITY_ICU | 0x02,         /**< Data format is not what is expected */
-       I18N_ERROR_FILE_ACCESS                                  = TIZEN_ERROR_UTILITY_ICU | 0x03,         /**< The requested file cannot be found */
-       I18N_ERROR_INTERNAL_PROGRAM                             = TIZEN_ERROR_UTILITY_ICU | 0x04,         /**< Indicates a bug in the library code */
-       I18N_ERROR_OUT_OF_MEMORY                                = TIZEN_ERROR_OUT_OF_MEMORY,              /**< Out of memory */
-       I18N_ERROR_INDEX_OUTOFBOUNDS                    = TIZEN_ERROR_UTILITY_ICU | 0x05,         /**< Trying to access the index that is out of bounds */
-       I18N_ERROR_INVALID_CHAR_FOUND                   = TIZEN_ERROR_UTILITY_ICU | 0x06,         /**< Character conversion: Unmappable input sequence. In other APIs: Invalid character */
-       I18N_ERROR_BUFFER_OVERFLOW                              = TIZEN_ERROR_UTILITY_ICU | 0x07,         /**< A result would not fit in the supplied buffer */
-       I18N_ERROR_NOT_SUPPORTED                                = TIZEN_ERROR_NOT_SUPPORTED,              /**< Requested operation is not supported in the current context */
-       I18N_ERROR_COLLATOR_VERSION_MISMATCH    = TIZEN_ERROR_UTILITY_ICU | 0x08,         /**< Collator version is not compatible with the base version */
-       I18N_ERROR_USELESS_COLLATOR                             = TIZEN_ERROR_UTILITY_ICU | 0x09,         /**< Collator is options only and no base is specified */
-       I18N_ERROR_NO_WRITE_PERMISSION                  = TIZEN_ERROR_UTILITY_ICU | 0x0A,         /**< Attempt to modify read-only or constant data */
-       I18N_ERROR_RESOURCE_TYPE_MISMATCH               = TIZEN_ERROR_UTILITY_ICU | 0x0B,         /**< An operation is requested over a resource that does not support it */
-       I18N_ERROR_TOO_MANY_ALIASES                             = TIZEN_ERROR_UTILITY_ICU | 0x0C,         /**< Too many aliases in the path to the requested resource  */
-       I18N_ERROR_INVALID_PARAMETER                    = TIZEN_ERROR_INVALID_PARAMETER,          /**< Invalid function parameter */
-       I18N_ERROR_PERMISSION_DENIED                    = TIZEN_ERROR_PERMISSION_DENIED,          /**< Permission denied */
-
-       I18N_ERROR_MESSAGE_PARSE                                = TIZEN_ERROR_UTILITY_ICU | 0x0D,         /**< Unable to parse a message (message format). @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_PARSE                                                = TIZEN_ERROR_UTILITY_ICU | 0x0E,         /**< Equivalent to Java ParseException. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_TRUNCATED_CHAR_FOUND                 = TIZEN_ERROR_UTILITY_ICU | 0x0F,         /**< Character conversion: Incomplete input sequence. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_ILLEGAL_CHAR_FOUND                   = TIZEN_ERROR_UTILITY_ICU | 0x10,         /**< Character conversion: Illegal input sequence/combination of input units. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_INVALID_TABLE_FORMAT                 = TIZEN_ERROR_UTILITY_ICU | 0x11,         /**< Conversion table file found, but corrupted. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_INVALID_TABLE_FILE                   = TIZEN_ERROR_UTILITY_ICU | 0x12,         /**< Conversion table file not found. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_ILLECAL_ESCAPE_SEQUENCE              = TIZEN_ERROR_UTILITY_ICU | 0x13,         /**< ISO-2022 illegal escape sequence. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_UNSUPPORTED_ESCAPE_SEQUENCE  = TIZEN_ERROR_UTILITY_ICU | 0x14,         /**< ISO-2022 unsupported escape sequence. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_NO_SPACE_AVAILABLE                   = TIZEN_ERROR_UTILITY_ICU | 0x15,         /**< No space available for in-buffer expansion for Arabic shaping. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_CE_NOT_FOUND                                 = TIZEN_ERROR_UTILITY_ICU | 0x16,         /**< Currently used only while setting variable top, but can be used generally. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_PRIMARY_TOO_LONG                             = TIZEN_ERROR_UTILITY_ICU | 0x17,         /**< User tried to set variable top to a primary that is longer than two bytes. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_STATE_TOO_OLD                                = TIZEN_ERROR_UTILITY_ICU | 0x18,         /**< ICU cannot construct a service from this state, as it is no longer supported. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_ENUM_OUT_OF_SYNC                             = TIZEN_ERROR_UTILITY_ICU | 0x19,         /**< UEnumeration out of sync with underlying collection. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_INVARIANT_CONVERSION                 = TIZEN_ERROR_UTILITY_ICU | 0x1A,         /**< Unable to convert a UChar* string to char* with the invariant converter. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_INVALID_STATE                                = TIZEN_ERROR_UTILITY_ICU | 0x1B,         /**< Requested operation can not be completed with ICU in its current state. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_MALFORMED_SET                                = TIZEN_ERROR_UTILITY_ICU | 0x1C,         /**< A UnicodeSet pattern is invalid. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_WARNING_STRING_NOT_TERMINATED              = TIZEN_ERROR_UTILITY_ICU | 0x1D,         /**< String not terminated with NULL. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_STD3_ASCII_RULES                             = TIZEN_ERROR_UTILITY_ICU | 0x1E,         /**< Argument does not satisfy STD3 rules. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_UNASSIGNED                                   = TIZEN_ERROR_UTILITY_ICU | 0x1F,         /**< Unassigned code points are found. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_WARNING_SORT_KEY_TOO_SHORT                 = TIZEN_ERROR_UTILITY_ICU | 0x20,         /**< Number of levels requested in getBound is higher than the number of levels in the sort key. @if MOBILE (Since 2.3.1) @endif*/
-       I18N_ERROR_UNKNOWN                                              = TIZEN_ERROR_UNKNOWN,                            /**< Unknown error. @if MOBILE (Since 2.3.1) @endif*/
-} i18n_error_code_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCHAR_MODULE
- * @{
- */
-
-#define I18N_U_MASK(x)                                           ((uint32_t)1<<(x)) /**< Get a single-bit bit set (a flag) from a bit number 0..31. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-
-#define I18N_U_GC_CN_MASK                                        I18N_U_MASK(I18N_UCHAR_U_GENERAL_OTHER_TYPES)         /**< U_GC_XX_MASK constants are bit flags corresponding to Unicode general category values. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LU_MASK                                        I18N_U_MASK(I18N_UCHAR_U_UPPERCASE_LETTER)            /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LL_MASK                                        I18N_U_MASK(I18N_UCHAR_U_LOWERCASE_LETTER)            /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LT_MASK                                        I18N_U_MASK(I18N_UCHAR_U_TITLECASE_LETTER)            /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LM_MASK                                        I18N_U_MASK(I18N_UCHAR_U_MODIFIER_LETTER)                     /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LO_MASK                                        I18N_U_MASK(I18N_UCHAR_U_OTHER_LETTER)                        /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_MN_MASK                                        I18N_U_MASK(I18N_UCHAR_U_NON_SPACING_MARK)            /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_ME_MASK                                        I18N_U_MASK(I18N_UCHAR_U_ENCLOSING_MARK)                      /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_MC_MASK                                        I18N_U_MASK(I18N_UCHAR_U_COMBINING_SPACING_MARK)      /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_ND_MASK                                        I18N_U_MASK(I18N_UCHAR_U_DECIMAL_DIGIT_NUMBER)        /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_NL_MASK                                        I18N_U_MASK(I18N_UCHAR_U_LETTER_NUMBER)                       /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_NO_MASK                                        I18N_U_MASK(I18N_UCHAR_U_OTHER_NUMBER)                        /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_ZS_MASK                                        I18N_U_MASK(I18N_UCHAR_U_SPACE_SEPARATOR)                     /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_ZL_MASK                                        I18N_U_MASK(I18N_UCHAR_U_LINE_SEPARATOR)                      /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_ZP_MASK                                        I18N_U_MASK(I18N_UCHAR_U_PARAGRAPH_SEPARATOR)         /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_CC_MASK                                        I18N_U_MASK(I18N_UCHAR_U_CONTROL_CHAR)                        /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_CF_MASK                                        I18N_U_MASK(I18N_UCHAR_U_FORMAT_CHAR)                         /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_CO_MASK                                        I18N_U_MASK(I18N_UCHAR_U_PRIVATE_USE_CHAR)            /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_CS_MASK                                        I18N_U_MASK(I18N_UCHAR_U_SURROGATE)                           /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PD_MASK                                        I18N_U_MASK(I18N_UCHAR_U_DASH_PUNCTUATION)            /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PS_MASK                                        I18N_U_MASK(I18N_UCHAR_U_START_PUNCTUATION)           /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PE_MASK                                        I18N_U_MASK(I18N_UCHAR_U_END_PUNCTUATION)                     /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PC_MASK                                        I18N_U_MASK(I18N_UCHAR_U_CONNECTOR_PUNCTUATION)       /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PO_MASK                                        I18N_U_MASK(I18N_UCHAR_U_OTHER_PUNCTUATION)           /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_SM_MASK                                        I18N_U_MASK(I18N_UCHAR_U_MATH_SYMBOL)                         /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_SC_MASK                                        I18N_U_MASK(I18N_UCHAR_U_CURRENCY_SYMBOL)                     /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_SK_MASK                                        I18N_U_MASK(I18N_UCHAR_U_MODIFIER_SYMBOL)                     /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_SO_MASK                                        I18N_U_MASK(I18N_UCHAR_U_OTHER_SYMBOL)                        /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PI_MASK                                        I18N_U_MASK(I18N_UCHAR_U_INITIAL_PUNCTUATION)         /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PF_MASK                                        I18N_U_MASK(I18N_UCHAR_U_FINAL_PUNCTUATION)           /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_L_MASK                                         (I18N_U_GC_LU_MASK|I18N_U_GC_LL_MASK|I18N_U_GC_LT_MASK|I18N_U_GC_LM_MASK|I18N_U_GC_LO_MASK)   /**<Mask constant for multiple #i18n_uchar_category_e bits (L Letters). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LC_MASK                                        (I18N_U_GC_LU_MASK|I18N_U_GC_LL_MASK|I18N_U_GC_LT_MASK)                /**< Mask constant for multiple #i18n_uchar_category_e bits (LC Cased Letters). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_M_MASK                                         (I18N_U_GC_MN_MASK|I18N_U_GC_ME_MASK|I18N_U_GC_MC_MASK)                /**< Mask constant for multiple #i18n_uchar_category_e bits (M Marks). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_N_MASK                                         (I18N_U_GC_ND_MASK|I18N_U_GC_NL_MASK|I18N_U_GC_NO_MASK)                /**< Mask constant for multiple #i18n_uchar_category_e bits (N Numbers). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_Z_MASK                                         (I18N_U_GC_ZS_MASK|I18N_U_GC_ZL_MASK|I18N_U_GC_ZP_MASK)                /**< Mask constant for multiple #i18n_uchar_category_e bits (Z Separators). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_C_MASK                                         (I18N_U_GC_CN_MASK|I18N_U_GC_CC_MASK|I18N_U_GC_CF_MASK|I18N_U_GC_CO_MASK|I18N_U_GC_CS_MASK)            /**<Mask constant for multiple #i18n_uchar_category_e bits (C Others). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_P_MASK                                         (I18N_U_GC_PD_MASK|I18N_U_GC_PS_MASK|I18N_U_GC_PE_MASK|I18N_U_GC_PC_MASK|I18N_U_GC_PO_MASK|I18N_U_GC_PI_MASK|I18N_U_GC_PF_MASK)       /**<Mask constant for multiple #i18n_uchar_category_e bits (P Punctuation). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_S_MASK                                         (I18N_U_GC_SM_MASK|I18N_U_GC_SC_MASK|I18N_U_GC_SK_MASK|I18N_U_GC_SO_MASK)                     /**<Mask constant for multiple #i18n_uchar_category_e bits (S Symbols). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif       */
-
-#define I18N_U_NO_NUMERIC_VALUE                                  ((double)-123456789.)                 /**< Special value that is returned by i18n_uchar_get_numeric_value()(not implemented yet) when no numeric value is defined for a code point. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif  */
-
-#define I18N_U_GET_GC_MASK(c)                            I18N_U_MASK(u_charType(c))    /**< Get a single-bit bit set for the general category of a character. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif  */
-
-/**
- * @brief Option value for case folding: use default mappings defined in CaseFolding.txt.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- */
-#define I18N_U_FOLD_CASE_DEFAULT 0
-
-/**
- * @brief Option value for case folding: \n
- *               Use the modified set of mappings provided in CaseFolding.txt to handle dotted I and dotless i appropriately for Turkic languages (tr, az).\n
- *               Before Unicode 3.2, CaseFolding.txt contains mappings marked with 'I' that are to be included for default mappings and excluded for the Turkic-specific mappings.\n
- *               Unicode 3.2 CaseFolding.txt instead contains mappings marked with 'T' that are to be excluded for default mappings and included for the Turkic-specific mappings.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
-
-
-/**
- * @brief DONE is returned by i18n_usearch_previous() and i18n_usearch_next() after all valid matches have been returned,
- *               and by, i18n_usearch_first() and i18n_usearch_last() if there are no matches at all.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_USEARCH_DONE                                        -1
-
-
-#if !defined(U_WCHAR_IS_UTF16) && !defined(U_WCHAR_IS_UTF32)
-#      ifdef __STDC_ISO_10646__
-#              if (U_SIZEOF_WCHAR_T == 2)
-#                      define U_WCHAR_IS_UTF16
-#              elif (U_SIZEOF_WCHAR_T == 4)
-#                      define  U_WCHAR_IS_UTF32
-#              endif
-#      elif defined __UCS2__
-#              if (U_PF_OS390 <= U_PLATFORM && U_PLATFORM <= U_PF_OS400) && (U_SIZEOF_WCHAR_T == 2)
-#                      define U_WCHAR_IS_UTF16
-#              endif
-#      elif defined(__UCS4__) || (U_PLATFORM == U_PF_OS400 && defined(__UTF32__))
-#              if (U_SIZEOF_WCHAR_T == 4)
-#                      define U_WCHAR_IS_UTF32
-#              endif
-#      elif U_PLATFORM_IS_DARWIN_BASED || (U_SIZEOF_WCHAR_T == 4 && U_PLATFORM_IS_LINUX_BASED)
-#              define U_WCHAR_IS_UTF32
-#      elif U_PLATFORM_HAS_WIN32_API
-#              define U_WCHAR_IS_UTF16
-#      endif
-#endif
-#define U_SIZEOF_UCHAR 2
-
-/**
- * @brief i18n_uchar.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#if defined(UCHAR_TYPE)
-typedef UCHAR_TYPE i18n_uchar;
-/* Not #elif U_HAVE_CHAR16_T -- because that is type-incompatible with pre-C++11 callers
-       typedef char16_t i18n_uchar;  */
-#elif U_SIZEOF_WCHAR_T == 2
-typedef wchar_t i18n_uchar;
-#elif defined(__CHAR16_TYPE__)
-typedef __CHAR16_TYPE__ i18n_uchar;
-#else
-typedef uint16_t i18n_uchar;
-#endif
-
-
-/**
- * @brief i18n_uchar32.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef int32_t i18n_uchar32;
-
-/**
- * @brief i18n_ubool.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef int8_t i18n_ubool;
-
-/**
- * @brief Enumeration of constants for Unicode properties.
- *               The properties APIs are intended to reflect Unicode properties as defined in the
- *               Unicode Character Database (UCD) and Unicode Technical Reports (UTR).
- *               For details about the properties see http://www.unicode.org/ucd/ .
- *               For names of Unicode properties see the UCD file PropertyAliases.txt.
- *
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_ALPHABETIC                                      = 0,
-       /**< Binary property Alphabetic. \n
-                Lu+Ll+Lt+Lm+Lo+Nl+Other_Alphabetic
-        */
-       I18N_UCHAR_BINARY_START                                    = I18N_UCHAR_ALPHABETIC,
-       /**< First constant for binary Unicode properties. */
-       I18N_UCHAR_ASCII_HEX_DIGIT,
-       /**< Binary property ASCII_Hex_Digit. \n
-                0-9 A-F a-f
-        */
-       I18N_UCHAR_BIDI_CONTROL,
-       /**< Binary property Bidi_Control. \n
-        Format controls which have specific functions in the Bidi Algorithm.
-        */
-       I18N_UCHAR_BIDI_MIRRORED,
-       /**< Binary property Bidi_Mirrored. \n
-                Characters that may change display in RTL text. See Bidi Algorithm, UTR 9.
-        */
-       I18N_UCHAR_DASH,
-       /**< Binary property Dash. \n
-                Variations of dashes.
-        */
-       I18N_UCHAR_DEFAULT_IGNORABLE_CODE_POINT,
-       /**< Binary property Default_Ignorable_Code_Point (new in Unicode 3.2). \n
-                Ignorable in most processing. &lt;2060..206F, FFF0..FFFB, E0000..E0FFF&gt;+Other_Default_Ignorable_Code_Point+(Cf+Cc+Cs-White_Space)
-        */
-       I18N_UCHAR_DEPRECATED,
-       /**< Binary property Deprecated (new in Unicode 3.2). \n
-                The usage of deprecated characters is strongly discouraged.
-        */
-       I18N_UCHAR_DIACRITIC,
-       /**< Binary property Diacritic. \n
-                Characters that linguistically modify the meaning of another character to which they apply.
-        */
-       I18N_UCHAR_EXTENDER,
-       /**< Binary property Extender. \n
-                Extend the value or shape of a preceding alphabetic character, e.g. length and iteration marks.
-        */
-       I18N_UCHAR_FULL_COMPOSITION_EXCLUSION,
-       /**< Binary property Full_Composition_Exclusion. \n
-                CompositionExclusions.txt+Singleton Decompositions+ Non-Starter Decompositions.
-        */
-       I18N_UCHAR_GRAPHEME_BASE,
-       /**< Binary property Grapheme_Base (new in Unicode 3.2). \n
-                For programmatic determination of grapheme cluster boundaries. [0..10FFFF]-Cc-Cf-Cs-Co-Cn-Zl-Zp-Grapheme_Link-Grapheme_Extend-CGJ
-        */
-       I18N_UCHAR_GRAPHEME_EXTEND,
-       /**< Binary property Grapheme_Extend (new in Unicode 3.2). \n
-                For programmatic determination of grapheme cluster boundaries. Me+Mn+Mc+Other_Grapheme_Extend-Grapheme_Link-CGJ
-        */
-       I18N_UCHAR_GRAPHEME_LINK,
-       /**< Binary property Grapheme_Link (new in Unicode 3.2). \n
-                For programmatic determination of grapheme cluster boundaries.
-        */
-       I18N_UCHAR_HEX_DIGIT,
-       /**< Binary property Hex_Digit. \n
-                Characters commonly used for hexadecimal numbers.
-        */
-       I18N_UCHAR_HYPHEN,
-       /**< Binary property Hyphen. \n
-                Dashes used to mark connections between pieces of words, plus the Katakana middle dot.
-        */
-       I18N_UCHAR_ID_CONTINUE,
-       /**< Binary property ID_Continue. \n
-                Characters that can continue an identifier. DerivedCoreProperties.txt also says "NOTE: Cf characters should be filtered out." ID_Start+Mn+Mc+Nd+Pc
-        */
-       I18N_UCHAR_ID_START,
-       /**< Binary property ID_Start. \n
-                Characters that can start an identifier. Lu+Ll+Lt+Lm+Lo+Nl
-        */
-       I18N_UCHAR_IDEOGRAPHIC,
-       /**< Binary property Ideographic. \n
-                CJKV ideographs.
-        */
-       I18N_UCHAR_IDS_BINARY_OPERATOR,
-       /**< Binary property IDS_Binary_Operator (new in Unicode 3.2). \n
-                For programmatic determination of Ideographic Description Sequences.
-        */
-       I18N_UCHAR_IDS_TRINARY_OPERATOR,
-       /**< Binary property IDS_Trinary_Operator (new in Unicode 3.2). \n
-                For programmatic determination of Ideographic Description Sequences.
-        */
-       I18N_UCHAR_JOIN_CONTROL,
-       /**< Binary property Join_Control. \n
-                Format controls for cursive joining and ligation.
-        */
-       I18N_UCHAR_LOGICAL_ORDER_EXCEPTION,
-       /**< Binary property Logical_Order_Exception (new in Unicode 3.2). \n
-                Characters that do not use logical order and require special handling in most processing.
-        */
-       I18N_UCHAR_LOWERCASE,
-       /**< Binary property Lowercase. \n
-                Ll+Other_Lowercase
-        */
-       I18N_UCHAR_MATH,
-       /**< Binary property Math. \n
-                Sm+Other_Math
-        */
-       I18N_UCHAR_NONCHARACTER_CODE_POINT,
-       /**< Binary property Noncharacter_Code_Point. \n
-                Code points that are explicitly defined as illegal for the encoding of characters.
-        */
-       I18N_UCHAR_QUOTATION_MARK,
-       /**< Binary property Quotation_Mark. \n
-        */
-       I18N_UCHAR_RADICAL,
-       /**< Binary property Radical (new in Unicode 3.2). \n
-                For programmatic determination of Ideographic Description Sequences.
-        */
-       I18N_UCHAR_SOFT_DOTTED,
-       /**< Binary property Soft_Dotted (new in Unicode 3.2). \n
-                Characters with a "soft dot", like i or j. An accent placed on these characters causes the dot to disappear.
-        */
-       I18N_UCHAR_TERMINAL_PUNCTUATION,
-       /**< Binary property Terminal_Punctuation. \n
-                Punctuation characters that generally mark the end of textual units.
-        */
-       I18N_UCHAR_UNIFIED_IDEOGRAPH,
-       /**< Binary property Unified_Ideograph (new in Unicode 3.2). \n
-                For programmatic determination of Ideographic Description Sequences.
-        */
-       I18N_UCHAR_UPPERCASE,
-       /**< Binary property Uppercase. \n
-                Lu+Other_Uppercase
-        */
-       I18N_UCHAR_WHITE_SPACE,
-       /**< Binary property White_Space. \n
-                Space characters+TAB+CR+LF-ZWSP-ZWNBSP
-        */
-       I18N_UCHAR_XID_CONTINUE,
-       /**< Binary property XID_Continue. \n
-                ID_Continue modified to allow closure under normalization forms NFKC and NFKD.
-        */
-       I18N_UCHAR_XID_START,
-       /**< Binary property XID_Start. \n
-                ID_Start modified to allow closure under normalization forms NFKC and NFKD.
-        */
-       I18N_UCHAR_CASE_SENSITIVE,
-       /**< Binary property Case_Sensitive. \n
-                Either the source of a case mapping or <em>in</em> the target of a case mapping. Not the same as the general category Cased_Letter.
-        */
-       I18N_UCHAR_S_TERM,
-       /**< Binary property STerm (new in Unicode 4.0.1). \n
-        */
-       I18N_UCHAR_VARIATION_SELECTOR,
-       /**< Binary property Variation_Selector (new in Unicode 4.0.1). \n
-                Indicates all those characters that qualify as Variation Selectors.
-                         */
-       I18N_UCHAR_NFD_INERT,
-       /**< Binary property NFD_Inert. \n
-                ICU-specific property for characters that are inert under NFD, i.e., they do not interact with adjacent characters.
-        */
-       I18N_UCHAR_NFKD_INERT,
-       /**< Binary property NFKD_Inert. \n
-                ICU-specific property for characters that are inert under NFKD, i.e., they do not interact with adjacent characters.
-        */
-       I18N_UCHAR_NFC_INERT,
-       /**< Binary property NFC_Inert. \n
-                ICU-specific property for characters that are inert under NFC, i.e., they do not interact with adjacent characters.
-        */
-       I18N_UCHAR_NFKC_INERT,
-       /**< Binary property NFKC_Inert. \n
-                ICU-specific property for characters that are inert under NFKC, i.e., they do not interact with adjacent characters.
-        */
-       I18N_UCHAR_SEGMENT_STARTER,
-       /**< Binary Property Segment_Starter. \n
-                Property for characters that are starters in terms of Unicode normalization and combining character sequences.
-                They have ccc=0 and do not occur in non-initial position of the canonical decomposition of any character
-                (like a-umlaut in NFD and a Jamo T in an NFD(Hangul LVT)).
-        */
-       I18N_UCHAR_PATTERN_SYNTAX,
-       /**< Binary property Pattern_Syntax (new in Unicode 4.1). \n
-        */
-       I18N_UCHAR_PATTERN_WHITE_SPACE,
-       /**< Binary property Pattern_White_Space (new in Unicode 4.1). \n
-        */
-       I18N_UCHAR_POSIX_ALNUM,
-       /**< Binary property alnum (a C/POSIX character class).*/
-       I18N_UCHAR_POSIX_BLANK,
-       /**< Binary property blank (a C/POSIX character class).*/
-       I18N_UCHAR_POSIX_GRAPH,
-       /**< Binary property graph (a C/POSIX character class). */
-       I18N_UCHAR_POSIX_PRINT,
-       /**< Binary property print (a C/POSIX character class). */
-       I18N_UCHAR_POSIX_XDIGIT,
-       /**< Binary property xdigit (a C/POSIX character class). */
-       I18N_UCHAR_CASED,
-       /**< Binary property Cased. \n
-                For Lowercase, Uppercase and Titlecase characters.
-        */
-       I18N_UCHAR_CASE_IGNORABLE,
-       /**< Binary property Case_Ignorable. \n
-                Used in context-sensitive case mappings.
-        */
-       I18N_UCHAR_CHANGES_WHEN_LOWERCASED,
-       /**< Binary property Changes_When_Lowercased. */
-       I18N_UCHAR_CHANGES_WHEN_UPPERCASED,
-       /**< Binary property Changes_When_Uppercased. */
-       I18N_UCHAR_CHANGES_WHEN_TITLECASED,
-       /**< Binary property Changes_When_Titlecased. */
-       I18N_UCHAR_CHANGES_WHEN_CASEFOLDED,
-       /**< Binary property Changes_When_Casefolded. */
-       I18N_UCHAR_CHANGES_WHEN_CASEMAPPED,
-       /**< Binary property Changes_When_Casemapped. */
-       I18N_UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED,
-       /**< Binary property Changes_When_NFKC_Casefolded. */
-       I18N_UCHAR_BINARY_LIMIT,
-       /**< One more than the last constant for binary Unicode properties. */
-       I18N_UCHAR_BIDI_CLASS                                      = 0x1000,
-       /**< Enumerated property Bidi_Class. \n
-                Same as u_charDirection, returns #i18n_uchar_direction_e values.
-        */
-       I18N_UCHAR_INT_START                                       = I18N_UCHAR_BIDI_CLASS,
-       /**< First constant for enumerated/integer Unicode properties. */
-       I18N_UCHAR_BLOCK,
-       /**< Enumerated property Block. \n
-                Returns #i18n_uchar_ublock_code_e values.
-        */
-       I18N_UCHAR_CANONICAL_COMBINING_CLASS,
-       /**< Enumerated property Canonical_Combining_Class. \n
-                Returns 8-bit numeric values.
-        */
-       I18N_UCHAR_DECOMPOSITION_TYPE,
-       /**< Enumerated property Decomposition_Type. \n
-                Returns #i18n_uchar_u_decomposition_type_e values.
-        */
-       I18N_UCHAR_EAST_ASIAN_WIDTH,
-       /**< Enumerated property East_Asian_Width. \n
-                 Returns #i18n_uchar_u_east_asian_width_e values.
-        */
-       I18N_UCHAR_GENERAL_CATEGORY,
-       /**< Enumerated property General_Category. \n
-                Returns #i18n_uchar_category_e values.
-        */
-       I18N_UCHAR_JOINING_GROUP,
-       /**< Enumerated property Joining_Group. \n
-                Returns #i18n_uchar_u_joining_group_e values.
-        */
-       I18N_UCHAR_JOINING_TYPE,
-       /**< Enumerated property Joining_Type. \n
-                Returns #i18n_uchar_u_joining_type_e values.
-        */
-       I18N_UCHAR_LINE_BREAK,
-       /**< Enumerated property Line_Break. \n
-                Returns #i18n_uchar_u_line_break_e values.
-        */
-       I18N_UCHAR_NUMERIC_TYPE,
-       /**< Enumerated property Numeric_Type. \n
-                Returns #i18n_uchar_u_numeric_type_e values.
-        */
-       I18N_UCHAR_SCRIPT,
-       /**< Enumerated property Script. \n
-                Returns #i18n_uscript_code_e values.
-        */
-       I18N_UCHAR_HANGUL_SYLLABLE_TYPE,
-       /**< Enumerated property Hangul_Syllable_Type, new in Unicode 4. \n
-                Returns #i18n_uchar_u_hangul_syllable_type_e values.
-        */
-       I18N_UCHAR_NFD_QUICK_CHECK,
-       /**< Enumerated property NFD_Quick_Check. \n
-                Returns #i18n_unormalization_check_result_e values.
-        */
-       I18N_UCHAR_NFKD_QUICK_CHECK,
-       /**< Enumerated property NFKD_Quick_Check. \n
-                Returns #i18n_unormalization_check_result_e values.
-        */
-       I18N_UCHAR_NFC_QUICK_CHECK,
-       /**< Enumerated property NFC_Quick_Check. \n
-                Returns #i18n_unormalization_check_result_e values.
-        */
-       I18N_UCHAR_NFKC_QUICK_CHECK,
-       /**< Enumerated property NFKC_Quick_Check. \n
-                Returns #i18n_unormalization_check_result_e values.
-        */
-       I18N_UCHAR_LEAD_CANONICAL_COMBINING_CLASS,
-       /**< Enumerated property Lead_Canonical_Combining_Class. \n
-                Returns 8-bit numeric values like #UCHAR_CANONICAL_COMBINING_CLASS.
-        */
-       I18N_UCHAR_TRAIL_CANONICAL_COMBINING_CLASS,
-       /**< Enumerated property Trail_Canonical_Combining_Class. \n
-                Returns 8-bit numeric values like #UCHAR_CANONICAL_COMBINING_CLASS.
-        */
-       I18N_UCHAR_GRAPHEME_CLUSTER_BREAK,
-       /**< Enumerated property Grapheme_Cluster_Break (new in Unicode 4.1). \n
-                Returns #i18n_uchar_u_grapheme_cluster_break_e values.
-        */
-       I18N_UCHAR_SENTENCE_BREAK,
-       /**< Enumerated property Sentence_Break (new in Unicode 4.1). \n
-                Returns #i18n_uchar_u_sentence_break_e values.
-        */
-       I18N_UCHAR_WORD_BREAK,
-       /**< Enumerated property Word_Break (new in Unicode 4.1). \n
-                Returns #i18n_uchar_u_word_break_values_e values.
-        */
-       I18N_UCHAR_BIDI_PAIRED_BRACKET_TYPE,
-       /**< Enumerated property Bidi_Paired_Bracket_Type. \n
-                Returns #i18n_uchar_u_bidi_paired_bracket_type_e values .
-        */
-       I18N_UCHAR_INT_LIMIT,
-       /**< One more than the last constant for enumerated/integer Unicode properties. */
-       I18N_UCHAR_GENERAL_CATEGORY_MASK                   = 0x2000,
-       /**< Bitmask property General_Category_Mask. \n
-                Mask values should be cast to uint32_t.
-        */
-       I18N_UCHAR_MASK_START                                      = I18N_UCHAR_GENERAL_CATEGORY_MASK,
-       /**< First constant for bit-mask Unicode properties. */
-       I18N_UCHAR_MASK_LIMIT,
-       /**< One more than the last constant for bit-mask Unicode properties. */
-       I18N_UCHAR_NUMERIC_VALUE                                   = 0x3000,
-       /**< Double property Numeric_Value. */
-       I18N_UCHAR_DOUBLE_START                                    = I18N_UCHAR_NUMERIC_VALUE,
-       /**< First constant for double Unicode properties. */
-       I18N_UCHAR_DOUBLE_LIMIT,
-       /**< One more than the last constant for double Unicode properties. */
-       I18N_UCHAR_AGE                                                     = 0x4000,
-       /**< String property Age. */
-       I18N_UCHAR_STRING_START                                    = I18N_UCHAR_AGE,
-       /**< First constant for string Unicode properties. */
-       I18N_UCHAR_BIDI_MIRRORING_GLYPH,
-       /**< String property Bidi_Mirroring_Glyph. */
-       I18N_UCHAR_CASE_FOLDING,
-       /**< String property Case_Folding. */
-       I18N_UCHAR_LOWERCASE_MAPPING                       = 0x4004,
-       /**< String property Lowercase_Mapping. */
-       I18N_UCHAR_NAME,
-       /**< String property Name. */
-       I18N_UCHAR_SIMPLE_CASE_FOLDING,
-       /**< String property Simple_Case_Folding. */
-       I18N_UCHAR_SIMPLE_LOWERCASE_MAPPING,
-       /**< String property Simple_Lowercase_Mapping. */
-       I18N_UCHAR_SIMPLE_TITLECASE_MAPPING,
-       /**< String property Simple_Titlecase_Mapping. */
-       I18N_UCHAR_SIMPLE_UPPERCASE_MAPPING,
-       /**< String property Simple_Uppercase_Mapping. */
-       I18N_UCHAR_TITLECASE_MAPPING,
-       /**< String property Titlecase_Mapping. */
-       I18N_UCHAR_UPPERCASE_MAPPING                       = 0x400C,
-       /**< String property Uppercase_Mapping. */
-       I18N_UCHAR_BIDI_PAIRED_BRACKET                            = 0x400D,
-       /**< String property Bidi_Paired_Bracket. */
-       I18N_UCHAR_STRING_LIMIT,
-       /**< One more than the last constant for string Unicode properties. */
-       I18N_UCHAR_SCRIPT_EXTENSIONS                       = 0x7000,
-       /**< Provisional property Script_Extensions (new in Unicode 6.0). */
-       I18N_UCHAR_OTHER_PROPERTY_START                    = I18N_UCHAR_SCRIPT_EXTENSIONS,
-       /**< First constant for Unicode properties with unusual value types. */
-       I18N_UCHAR_OTHER_PROPERTY_LIMIT,
-       /**< One more than the last constant for Unicode properties with unusual value types. */
-       I18N_UCHAR_INVALID_CODE                                    = -1
-                                                                                                /**< Represents a nonexistent or invalid property or property value. */
-} i18n_uchar_uproperty_e;
-
-/**
- * @brief Bidi Paired Bracket Type constants.
- * @since_tizen 3.0
- * @see I18N_UCHAR_BIDI_PAIRED_BRACKET_TYPE
- *
- */
-typedef enum {
-       I18N_UCHAR_U_BPT_NONE,    /**< Not a paired bracket. */
-
-       I18N_UCHAR_U_BPT_OPEN,    /**< Open paired bracket. */
-
-       I18N_UCHAR_U_BPT_CLOSE,   /**< Close paired bracket. */
-
-       I18N_UCHAR_U_BPT_COUNT /**< Count */
-} i18n_uchar_u_bidi_paired_bracket_type_e;
-
-/**
- * @brief Constants for Unicode blocks, see the Unicode Data file Blocks.txt.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- */
-typedef enum {
-       I18N_UCHAR_UBLOCK_NO_BLOCK,                                                                                                      /**< No Block */
-       I18N_UCHAR_UBLOCK_BASIC_LATIN,                                                                                           /**< Basic Latin */
-       I18N_UCHAR_UBLOCK_LATIN_1_SUPPLEMENT,                                                                            /**< Latin_1 Supplement */
-       I18N_UCHAR_UBLOCK_LATIN_EXTENDED_A,                                                                                      /**< Latin Extended A */
-       I18N_UCHAR_UBLOCK_LATIN_EXTENDED_B,                                                                                      /**< Latin Extended B */
-       I18N_UCHAR_UBLOCK_IPA_EXTENSIONS,                                                                                        /**< IPA Extensions */
-       I18N_UCHAR_UBLOCK_SPACING_MODIFIER_LETTERS,                                                                      /**< Spacing Modifier Letters */
-       I18N_UCHAR_UBLOCK_COMBINING_DIACRITICAL_MARKS,                                                           /**< Combining Diacritical Marks */
-       I18N_UCHAR_UBLOCK_GREEK,                                                                                                         /**< Greek */
-       I18N_UCHAR_UBLOCK_CYRILLIC,                                                                                                      /**< Cyrillic */
-       I18N_UCHAR_UBLOCK_ARMENIAN,                                                                                                      /**< Armenian */
-       I18N_UCHAR_UBLOCK_HEBREW,                                                                                                        /**< Hebrew */
-       I18N_UCHAR_UBLOCK_ARABIC,                                                                                                        /**< Arabic */
-       I18N_UCHAR_UBLOCK_SYRIAC,                                                                                                        /**< Syriac */
-       I18N_UCHAR_UBLOCK_THAANA,                                                                                                        /**< Thaana */
-       I18N_UCHAR_UBLOCK_DEVANAGARI,                                                                                            /**< Devanagari */
-       I18N_UCHAR_UBLOCK_BENGALI,                                                                                                       /**< Bengali */
-       I18N_UCHAR_UBLOCK_GURMUKHI,                                                                                                      /**< Gurmukhi */
-       I18N_UCHAR_UBLOCK_GUJARATI,                                                                                                      /**< Gujarati */
-       I18N_UCHAR_UBLOCK_ORIYA,                                                                                                         /**< Oriya */
-       I18N_UCHAR_UBLOCK_TAMIL,                                                                                                         /**< Tamil */
-       I18N_UCHAR_UBLOCK_TELUGU,                                                                                                        /**< Telugu */
-       I18N_UCHAR_UBLOCK_KANNADA,                                                                                                       /**< Kannada */
-       I18N_UCHAR_UBLOCK_MALAYALAM,                                                                                             /**< Malayalam */
-       I18N_UCHAR_UBLOCK_SINHALA,                                                                                                       /**< Sinhala */
-       I18N_UCHAR_UBLOCK_THAI,                                                                                                          /**< Thai */
-       I18N_UCHAR_UBLOCK_LAO,                                                                                                           /**< Lao */
-       I18N_UCHAR_UBLOCK_TIBETAN,                                                                                                       /**< Tibetan */
-       I18N_UCHAR_UBLOCK_MYANMAR,                                                                                                       /**< Myanmar */
-       I18N_UCHAR_UBLOCK_GEORGIAN,                                                                                                      /**< Georgian */
-       I18N_UCHAR_UBLOCK_HANGUL_JAMO,                                                                                           /**< Hangul Jamo */
-       I18N_UCHAR_UBLOCK_ETHIOPIC,                                                                                                      /**< Ethiopic */
-       I18N_UCHAR_UBLOCK_CHEROKEE,                                                                                                      /**< Cherokee */
-       I18N_UCHAR_UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS,                                         /**< Unified Canadian Aboriginal Syllabics */
-       I18N_UCHAR_UBLOCK_OGHAM,                                                                                                         /**< Ogham */
-       I18N_UCHAR_UBLOCK_RUNIC,                                                                                                         /**< Runic */
-       I18N_UCHAR_UBLOCK_KHMER,                                                                                                         /**< Khmer */
-       I18N_UCHAR_UBLOCK_MONGOLIAN,                                                                                             /**< Mongolian */
-       I18N_UCHAR_UBLOCK_LATIN_EXTENDED_ADDITIONAL,                                                             /**< Latin Extended Additional */
-       I18N_UCHAR_UBLOCK_GREEK_EXTENDED,                                                                                        /**< Greek Extended */
-       I18N_UCHAR_UBLOCK_GENERAL_PUNCTUATION,                                                                           /**< General Punctuation */
-       I18N_UCHAR_UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS,                                                           /**< Superscripts And Subscripts */
-       I18N_UCHAR_UBLOCK_CURRENCY_SYMBOLS,                                                                                      /**< Currency Symbols */
-       I18N_UCHAR_UBLOCK_COMBINING_MARKS_FOR_SYMBOLS,                                                           /**< Combining Marks For Symbols */
-       I18N_UCHAR_UBLOCK_LETTERLIKE_SYMBOLS,                                                                            /**< Letterlike Symbols */
-       I18N_UCHAR_UBLOCK_NUMBER_FORMS,                                                                                          /**< Number Forms */
-       I18N_UCHAR_UBLOCK_ARROWS,                                                                                                        /**< Arrows */
-       I18N_UCHAR_UBLOCK_MATHEMATICAL_OPERATORS,                                                                        /**< Mathematical Operators */
-       I18N_UCHAR_UBLOCK_MISCELLANEOUS_TECHNICAL,                                                                       /**< Miscellaneous Technical */
-       I18N_UCHAR_UBLOCK_CONTROL_PICTURES,                                                                                      /**< Control Pictures */
-       I18N_UCHAR_UBLOCK_OPTICAL_CHARACTER_RECOGNITION,                                                         /**< Optical Character Recognition */
-       I18N_UCHAR_UBLOCK_ENCLOSED_ALPHANUMERICS,                                                                        /**< Enclosed Alphanumerics */
-       I18N_UCHAR_UBLOCK_BOX_DRAWING,                                                                                           /**< Box Drawing */
-       I18N_UCHAR_UBLOCK_BLOCK_ELEMENTS,                                                                                        /**< Block Elements */
-       I18N_UCHAR_UBLOCK_GEOMETRIC_SHAPES,                                                                                      /**< Geometric Shapes */
-       I18N_UCHAR_UBLOCK_MISCELLANEOUS_SYMBOLS,                                                                         /**< Miscellaneous Symbols */
-       I18N_UCHAR_UBLOCK_DINGBATS,                                                                                                      /**< Dingbats */
-       I18N_UCHAR_UBLOCK_BRAILLE_PATTERNS,                                                                                      /**< Braille Patterns */
-       I18N_UCHAR_UBLOCK_CJK_RADICALS_SUPPLEMENT,                                                                       /**< CJK Radicals Supplement */
-       I18N_UCHAR_UBLOCK_KANGXI_RADICALS,                                                                                       /**< Kangxi Radicals */
-       I18N_UCHAR_UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS,                                            /**< Ideographic Description Characters */
-       I18N_UCHAR_UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION,                                                           /**< CJK Symbols And Punctuation */
-       I18N_UCHAR_UBLOCK_HIRAGANA,                                                                                                      /**< Hiragana */
-       I18N_UCHAR_UBLOCK_KATAKANA,                                                                                                      /**< Katakana */
-       I18N_UCHAR_UBLOCK_BOPOMOFO,                                                                                                      /**< Bopomofo */
-       I18N_UCHAR_UBLOCK_HANGUL_COMPATIBILITY_JAMO,                                                             /**< Hangul Compatibility Jamo */
-       I18N_UCHAR_UBLOCK_KANBUN,                                                                                                        /**< Kanbun */
-       I18N_UCHAR_UBLOCK_BOPOMOFO_EXTENDED,                                                                             /**< Bopomofo Extended */
-       I18N_UCHAR_UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS,                                                       /**< Enclosed CJK Letters And Months */
-       I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY,                                                                             /**< CJK Compatibility */
-       I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A,                                            /**< CJK Unified Ideographs Extension A */
-       I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS,                                                                        /**< CJK Unified Ideographs */
-       I18N_UCHAR_UBLOCK_YI_SYLLABLES,                                                                                          /**< Yi Syllables */
-       I18N_UCHAR_UBLOCK_YI_RADICALS,                                                                                           /**< Yi Radicals */
-       I18N_UCHAR_UBLOCK_HANGUL_SYLLABLES,                                                                                      /**< Hangul Syllables */
-       I18N_UCHAR_UBLOCK_HIGH_SURROGATES,                                                                                       /**< High Surrogates */
-       I18N_UCHAR_UBLOCK_HIGH_PRIVATE_USE_SURROGATES,                                                           /**< High Private Use Surrogates */
-       I18N_UCHAR_UBLOCK_LOW_SURROGATES,                                                                                        /**< Low Surrogates */
-       I18N_UCHAR_UBLOCK_PRIVATE_USE_AREA,                                                                                      /**< Private Use Area */
-       I18N_UCHAR_UBLOCK_PRIVATE_USE,                                                                                           /**< Private Use */
-       I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS,                                                          /**< CJK Compatibility Ideographs */
-
-       I18N_UCHAR_UBLOCK_ALPHABETIC_PRESENTATION_FORMS,                                                         /**< Alphabetic Presentation Forms */
-       I18N_UCHAR_UBLOCK_ARABIC_PRESENTATION_FORMS_A,                                                           /**< Arabic Presentation Forms A */
-       I18N_UCHAR_UBLOCK_COMBINING_HALF_MARKS,                                                                          /**< Combining Half Marks */
-       I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_FORMS,                                                                       /**< CJK Compatibility Forms */
-       I18N_UCHAR_UBLOCK_SMALL_FORM_VARIANTS,                                                                           /**< Small Form Variants */
-       I18N_UCHAR_UBLOCK_ARABIC_PRESENTATION_FORMS_B,                                                           /**< Arabic Presentation Forms B */
-       I18N_UCHAR_UBLOCK_SPECIALS,                                                                                                      /**< Specials */
-       I18N_UCHAR_UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS,                                                         /**< Halfwidth And Fullwidth Forms */
-       I18N_UCHAR_UBLOCK_OLD_ITALIC,                                                                                            /**< Old Italic */
-       I18N_UCHAR_UBLOCK_GOTHIC,                                                                                                        /**< Gothic */
-       I18N_UCHAR_UBLOCK_DESERET,                                                                                                       /**< Deseret */
-       I18N_UCHAR_UBLOCK_BYZANTINE_MUSICAL_SYMBOLS,                                                             /**< Byzantine Musical Symbols */
-       I18N_UCHAR_UBLOCK_MUSICAL_SYMBOLS,                                                                                       /**< Musical Symbols */
-       I18N_UCHAR_UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS,                                             /**< Mathematical Alphanumeric Symbols */
-       I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B,                                            /**< CJK Unified Ideographs Extension B */
-       I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT,                                       /**< CJK Compatibility Ideographs Supplement */
-       I18N_UCHAR_UBLOCK_TAGS,                                                                                                          /**< Tags */
-       I18N_UCHAR_UBLOCK_CYRILLIC_SUPPLEMENT,                                                                           /**< Cyrillic Supplement */
-       I18N_UCHAR_UBLOCK_CYRILLIC_SUPPLEMENTARY,                                                                        /**< Cyrillic Supplementary */
-       I18N_UCHAR_UBLOCK_TAGALOG,                                                                                                       /**< Tagalog */
-       I18N_UCHAR_UBLOCK_HANUNOO,                                                                                                       /**< Hanunoo */
-       I18N_UCHAR_UBLOCK_BUHID,                                                                                                         /**< Buhid */
-       I18N_UCHAR_UBLOCK_TAGBANWA,                                                                                                      /**< Tagbanwa */
-       I18N_UCHAR_UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A,                                          /**< Miscellaneous Mathematical Symbols A */
-       I18N_UCHAR_UBLOCK_SUPPLEMENTAL_ARROWS_A,                                                                         /**< Supplemental Arrows A */
-       I18N_UCHAR_UBLOCK_SUPPLEMENTAL_ARROWS_B,                                                                         /**< Supplemental Arrows B */
-       I18N_UCHAR_UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B,                                          /**< Miscellaneous Mathematical Symbols B */
-       I18N_UCHAR_UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS,                                           /**< Supplemental Mathematical Operators */
-       I18N_UCHAR_UBLOCK_KATAKANA_PHONETIC_EXTENSIONS,                                                          /**< Katakana Phonetic Extensions */
-       I18N_UCHAR_UBLOCK_VARIATION_SELECTORS,                                                                           /**< Variation Selectors */
-       I18N_UCHAR_UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A,                                                      /**< Supplementary Private Use Area A */
-       I18N_UCHAR_UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B,                                                      /**< Supplementary Private Use Area B */
-       I18N_UCHAR_UBLOCK_LIMBU,                                                                                                         /**< Limbu */
-       I18N_UCHAR_UBLOCK_TAI_LE,                                                                                                        /**< Tai Le */
-       I18N_UCHAR_UBLOCK_KHMER_SYMBOLS,                                                                                         /**< Khmer Symbols */
-       I18N_UCHAR_UBLOCK_PHONETIC_EXTENSIONS,                                                                           /**< Phonetic Extensions */
-       I18N_UCHAR_UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS,                                                      /**< Miscellaneous Symbols And Arrows */
-       I18N_UCHAR_UBLOCK_YIJING_HEXAGRAM_SYMBOLS,                                                                       /**< Yijing Hexagram Symbols */
-       I18N_UCHAR_UBLOCK_LINEAR_B_SYLLABARY,                                                                            /**< Linear B Syllabary */
-       I18N_UCHAR_UBLOCK_LINEAR_B_IDEOGRAMS,                                                                            /**< Linear B Ideograms */
-       I18N_UCHAR_UBLOCK_AEGEAN_NUMBERS,                                                                                        /**< Aegean Numbers */
-       I18N_UCHAR_UBLOCK_UGARITIC,                                                                                                      /**< Ugaritic */
-       I18N_UCHAR_UBLOCK_SHAVIAN,                                                                                                       /**< Shavian */
-       I18N_UCHAR_UBLOCK_OSMANYA,                                                                                                       /**< Osmanya */
-       I18N_UCHAR_UBLOCK_CYPRIOT_SYLLABARY,                                                                             /**< Cypriot Syllabary */
-       I18N_UCHAR_UBLOCK_TAI_XUAN_JING_SYMBOLS,                                                                         /**< Tai Xuan Jing Symbols */
-       I18N_UCHAR_UBLOCK_VARIATION_SELECTORS_SUPPLEMENT,                                                        /**< Variation Selectors Supplement */
-       I18N_UCHAR_UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION,                                                        /**< Ancient Greek Musical Notation */
-       I18N_UCHAR_UBLOCK_ANCIENT_GREEK_NUMBERS,                                                                         /**< Ancient Greek Numbers */
-       I18N_UCHAR_UBLOCK_ARABIC_SUPPLEMENT,                                                                             /**< Arabic Supplement */
-       I18N_UCHAR_UBLOCK_BUGINESE,                                                                                                      /**< Buginese */
-       I18N_UCHAR_UBLOCK_CJK_STROKES,                                                                                           /**< CJK Strokes */
-       I18N_UCHAR_UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT,                                        /**< Combining Diacritical Marks Supplement */
-       I18N_UCHAR_UBLOCK_COPTIC,                                                                                                        /**< Coptic */
-       I18N_UCHAR_UBLOCK_ETHIOPIC_EXTENDED,                                                                             /**< Ethiopic Extended */
-       I18N_UCHAR_UBLOCK_ETHIOPIC_SUPPLEMENT,                                                                           /**< Ethiopic Supplement */
-       I18N_UCHAR_UBLOCK_GEORGIAN_SUPPLEMENT,                                                                           /**< Georgian Supplement */
-       I18N_UCHAR_UBLOCK_GLAGOLITIC,                                                                                            /**< Glagolitic */
-       I18N_UCHAR_UBLOCK_KHAROSHTHI,                                                                                            /**< Kharoshthi */
-       I18N_UCHAR_UBLOCK_MODIFIER_TONE_LETTERS,                                                                         /**< Modifier Tone Letters */
-       I18N_UCHAR_UBLOCK_NEW_TAI_LUE,                                                                                           /**< New Tai Lue */
-       I18N_UCHAR_UBLOCK_OLD_PERSIAN,                                                                                           /**< Old Persian */
-       I18N_UCHAR_UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT,                                                        /**< Phonetic Extensions Supplement */
-       I18N_UCHAR_UBLOCK_SUPPLEMENTAL_PUNCTUATION,                                                                      /**< Supplemental Punctuation */
-       I18N_UCHAR_UBLOCK_SYLOTI_NAGRI,                                                                                          /**< Syloti Nagri */
-       I18N_UCHAR_UBLOCK_TIFINAGH,                                                                                                      /**< Tifinagh */
-       I18N_UCHAR_UBLOCK_VERTICAL_FORMS,                                                                                        /**< Vertical Forms */
-       I18N_UCHAR_UBLOCK_NKO,                                                                                                           /**< Nko */
-       I18N_UCHAR_UBLOCK_BALINESE,                                                                                                      /**< Balinese */
-       I18N_UCHAR_UBLOCK_LATIN_EXTENDED_C,                                                                                      /**< Latin Extended C */
-       I18N_UCHAR_UBLOCK_LATIN_EXTENDED_D,                                                                                      /**< Latin Extended D */
-       I18N_UCHAR_UBLOCK_PHAGS_PA,                                                                                                      /**< Phags Pa */
-       I18N_UCHAR_UBLOCK_PHOENICIAN,                                                                                            /**< Phoenician */
-       I18N_UCHAR_UBLOCK_CUNEIFORM,                                                                                             /**< Cuneiform */
-       I18N_UCHAR_UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION,                                             /**< Cuneiform Numbers And Punctuation */
-       I18N_UCHAR_UBLOCK_COUNTING_ROD_NUMERALS,                                                                         /**< Counting Rod Numerals */
-       I18N_UCHAR_UBLOCK_SUNDANESE,                                                                                             /**< Sundanese */
-       I18N_UCHAR_UBLOCK_LEPCHA,                                                                                                        /**< Lepcha */
-       I18N_UCHAR_UBLOCK_OL_CHIKI,                                                                                                      /**< Ol Chiki */
-       I18N_UCHAR_UBLOCK_CYRILLIC_EXTENDED_A,                                                                           /**< Cyrillic Extended A */
-       I18N_UCHAR_UBLOCK_VAI,                                                                                                           /**< Vai */
-       I18N_UCHAR_UBLOCK_CYRILLIC_EXTENDED_B,                                                                           /**< Cyrillic Extended B */
-       I18N_UCHAR_UBLOCK_SAURASHTRA,                                                                                            /**< Saurashtra */
-       I18N_UCHAR_UBLOCK_KAYAH_LI,                                                                                                      /**< Kayah Li */
-       I18N_UCHAR_UBLOCK_REJANG,                                                                                                        /**< Rejang */
-       I18N_UCHAR_UBLOCK_CHAM,                                                                                                          /**< Cham */
-       I18N_UCHAR_UBLOCK_ANCIENT_SYMBOLS,                                                                                       /**< Ancient Symbols */
-       I18N_UCHAR_UBLOCK_PHAISTOS_DISC,                                                                                         /**< Phaistos Disc */
-       I18N_UCHAR_UBLOCK_LYCIAN,                                                                                                        /**< Lycian */
-       I18N_UCHAR_UBLOCK_CARIAN,                                                                                                        /**< Carian */
-       I18N_UCHAR_UBLOCK_LYDIAN,                                                                                                        /**< Lydian */
-       I18N_UCHAR_UBLOCK_MAHJONG_TILES,                                                                                         /**< Mahjong Tiles */
-       I18N_UCHAR_UBLOCK_DOMINO_TILES,                                                                                          /**< Domino Tiles */
-       I18N_UCHAR_UBLOCK_SAMARITAN,                                                                                             /**< Samaritan */
-       I18N_UCHAR_UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED,                        /**< Unified Canadian Aboriginal Syllabics Extended */
-       I18N_UCHAR_UBLOCK_TAI_THAM,                                                                                                      /**< Tai Tham */
-       I18N_UCHAR_UBLOCK_VEDIC_EXTENSIONS,                                                                                      /**< Vedic Extensions */
-       I18N_UCHAR_UBLOCK_LISU,                                                                                                          /**< Lisu */
-       I18N_UCHAR_UBLOCK_BAMUM,                                                                                                         /**< Bamum */
-       I18N_UCHAR_UBLOCK_COMMON_INDIC_NUMBER_FORMS,                                                             /**< Common Indic Number Forms */
-       I18N_UCHAR_UBLOCK_DEVANAGARI_EXTENDED,                                                                           /**< Devanagari Extended */
-       I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_A,                                                                        /**< Hangul Jamo Extended A */
-       I18N_UCHAR_UBLOCK_JAVANESE,                                                                                                      /**< Javanese */
-       I18N_UCHAR_UBLOCK_MYANMAR_EXTENDED_A,                                                                            /**< Myanmar Extended A */
-       I18N_UCHAR_UBLOCK_TAI_VIET,                                                                                                      /**< Tai Viet */
-       I18N_UCHAR_UBLOCK_MEETEI_MAYEK,                                                                                          /**< Meetei Mayek */
-       I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_B,                                                                        /**< Hangul Jamo Extended B */
-       I18N_UCHAR_UBLOCK_IMPERIAL_ARAMAIC,                                                                                      /**< Imperial Aramaic */
-       I18N_UCHAR_UBLOCK_OLD_SOUTH_ARABIAN,                                                                             /**< Old South Arabian */
-       I18N_UCHAR_UBLOCK_AVESTAN,                                                                                                       /**< Avestan */
-       I18N_UCHAR_UBLOCK_INSCRIPTIONAL_PARTHIAN,                                                                        /**< Inscriptional Parthian */
-       I18N_UCHAR_UBLOCK_INSCRIPTIONAL_PAHLAVI,                                                                         /**< Inscriptional Pahlavi */
-       I18N_UCHAR_UBLOCK_OLD_TURKIC,                                                                                            /**< Old Turkic */
-       I18N_UCHAR_UBLOCK_RUMI_NUMERAL_SYMBOLS,                                                                          /**< Rumi Numeral Symbols */
-       I18N_UCHAR_UBLOCK_KAITHI,                                                                                                        /**< Kaithi */
-       I18N_UCHAR_UBLOCK_EGYPTIAN_HIEROGLYPHS,                                                                          /**< Egyptian Hieroglyphs */
-       I18N_UCHAR_UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT,                                                      /**< Enclosed Alphanumeric Supplement */
-       I18N_UCHAR_UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT,                                                       /**< Enclosed Ideographic Supplement */
-       I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C,                                            /**< CJK Unified Ideographs Extension C */
-       I18N_UCHAR_UBLOCK_MANDAIC,                                                                                                       /**< Mandaic */
-       I18N_UCHAR_UBLOCK_BATAK,                                                                                                         /**< Batak */
-       I18N_UCHAR_UBLOCK_ETHIOPIC_EXTENDED_A,                                                                           /**< Ethiopic Extended A */
-       I18N_UCHAR_UBLOCK_BRAHMI,                                                                                                        /**< Brahmi */
-       I18N_UCHAR_UBLOCK_BAMUM_SUPPLEMENT,                                                                                      /**< Bamum Supplement */
-       I18N_UCHAR_UBLOCK_KANA_SUPPLEMENT,                                                                                       /**< Kana Supplement */
-       I18N_UCHAR_UBLOCK_PLAYING_CARDS,                                                                                         /**< Playing Cards */
-       I18N_UCHAR_UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS,                                         /**< Miscellaneous Symbols And Pictographs */
-       I18N_UCHAR_UBLOCK_EMOTICONS,                                                                                             /**< Emoticons */
-       I18N_UCHAR_UBLOCK_TRANSPORT_AND_MAP_SYMBOLS,                                                             /**< Transport And Map Symbols */
-       I18N_UCHAR_UBLOCK_ALCHEMICAL_SYMBOLS,                                                                            /**< Alchemical Symbols */
-       I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D,                                            /**< CJK Unified Ideographs Extension D */
-       I18N_UCHAR_UBLOCK_BASSA_VAH = 221,                                                                                       /**< Bassa Vah (Since 3.0) */
-       I18N_UCHAR_UBLOCK_CAUCASIAN_ALBANIAN = 222,                                                                      /**< Caucasian Albanian (Since 3.0) */
-       I18N_UCHAR_UBLOCK_COPTIC_EPACT_NUMBERS = 223,                                                            /**< Coptic Epact Numbers (Since 3.0) */
-       I18N_UCHAR_UBLOCK_COMBINING_DIACRITICAL_MARKS_EXTENDED = 224,                            /**< Combining Diacritical Marks Extended (Since 3.0) */
-       I18N_UCHAR_UBLOCK_DUPLOYAN = 225,                                                                                        /**< Duployan (Since 3.0) */
-       I18N_UCHAR_UBLOCK_ELBASAN = 226,                                                                                         /**< Elbasan (Since 3.0) */
-       I18N_UCHAR_UBLOCK_GEOMETRIC_SHAPES_EXTENDED = 227,                                                       /**< Geometric Shapes Extended (Since 3.0) */
-       I18N_UCHAR_UBLOCK_GRANTHA = 228,                                                                                         /**< Grantha (Since 3.0) */
-       I18N_UCHAR_UBLOCK_KHOJKI = 229,                                                                                          /**< Khojki (Since 3.0) */
-       I18N_UCHAR_UBLOCK_KHUDAWADI = 230,                                                                                       /**< Khudawadi (Since 3.0) */
-       I18N_UCHAR_UBLOCK_LATIN_EXTENDED_E = 231,                                                                        /**< Latin Extended E (Since 3.0) */
-       I18N_UCHAR_UBLOCK_LINEAR_A = 232,                                                                                        /**< Linear A (Since 3.0) */
-       I18N_UCHAR_UBLOCK_MAHAJANI = 233,                                                                                        /**< Mahajani (Since 3.0) */
-       I18N_UCHAR_UBLOCK_MANICHAEAN = 234,                                                                                      /**< Manichaean (Since 3.0) */
-       I18N_UCHAR_UBLOCK_MENDE_KIKAKUI = 235,                                                                           /**< Mende Kikakui (Since 3.0) */
-       I18N_UCHAR_UBLOCK_MODI = 236,                                                                                            /**< Modi (Since 3.0) */
-       I18N_UCHAR_UBLOCK_MRO = 237,                                                                                             /**< Mro (Since 3.0) */
-       I18N_UCHAR_UBLOCK_MYANMAR_EXTENDED_B = 238,                                                                      /**< Myanmar Extended B (Since 3.0) */
-       I18N_UCHAR_UBLOCK_NABATAEAN = 239,                                                                                       /**< Nabataean (Since 3.0) */
-       I18N_UCHAR_UBLOCK_OLD_NORTH_ARABIAN = 240,                                                                       /**< Old North Arabian (Since 3.0) */
-       I18N_UCHAR_UBLOCK_OLD_PERMIC = 241,                                                                                      /**< Old Permic (Since 3.0) */
-       I18N_UCHAR_UBLOCK_ORNAMENTAL_DINGBATS = 242,                                                             /**< Ornamental Dingbats (Since 3.0) */
-       I18N_UCHAR_UBLOCK_PAHAWH_HMONG = 243,                                                                            /**< Pahawh Hmong (Since 3.0) */
-       I18N_UCHAR_UBLOCK_PALMYRENE = 244,                                                                                       /**< Palmyrene (Since 3.0) */
-       I18N_UCHAR_UBLOCK_PAU_CIN_HAU = 245,                                                                             /**< Pau Cin Hau (Since 3.0) */
-       I18N_UCHAR_UBLOCK_PSALTER_PAHLAVI = 246,                                                                         /**< Psalter Pahlavi (Since 3.0) */
-       I18N_UCHAR_UBLOCK_SHORTHAND_FORMAT_CONTROLS = 247,                                                       /**< Shorthand Format Controls (Since 3.0) */
-       I18N_UCHAR_UBLOCK_SIDDHAM = 248,                                                                                         /**< Siddham (Since 3.0) */
-       I18N_UCHAR_UBLOCK_SINHALA_ARCHAIC_NUMBERS = 249,                                                         /**< Sinhala Archaic Numbers (Since 3.0) */
-       I18N_UCHAR_UBLOCK_SUPPLEMENTAL_ARROWS_C = 250,                                                           /**< Supplemental Arrows C (Since 3.0) */
-       I18N_UCHAR_UBLOCK_TIRHUTA = 251,                                                                                         /**< Tirhuta (Since 3.0) */
-       I18N_UCHAR_UBLOCK_WARANG_CITI = 252,                                                                             /**< Warang Citi (Since 3.0) */
-       I18N_UCHAR_UBLOCK_COUNT,                                                                                                         /**< Count */
-       I18N_UCHAR_UBLOCK_INVALID_CODE = -1                                                                                      /**< Invalid Code */
-} i18n_uchar_ublock_code_e;
-
-/**
- * @brief Enumeration for the language directional property of a character set.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_LEFT_TO_RIGHT,                                                                              /**< L */
-       I18N_UCHAR_U_RIGHT_TO_LEFT,                                                                              /**< R */
-       I18N_UCHAR_U_EUROPEAN_NUMBER,                                                                    /**< EN */
-       I18N_UCHAR_U_EUROPEAN_NUMBER_SEPARATOR,                                                  /**< ES */
-       I18N_UCHAR_U_EUROPEAN_NUMBER_TERMINATOR,                                                 /**< ET */
-       I18N_UCHAR_U_ARABIC_NUMBER,                                                                              /**< AN */
-       I18N_UCHAR_U_COMMON_NUMBER_SEPARATOR,                                                    /**< CS */
-       I18N_UCHAR_U_BLOCK_SEPARATOR,                                                                    /**< B */
-       I18N_UCHAR_U_SEGMENT_SEPARATOR,                                                                  /**< S */
-       I18N_UCHAR_U_WHITE_SPACE_NEUTRAL,                                                                /**< WS */
-       I18N_UCHAR_U_OTHER_NEUTRAL,                                                                              /**< ON */
-       I18N_UCHAR_U_LEFT_TO_RIGHT_EMBEDDING,                                                    /**< LRE */
-       I18N_UCHAR_U_LEFT_TO_RIGHT_OVERRIDE,                                                     /**< LRO */
-       I18N_UCHAR_U_RIGHT_TO_LEFT_ARABIC,                                                               /**< AL */
-       I18N_UCHAR_U_RIGHT_TO_LEFT_EMBEDDING,                                                    /**< RLE */
-       I18N_UCHAR_U_RIGHT_TO_LEFT_OVERRIDE,                                                     /**< RLO */
-       I18N_UCHAR_U_POP_DIRECTIONAL_FORMAT,                                                     /**< PDF */
-       I18N_UCHAR_U_DIR_NON_SPACING_MARK,                                                               /**< NSM */
-       I18N_UCHAR_U_BOUNDARY_NEUTRAL,                                                                   /**< BN */
-       I18N_UCHAR_U_FIRST_STRONG_ISOLATE,                                                               /**< FSI (Since 3.0) */
-       I18N_UCHAR_U_LEFT_TO_RIGHT_ISOLATE,                                                              /**< FSI (Since 3.0) */
-       I18N_UCHAR_U_RIGHT_TO_LEFT_ISOLATE,                                                              /**< RLI (Since 3.0) */
-       I18N_UCHAR_U_POP_DIRECTIONAL_ISOLATE,                                                    /**< PDI (Since 3.0) */
-       I18N_UCHAR_U_CHAR_DIRECTION_COUNT                                                                /**< Count */
-} i18n_uchar_direction_e;
-
-/**
- * @brief Enumeration for Decomposition Type constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_DT_NONE,                   /**< [none] */
-       I18N_UCHAR_U_DT_CANONICAL,              /**< [can] */
-       I18N_UCHAR_U_DT_COMPAT,                 /**< [com] */
-       I18N_UCHAR_U_DT_CIRCLE,                 /**< [enc] */
-       I18N_UCHAR_U_DT_FINAL,                  /**< [fin] */
-       I18N_UCHAR_U_DT_FONT,                   /**< [font] */
-       I18N_UCHAR_U_DT_FRACTION,               /**< [fra] */
-       I18N_UCHAR_U_DT_INITIAL,                /**< [init] */
-       I18N_UCHAR_U_DT_ISOLATED,               /**< [iso] */
-       I18N_UCHAR_U_DT_MEDIAL,                 /**< [med] */
-       I18N_UCHAR_U_DT_NARROW,                 /**< [nar] */
-       I18N_UCHAR_U_DT_NOBREAK,                /**< [nb] */
-       I18N_UCHAR_U_DT_SMALL,                  /**< [sml] */
-       I18N_UCHAR_U_DT_SQUARE,                 /**< [sqr] */
-       I18N_UCHAR_U_DT_SUB,                    /**< [sub] */
-       I18N_UCHAR_U_DT_SUPER,                  /**< [sup] */
-       I18N_UCHAR_U_DT_VERTICAL,               /**< [vert] */
-       I18N_UCHAR_U_DT_WIDE,                   /**< [wide] */
-       I18N_UCHAR_U_DT_COUNT                   /**< 18 */
-} i18n_uchar_u_decomposition_type_e;
-
-/**
- * @brief Enumeration for East Asian Width constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_EA_NEUTRAL,                 /**< [N] */
-       I18N_UCHAR_U_EA_AMBIGUOUS,               /**< [A] */
-       I18N_UCHAR_U_EA_HALFWIDTH,               /**< [H] */
-       I18N_UCHAR_U_EA_FULLWIDTH,               /**< [F] */
-       I18N_UCHAR_U_EA_NARROW,                  /**< [Na] */
-       I18N_UCHAR_U_EA_WIDE,                    /**< [W] */
-       I18N_UCHAR_U_EA_COUNT
-} i18n_uchar_u_east_asian_width_e;
-
-/**
- * @brief Enumeration for Unicode general category types.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_UNASSIGNED,                                                /**< Non-category for unassigned and non-character code points */
-       I18N_UCHAR_U_GENERAL_OTHER_TYPES = 0,                   /**< Cn "Other, Not Assigned (no characters in [UnicodeData.txt] have this property)" (same as #I18N_UCHAR_U_UNASSIGNED!) */
-       I18N_UCHAR_U_UPPERCASE_LETTER,                                  /**< Lu */
-       I18N_UCHAR_U_LOWERCASE_LETTER,                                  /**< Ll */
-       I18N_UCHAR_U_TITLECASE_LETTER,                                  /**< Lt */
-       I18N_UCHAR_U_MODIFIER_LETTER,                                   /**< Lm */
-       I18N_UCHAR_U_OTHER_LETTER,                                              /**< Lo */
-       I18N_UCHAR_U_NON_SPACING_MARK,                                  /**< Mn */
-       I18N_UCHAR_U_ENCLOSING_MARK,                                    /**< Me */
-       I18N_UCHAR_U_COMBINING_SPACING_MARK,                    /**< Mc */
-       I18N_UCHAR_U_DECIMAL_DIGIT_NUMBER,                              /**< Nd */
-       I18N_UCHAR_U_LETTER_NUMBER,                                             /**< Nl */
-       I18N_UCHAR_U_OTHER_NUMBER,                                              /**< No */
-       I18N_UCHAR_U_SPACE_SEPARATOR,                                   /**< Zs */
-       I18N_UCHAR_U_LINE_SEPARATOR,                                    /**< Zl */
-       I18N_UCHAR_U_PARAGRAPH_SEPARATOR,                               /**< Zp */
-       I18N_UCHAR_U_CONTROL_CHAR,                                              /**< Cc */
-       I18N_UCHAR_U_FORMAT_CHAR,                                               /**< Cf */
-       I18N_UCHAR_U_PRIVATE_USE_CHAR,                                  /**< Co */
-       I18N_UCHAR_U_SURROGATE,                                                 /**< Cs */
-       I18N_UCHAR_U_DASH_PUNCTUATION,                                  /**< Pd */
-       I18N_UCHAR_U_START_PUNCTUATION,                                 /**< Ps */
-       I18N_UCHAR_U_END_PUNCTUATION,                                   /**< Pe */
-       I18N_UCHAR_U_CONNECTOR_PUNCTUATION,                             /**< Pc */
-       I18N_UCHAR_U_OTHER_PUNCTUATION,                                 /**< Po */
-       I18N_UCHAR_U_MATH_SYMBOL,                                               /**< Sm */
-       I18N_UCHAR_U_CURRENCY_SYMBOL,                                   /**< Sc */
-       I18N_UCHAR_U_MODIFIER_SYMBOL,                                   /**< Sk */
-       I18N_UCHAR_U_OTHER_SYMBOL,                                              /**< So */
-       I18N_UCHAR_U_INITIAL_PUNCTUATION,                               /**< Pi */
-       I18N_UCHAR_U_FINAL_PUNCTUATION,                                 /**< Pf */
-       I18N_UCHAR_U_CHAR_CATEGORY_COUNT                                /**< One higher than the last enum #i18n_uchar_category_e constant */
-} i18n_uchar_category_e;
-
-/**
- * @brief Enumeration for Joining Group constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_JG_NO_JOINING_GROUP,                                                                                          /**< No Joining Group */
-       I18N_UCHAR_U_JG_AIN,                                                                                                               /**< Ain */
-       I18N_UCHAR_U_JG_ALAPH,                                                                                                             /**< Alaph */
-       I18N_UCHAR_U_JG_ALEF,                                                                                                              /**< Alef */
-       I18N_UCHAR_U_JG_BEH,                                                                                                               /**< Beh */
-       I18N_UCHAR_U_JG_BETH,                                                                                                              /**< Beth */
-       I18N_UCHAR_U_JG_DAL,                                                                                                               /**< Dal */
-       I18N_UCHAR_U_JG_DALATH_RISH,                                                                                               /**< Dalath Rish */
-       I18N_UCHAR_U_JG_E,                                                                                                                         /**< E */
-       I18N_UCHAR_U_JG_FEH,                                                                                                               /**< Feh */
-       I18N_UCHAR_U_JG_FINAL_SEMKATH,                                                                                             /**< Final Semkath */
-       I18N_UCHAR_U_JG_GAF,                                                                                                               /**< Gaf */
-       I18N_UCHAR_U_JG_GAMAL,                                                                                                             /**< Gamal */
-       I18N_UCHAR_U_JG_HAH,                                                                                                               /**< Hah */
-       I18N_UCHAR_U_JG_TEH_MARBUTA_GOAL,                                                                                          /**< Teh Marbuta Goal */
-       I18N_UCHAR_U_JG_HAMZA_ON_HEH_GOAL = I18N_UCHAR_U_JG_TEH_MARBUTA_GOAL,              /**< Hamza On Heh Goal */
-       I18N_UCHAR_U_JG_HE,                                                                                                                        /**< He */
-       I18N_UCHAR_U_JG_HEH,                                                                                                               /**< Heh */
-       I18N_UCHAR_U_JG_HEH_GOAL,                                                                                                          /**< Heh Goal */
-       I18N_UCHAR_U_JG_HETH,                                                                                                              /**< Heth */
-       I18N_UCHAR_U_JG_KAF,                                                                                                               /**< Kaf */
-       I18N_UCHAR_U_JG_KAPH,                                                                                                              /**< Kaph */
-       I18N_UCHAR_U_JG_KNOTTED_HEH,                                                                                               /**< Knotted Heh */
-       I18N_UCHAR_U_JG_LAM,                                                                                                               /**< Lam */
-       I18N_UCHAR_U_JG_LAMADH,                                                                                                            /**< Lamadh */
-       I18N_UCHAR_U_JG_MEEM,                                                                                                              /**< Meem */
-       I18N_UCHAR_U_JG_MIM,                                                                                                               /**< Mim */
-       I18N_UCHAR_U_JG_NOON,                                                                                                              /**< Noon */
-       I18N_UCHAR_U_JG_NUN,                                                                                                               /**< Nun */
-       I18N_UCHAR_U_JG_PE,                                                                                                                        /**< Pe */
-       I18N_UCHAR_U_JG_QAF,                                                                                                               /**< Qaf */
-       I18N_UCHAR_U_JG_QAPH,                                                                                                              /**< Qaph */
-       I18N_UCHAR_U_JG_REH,                                                                                                               /**< Reh */
-       I18N_UCHAR_U_JG_REVERSED_PE,                                                                                               /**< Reversed Pe */
-       I18N_UCHAR_U_JG_SAD,                                                                                                               /**< Sad */
-       I18N_UCHAR_U_JG_SADHE,                                                                                                             /**< Sadhe */
-       I18N_UCHAR_U_JG_SEEN,                                                                                                              /**< Seen */
-       I18N_UCHAR_U_JG_SEMKATH,                                                                                                           /**< Semkath */
-       I18N_UCHAR_U_JG_SHIN,                                                                                                              /**< Shin */
-       I18N_UCHAR_U_JG_SWASH_KAF,                                                                                                         /**< Swash Kaf */
-       I18N_UCHAR_U_JG_SYRIAC_WAW,                                                                                                        /**< Syriac Waw */
-       I18N_UCHAR_U_JG_TAH,                                                                                                               /**< Tah */
-       I18N_UCHAR_U_JG_TAW,                                                                                                               /**< Taw */
-       I18N_UCHAR_U_JG_TEH_MARBUTA,                                                                                               /**< Teh Marbuta */
-       I18N_UCHAR_U_JG_TETH,                                                                                                              /**< Teth */
-       I18N_UCHAR_U_JG_WAW,                                                                                                               /**< Waw */
-       I18N_UCHAR_U_JG_YEH,                                                                                                               /**< Yeh */
-       I18N_UCHAR_U_JG_YEH_BARREE,                                                                                                        /**< Yeh Barree */
-       I18N_UCHAR_U_JG_YEH_WITH_TAIL,                                                                                             /**< Yeh With Tail */
-       I18N_UCHAR_U_JG_YUDH,                                                                                                              /**< Yudh */
-       I18N_UCHAR_U_JG_YUDH_HE,                                                                                                           /**< Yudh He */
-       I18N_UCHAR_U_JG_ZAIN,                                                                                                              /**< Zain */
-       I18N_UCHAR_U_JG_FE,                                                                                                                        /**< Fe */
-       I18N_UCHAR_U_JG_KHAPH,                                                                                                             /**< Khaph */
-       I18N_UCHAR_U_JG_ZHAIN,                                                                                                             /**< Zhain */
-       I18N_UCHAR_U_JG_BURUSHASKI_YEH_BARREE,                                                                             /**< Burushaski Yeh Barree */
-       I18N_UCHAR_U_JG_FARSI_YEH,                                                                                                         /**< Farsi Yeh */
-       I18N_UCHAR_U_JG_NYA,                                                                                                               /**< Nya */
-       I18N_UCHAR_U_JG_ROHINGYA_YEH,                                                                                              /**< Rohingya Yeh */
-       I18N_UCHAR_U_JG_MANICHAEAN_ALEPH,                                                                                          /**< Manichaean Aleph (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_AYIN,                                                                                           /**< Manichaean Ayin (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_BETH,                                                                                           /**< Manichaean Beth (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_DALETH,                                                                                         /**< Manichaean Daleth (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_DHAMEDH,                                                                                        /**< Manichaean Dhamedh (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_FIVE,                                                                                           /**< Manichaean Five (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_GIMEL,                                                                                          /**< Manichaean Gimel (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_HETH,                                                                                           /**< Manichaean Heth (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_HUNDRED,                                                                                        /**< Manichaean Hundred (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_KAPH,                                                                                           /**< Manichaean Kaph (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_LAMEDH,                                                                                         /**< Manichaean Lamedh (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_MEM,                                                                                            /**< Manichaean Mem (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_NUN,                                                                                            /**< Manichaean Nun (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_ONE,                                                                                            /**< Manichaean One (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_PE,                                                                                             /**< Manichaean Pe (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_QOPH,                                                                                           /**< Manichaean Qoph (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_RESH,                                                                                           /**< Manichaean Resh (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_SADHE,                                                                                          /**< Manichaean Sadhe (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_SAMEKH,                                                                                         /**< Manichaean Samekh (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_TAW,                                                                                            /**< Manichaean Taw (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_TEN,                                                                                            /**< Manichaean Ten (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_TETH,                                                                                           /**< Manichaean Teth (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_THAMEDH,                                                                                        /**< Manichaean Thamedh (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_TWENTY,                                                                                         /**< Manichaean Twenty (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_WAW,                                                                                            /**< Manichaean Waw (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_YODH,                                                                                           /**< Manichaean Yodh (Since 3.0) */
-       I18N_UCHAR_U_JG_MANICHAEAN_ZAYIN,                                                                                          /**< Manichaean Zayin (Since 3.0) */
-       I18N_UCHAR_U_JG_STRAIGHT_WAW,                                                                                              /**< Manichaean Waw (Since 3.0) */
-       I18N_UCHAR_U_JG_COUNT                                                                                                              /**< Count */
-} i18n_uchar_u_joining_group_e;
-
-/**
- * @brief Enumeration for Joining Type constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_JT_NON_JOINING,            /**< [U] */
-       I18N_UCHAR_U_JT_JOIN_CAUSING,           /**< [C] */
-       I18N_UCHAR_U_JT_DUAL_JOINING,           /**< [D] */
-       I18N_UCHAR_U_JT_LEFT_JOINING,           /**< [L] */
-       I18N_UCHAR_U_JT_RIGHT_JOINING,          /**< [R] */
-       I18N_UCHAR_U_JT_TRANSPARENT,            /**< [T] */
-       I18N_UCHAR_U_JT_COUNT                           /**< 6 */
-} i18n_uchar_u_joining_type_e;
-
-/**
- * @brief Enumeration for Line Break constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_LB_UNKNOWN,                                                                                                                 /**< [XX] */
-       I18N_UCHAR_U_LB_AMBIGUOUS,                                                                                                               /**< [AI] */
-       I18N_UCHAR_U_LB_ALPHABETIC,                                                                                                              /**< [AL] */
-       I18N_UCHAR_U_LB_BREAK_BOTH,                                                                                                              /**< [B2] */
-       I18N_UCHAR_U_LB_BREAK_AFTER,                                                                                                     /**< [BA] */
-       I18N_UCHAR_U_LB_BREAK_BEFORE,                                                                                                    /**< [BB] */
-       I18N_UCHAR_U_LB_MANDATORY_BREAK,                                                                                                 /**< [BK] */
-       I18N_UCHAR_U_LB_CONTINGENT_BREAK,                                                                                                /**< [CB] */
-       I18N_UCHAR_U_LB_CLOSE_PUNCTUATION,                                                                                               /**< [CL] */
-       I18N_UCHAR_U_LB_COMBINING_MARK,                                                                                                  /**< [CM] */
-       I18N_UCHAR_U_LB_CARRIAGE_RETURN,                                                                                                 /**< [CR] */
-       I18N_UCHAR_U_LB_EXCLAMATION,                                                                                                     /**< [EX] */
-       I18N_UCHAR_U_LB_GLUE,                                                                                                                    /**< [GL] */
-       I18N_UCHAR_U_LB_HYPHEN,                                                                                                                  /**< [HY] */
-       I18N_UCHAR_U_LB_IDEOGRAPHIC,                                                                                                     /**< [ID] */
-       I18N_UCHAR_U_LB_INSEPARABLE,                                                                                                     /**< [IN] */
-       I18N_UCHAR_U_LB_INSEPERABLE = I18N_UCHAR_U_LB_INSEPARABLE,
-       I18N_UCHAR_U_LB_INFIX_NUMERIC,                                                                                                   /**< [IS] */
-       I18N_UCHAR_U_LB_LINE_FEED,                                                                                                               /**< [LF] */
-       I18N_UCHAR_U_LB_NONSTARTER,                                                                                                              /**< [NS] */
-       I18N_UCHAR_U_LB_NUMERIC,                                                                                                                 /**< [NU] */
-       I18N_UCHAR_U_LB_OPEN_PUNCTUATION,                                                                                                /**< [OP] */
-       I18N_UCHAR_U_LB_POSTFIX_NUMERIC,                                                                                                 /**< [PO] */
-       I18N_UCHAR_U_LB_PREFIX_NUMERIC,                                                                                                  /**< [PR] */
-       I18N_UCHAR_U_LB_QUOTATION,                                                                                                               /**< [QU] */
-       I18N_UCHAR_U_LB_COMPLEX_CONTEXT,                                                                                                 /**< [SA] */
-       I18N_UCHAR_U_LB_SURROGATE,                                                                                                               /**< [SG] */
-       I18N_UCHAR_U_LB_SPACE,                                                                                                                   /**< [SP] */
-       I18N_UCHAR_U_LB_BREAK_SYMBOLS,                                                                                                   /**< [SY] */
-       I18N_UCHAR_U_LB_ZWSPACE,                                                                                                                 /**< [ZW] */
-       I18N_UCHAR_U_LB_NEXT_LINE,                                                                                                               /**< [NL] */
-       I18N_UCHAR_U_LB_WORD_JOINER,                                                                                                     /**< [WJ] */
-       I18N_UCHAR_U_LB_H2,                                                                                                                              /**< [H2] */
-       I18N_UCHAR_U_LB_H3,                                                                                                                              /**< [H3] */
-       I18N_UCHAR_U_LB_JL,                                                                                                                              /**< [JL] */
-       I18N_UCHAR_U_LB_JT,                                                                                                                              /**< [JT] */
-       I18N_UCHAR_U_LB_JV,                                                                                                                              /**< [JV] */
-       I18N_UCHAR_U_LB_CLOSE_PARENTHESIS,                                                                                               /**< [CP] */
-       I18N_UCHAR_U_LB_COUNT
-} i18n_uchar_u_line_break_e;
-
-/**
- * @brief Enumeration for Numeric Type constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_NT_NONE,             /**< [None] */
-       I18N_UCHAR_U_NT_DECIMAL,          /**< [de] */
-       I18N_UCHAR_U_NT_DIGIT,            /**< [di] */
-       I18N_UCHAR_U_NT_NUMERIC,          /**< [nu] */
-       I18N_UCHAR_U_NT_COUNT             /**<  */
-} i18n_uchar_u_numeric_type_e;
-
-/**
- * @brief Enumeration for Hangul Syllable Type constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_HST_NOT_APPLICABLE,         /**< [NA] */
-       I18N_UCHAR_U_HST_LEADING_JAMO,           /**< [L] */
-       I18N_UCHAR_U_HST_VOWEL_JAMO,             /**< [V] */
-       I18N_UCHAR_U_HST_TRAILING_JAMO,          /**< [T] */
-       I18N_UCHAR_U_HST_LV_SYLLABLE,            /**< [LV] */
-       I18N_UCHAR_U_HST_LVT_SYLLABLE,           /**< [LVT] */
-       I18N_UCHAR_U_HST_COUNT                           /**<  */
-} i18n_uchar_u_hangul_syllable_type_e;
-
-/**
- * @brief Enumeration for Sentence Break constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_SB_OTHER,             /**< [XX] */
-       I18N_UCHAR_U_SB_ATERM,             /**< [AT] */
-       I18N_UCHAR_U_SB_CLOSE,             /**< [CL] */
-       I18N_UCHAR_U_SB_FORMAT,            /**< [FO] */
-       I18N_UCHAR_U_SB_LOWER,             /**< [LO] */
-       I18N_UCHAR_U_SB_NUMERIC,           /**< [NU] */
-       I18N_UCHAR_U_SB_OLETTER,           /**< [LE] */
-       I18N_UCHAR_U_SB_SEP,               /**< [SE] */
-       I18N_UCHAR_U_SB_SP,                        /**< [SP] */
-       I18N_UCHAR_U_SB_STERM,             /**< [ST] */
-       I18N_UCHAR_U_SB_UPPER,             /**< [UP] */
-       I18N_UCHAR_U_SB_CR,                        /**< [CR] */
-       I18N_UCHAR_U_SB_EXTEND,            /**< [EX] */
-       I18N_UCHAR_U_SB_LF,                        /**< [LF] */
-       I18N_UCHAR_U_SB_SCONTINUE,         /**< [SC] */
-       I18N_UCHAR_U_SB_COUNT              /**<  */
-} i18n_uchar_u_sentence_break_e;
-
-/**
- * @brief Enumeration for Word Break constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_WB_OTHER,                          /**< [XX] */
-       I18N_UCHAR_U_WB_ALETTER,                        /**< [LE] */
-       I18N_UCHAR_U_WB_FORMAT,                         /**< [FO] */
-       I18N_UCHAR_U_WB_KATAKANA,                       /**< [KA] */
-       I18N_UCHAR_U_WB_MIDLETTER,                      /**< [ML] */
-       I18N_UCHAR_U_WB_MIDNUM,                         /**< [MN] */
-       I18N_UCHAR_U_WB_NUMERIC,                        /**< [NU] */
-       I18N_UCHAR_U_WB_EXTENDNUMLET,           /**< [EX] */
-       I18N_UCHAR_U_WB_CR,                                     /**< [CR] */
-       I18N_UCHAR_U_WB_EXTEND,                         /**< [Extend] */
-       I18N_UCHAR_U_WB_LF,                                     /**< [LF] */
-       I18N_UCHAR_U_WB_MIDNUMLET,                      /**< [MB] */
-       I18N_UCHAR_U_WB_NEWLINE,                        /**< [NL] */
-       I18N_UCHAR_U_WB_REGIONAL_INDICATOR, /**< [RI] (Since 3.0) */
-       I18N_UCHAR_U_WB_HEBREW_LETTER,          /**< [HL] (Since 3.0) */
-       I18N_UCHAR_U_WB_SINGLE_QUOTE,           /**< [SQ] (Since 3.0) */
-       I18N_UCHAR_U_WB_DOUBLE_QUOTE,           /**< [DQ] (Since 3.0) */
-       I18N_UCHAR_U_WB_COUNT                           /**<  */
-} i18n_uchar_u_word_break_values_e;
-
-/**
- * @brief Enumeration for Grapheme Cluster Break constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCHAR_U_GCB_OTHER,                                    /**< [XX] */
-       I18N_UCHAR_U_GCB_CONTROL,                                  /**< [CN] */
-       I18N_UCHAR_U_GCB_CR,                                       /**< [CR] */
-       I18N_UCHAR_U_GCB_EXTEND,                                   /**< [EX] */
-       I18N_UCHAR_U_GCB_L,                                                /**< [L] */
-       I18N_UCHAR_U_GCB_LF,                                       /**< [LF] */
-       I18N_UCHAR_U_GCB_LV,                                       /**< [LV] */
-       I18N_UCHAR_U_GCB_LVT,                                      /**< [LVT] */
-       I18N_UCHAR_U_GCB_T,                                                /**< [T] */
-       I18N_UCHAR_U_GCB_V,                                                /**< [V] */
-       I18N_UCHAR_U_GCB_SPACING_MARK,                     /**< [SM] */
-       I18N_UCHAR_U_GCB_PREPEND,                                  /**< [PP] */
-       I18N_UCHAR_UCHAR_U_GCB_COUNT                       /**<  */
-} i18n_uchar_u_grapheme_cluster_break_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE
- * @{
- */
-
-/**
- * @brief Structure representing a collator object instance.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_ucollator_h;
-
-/**
- * @brief Enumeration for attributes that collation service understands.
- *               All the attributes can take #I18N_UCOLLATOR_DEFAULT value, as well as the values specific to each one.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCOLLATOR_FRENCH_COLLATION,                                                                                        /**< Attribute for direction of secondary weights - used in Canadian French. Acceptable values are #I18N_UCOLLATOR_ON, which results in secondary weights being considered backwards, and #I18N_UCOLLATOR_OFF which treats secondary weights in the order they appear */
-       I18N_UCOLLATOR_ALTERNATE_HANDLING,                                                                                      /**< Attribute for handling variable elements. Acceptable values are #I18N_UCOLLATOR_NON_IGNORABLE (default) which treats all the codepoints with non-ignorable primary weights in the same way, and #I18N_UCOLLATOR_SHIFTED which causes codepoints with primary weights that are equal or below the variable top value to be ignored at the primary level and moved to the quaternary level */
-       I18N_UCOLLATOR_CASE_FIRST,                                                                                                      /**< Controls the ordering of upper and lower case letters. Acceptable values are #I18N_UCOLLATOR_OFF (default), which orders upper and lower case letters in accordance to their tertiary weights, #I18N_UCOLLATOR_UPPER_FIRST which forces upper case letters to sort before lower case letters, and #I18N_UCOLLATOR_LOWER_FIRST which does the opposite */
-       I18N_UCOLLATOR_CASE_LEVEL,                                                                                                      /**< Controls whether an extra case level (positioned before the third level) is generated or not. Acceptable values are #I18N_UCOLLATOR_OFF (default), when case level is not generated, and #I18N_UCOLLATOR_ON which causes the case level to be generated. Contents of the case level are affected by the value of the #I18N_UCOLLATOR_CASE_FIRST attribute. A simple way to ignore accent differences in a string is to set the strength to #I18N_UCOLLATOR_PRIMARY and enable case level */
-       I18N_UCOLLATOR_NORMALIZATION_MODE,                                                                                      /**< Controls whether the normalization check and necessary normalizations are performed. When set to #I18N_UCOLLATOR_OFF (default) no normalization check is performed. The correctness of the result is guaranteed only if the input data is in so-called FCD form (see users manual for more info). When set to #I18N_UCOLLATOR_ON, an incremental check is performed to see whether the input data is in the FCD form. If the data is not in the FCD form, incremental NFD normalization is performed */
-       I18N_UCOLLATOR_DECOMPOSITION_MODE = I18N_UCOLLATOR_NORMALIZATION_MODE,          /**< An alias for the #I18N_UCOLLATOR_NORMALIZATION_MODE attribute */
-       I18N_UCOLLATOR_STRENGTH,                                                                                                        /**< The strength attribute. Can be either #I18N_UCOLLATOR_PRIMARY, #I18N_UCOLLATOR_SECONDARY, #I18N_UCOLLATOR_TERTIARY, #I18N_UCOLLATOR_QUATERNARY, or #I18N_UCOLLATOR_IDENTICAL. The usual strength for most locales (except Japanese) is tertiary. Quaternary strength is useful when combined with shifted setting for the alternate handling attribute and for JIS X 4061 collation, when it is used to distinguish between Katakana and Hiragana. Otherwise, quaternary level is affected only by the number of non-ignorable code points in the string. Identical strength is rarely useful, as it amounts to codepoints of the NFD form of the string */
-       I18N_UCOLLATOR_NUMERIC_COLLATION = I18N_UCOLLATOR_STRENGTH + 2,                         /**< When turned on, this attribute makes substrings of digits that are sort according to their numeric values. This is a way to get '100' to sort AFTER '2'. Note that the longest digit substring that can be treated as a single unit is 254 digits (not counting leading zeros). If a digit substring is longer than that, the digits beyond the limit will be treated as a separate digit substring. A "digit" in this sense is a code point with General_Category=Nd, which does not include circled numbers, roman numerals, and so on. Only a contiguous digit substring is considered, that is, non-negative integers without separators. There is no support for plus/minus signs, decimals, exponents, and so on */
-       I18N_UCOLLATOR_ATTRIBUTE_COUNT                                                                                          /**< The number of i18n_ucollator_attribute_e constants */
-} i18n_ucollator_attribute_e;
-
-/**
- * @brief Enumeration containing attribute values for controlling collation behavior.
- *               Here are all the allowable values. Not every attribute can take every value.
- *               The only universal value is #I18N_UCOLLATOR_DEFAULT, which resets the attribute value to the predefined value for that locale.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCOLLATOR_DEFAULT                   = -1,                                                  /**< Accepted by most attributes */
-       I18N_UCOLLATOR_PRIMARY                   = 0,                                                   /**< Primary collation strength */
-       I18N_UCOLLATOR_SECONDARY                 = 1,                                                   /**< Secondary collation strength */
-       I18N_UCOLLATOR_TERTIARY                  = 2,                                                   /**< Tertiary collation strength */
-       I18N_UCOLLATOR_DEFAULT_STRENGTH  = I18N_UCOLLATOR_TERTIARY,             /**< Default collation strength */
-       I18N_UCOLLATOR_CE_STRENGTH_LIMIT,
-       I18N_UCOLLATOR_QUATERNARY                = 3,                                                   /**< Quaternary collation strength */
-       I18N_UCOLLATOR_IDENTICAL                 = 15,                                                  /**< Identical collation strength */
-       I18N_UCOLLATOR_STRENGTH_LIMIT,
-
-       I18N_UCOLLATOR_OFF                               = 16,                                                  /**< Turn the feature off - works for #I18N_UCOLLATOR_FRENCH_COLLATION, #I18N_UCOLLATOR_CASE_LEVEL & #I18N_UCOLLATOR_DECOMPOSITION_MODE */
-       I18N_UCOLLATOR_ON                                = 17,                                                  /**< Turn the feature on - works for #I18N_UCOLLATOR_FRENCH_COLLATION, #I18N_UCOLLATOR_CASE_LEVEL & #I18N_UCOLLATOR_DECOMPOSITION_MODE */
-
-       I18N_UCOLLATOR_SHIFTED                   = 20,                                                  /**< Valid for #I18N_UCOLLATOR_ALTERNATE_HANDLING. Alternate handling will be shifted. */
-       I18N_UCOLLATOR_NON_IGNORABLE     = 21,                                                  /**< Valid for #I18N_UCOLLATOR_ALTERNATE_HANDLING. Alternate handling will be non ignorable. */
-       I18N_UCOLLATOR_LOWER_FIRST               = 24,                                                  /**< Valid for #I18N_UCOLLATOR_CASE_FIRST - lower case sorts before upper case. */
-       I18N_UCOLLATOR_UPPER_FIRST               = 25,                                                  /**< Upper case sorts before lower case. */
-       I18N_UCOLLATOR_ATTRIBUTE_VALUE_COUNT
-} i18n_ucollator_attribute_value_e;
-
-/**
- * @brief Enumeration in which the base letter represents a primary difference. Set comparison level to #I18N_UCOLLATOR_PRIMARY to ignore secondary and tertiary differences. Use this to set the strength of an #i18n_ucollator_h. Example of primary difference, "abc" < "abd"
- *               Diacritical differences on the same base letter represent a secondary difference. Set comparison level to #I18N_UCOLLATOR_SECONDARY to ignore tertiary differences. Use this to set the strength of an #i18n_ucollator_h. Example of secondary difference, "&auml;" >> "a".
- *               Uppercase and lowercase versions of the same character represent a tertiary difference. Set comparison level to #I18N_UCOLLATOR_TERTIARY to include all comparison differences. Use this to set the strength of an #i18n_ucollator_h. Example of tertiary difference, "abc" <<< "ABC".
- *               Two characters are considered "identical" when they have the same unicode spellings. #I18N_UCOLLATOR_IDENTICAL. For example, "&auml;" == "&auml;".
- *               #i18n_ucollator_strength_e is also used to determine the strength of sort keys generated from #i18n_ucollator_h. These values can now be found in the #i18n_ucollator_attribute_value_e enum.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef i18n_ucollator_attribute_value_e i18n_ucollator_strength_e;
-
-/**
- * @brief Enumeration for source and target string comparison result.
- *               #I18N_UCOLLATOR_LESS is returned if the source string is compared to be less than the target string in the {@link i18n_ucollator_str_collator() } method.
- *               #I18N_UCOLLATOR_EQUAL is returned if the source string is compared to be equal to the target string in the {@link i18n_ucollator_str_collator() } method.
- *               #I18N_UCOLLATOR_GREATER is returned if the source string is compared to be greater than the target string in the {@link #i18n_ucollator_str_collator() } method.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCOLLATOR_EQUAL     = 0,    /**< string a == string b */
-       I18N_UCOLLATOR_GREATER   = 1,    /**< string a > string b */
-       I18N_UCOLLATOR_LESS              = -1    /**< string a < string b */
-} i18n_ucollator_result_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE
- * @{
- */
-
-
-/**
- * @brief i18n_unormalizer_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- */
-
-typedef const void *i18n_unormalizer_h;
-
-/**
- * @brief Enumeration of constants for normalization modes.
- *               For details about standard Unicode normalization forms and about the algorithms which are also used with custom mapping tables see http://www.unicode.org/unicode/reports/tr15/
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UNORMALIZATION_COMPOSE,                      /**< Decomposition followed by composition. Same as standard NFC when using an "nfc" instance. Same as standard NFKC when using an "nfkc" instance.
-                                                                                                  For details about standard Unicode normalization forms see http://www.unicode.org/unicode/reports/tr15/ */
-       I18N_UNORMALIZATION_DECOMPOSE,                    /**< Map and reorder canonically. Same as standard NFD when using an "nfc" instance. Same as standard NFKD when using an "nfkc" instance.
-                                                                                                  For details about standard Unicode normalization forms see http://www.unicode.org/unicode/reports/tr15/ */
-       I18N_UNORMALIZATION_FCD,                                  /**< "Fast C or D" form. If a string is in this form, then further decomposition without reordering would yield the same form as DECOMPOSE.
-                                                                                                  Text in "Fast C or D" form can be processed efficiently with data tables that are "canonically closed",
-                                                                                                  that is, that provide equivalent data for equivalent text, without having to be fully normalized.
-                                                                                                  Not a standard Unicode normalization form. Not a unique form: Different FCD strings can be canonically equivalent.
-                                                                                                  For details see http://www.unicode.org/notes/tn5/#FCD  */
-       I18N_UNORMALIZATION_COMPOSE_CONTIGUOUS    /**< Compose only contiguously. Also known as "FCC" or "Fast C Contiguous". The result will often but not always be in NFC.
-                                                                                                  The result will conform to FCD which is useful for processing. Not a standard Unicode normalization form.
-                                                                                                  For details see http://www.unicode.org/notes/tn5/#FCC  */
-} i18n_unormalization_mode_e;
-
-/**
- * @brief Result values for normalization quick check functions.
- *
- * @since_tizen 3.0
- */
-typedef enum {
-       I18N_UNORMALIZATION_NO,         /**< The input string is not in the normalization form. */
-       I18N_UNORMALIZATION_YES,        /**< The input string is in the normalization form. */
-       I18N_UNORMALIZATION_MAYBE       /**< The input string may or may not be in the normalization form. */
-} i18n_unormalization_check_result_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_USEARCH_MODULE
- * @{
- */
-
-/**
- * @brief i18n_usearch_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_usearch_h;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE
- * @{
- */
-
-/**
- * @brief i18n_ucalendar_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_ucalendar_h;
-
-/**
- * @brief The time zone ID reserved for unknown time zone.
- * @since_tizen 2.3.1
- */
-#define I18N_UCALENDAR_UNKNOWN_ZONE_ID "Etc/Unknown"
-
-/**
- * @brief Enumeration for possible fields in an #i18n_ucalendar_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCALENDAR_ERA,                                                                     /**< Field number indicating the era, e.g., AD or BC in the Gregorian (Julian) calendar */
-       I18N_UCALENDAR_YEAR,                                                            /**< Field number indicating the year */
-       I18N_UCALENDAR_MONTH,                                                           /**< Field number indicating the month. This is a calendar-specific value. \n The first month of the year is JANUARY;
-                                                                                                                        the last depends on the number of months in a year */
-       I18N_UCALENDAR_WEEK_OF_YEAR,                                            /**< Field number indicating the week number within the current year. \n
-                                                                                                                        The first week of the year, as defined by the #I18N_UCALENDAR_FIRST_DAY_OF_WEEK and #I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK attributes, has value 1.
-                                                                                                                        Subclasses define the value of #I18N_UCALENDAR_WEEK_OF_YEAR for days before the first week of the year */
-       I18N_UCALENDAR_WEEK_OF_MONTH,                                           /**< Field number indicating the week number within the current month. \n
-                                                                                                                        The first week of the month, as defined by the #I18N_UCALENDAR_FIRST_DAY_OF_WEEK and #I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK attributes, has value 1.
-                                                                                                                        Subclasses define the value of WEEK_OF_MONTH for days before the first week of the month */
-       I18N_UCALENDAR_DATE,                                                            /**< Field number indicating the day of the month.      \n This is a synonym for DAY_OF_MONTH. The first day of the month has value 1  */
-       I18N_UCALENDAR_DAY_OF_YEAR,                                                     /**< Field number indicating the day number within the current year. \n The first day of the year has value 1. */
-       I18N_UCALENDAR_DAY_OF_WEEK,                                                     /**< Field number indicating the day of the week.       \n
-                                                                                                                        This field takes values "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", and "Saturday" */
-       I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH,                            /**< Field number indicating the ordinal number of the day of the week within the current month.  \n
-                                                                                                                        Together with the "day of week" field, this uniquely specifies a day within a month.
-                                                                                                                        "day of month" 1 through 7 always correspond to "day of week in month" 1; 8 through 15 correspond to "day of week in month" 2, and so on.
-                                                                                                                        "day of week in month" 0 indicates the week before "day of week in month" 1.
-                                                                                                                        Negative values count back from the end of the month, so the last Sunday of a month is specified as "day of week" = "Sunday",
-                                                                                                                        "day of week in month" = -1. Because negative values count backward they will usually be aligned differently within the month than positive values.
-                                                                                                                        For example, if a month has 31 days, "day of week in month" -1 will overlap "day of week in month" 5 and the end of 4 */
-       I18N_UCALENDAR_AM_PM,                                                           /**< Field number indicating whether the "hour" is before or after noon.  \n E.g., at 10:04:15.250 PM the AM_PM is PM */
-       I18N_UCALENDAR_HOUR,                                                            /**< Field number indicating the hour of the morning or afternoon.      \n "hour" is used for the 12-hour clock. E.g., at 10:04:15.250 PM the "Hour" is 10 */
-       I18N_UCALENDAR_HOUR_OF_DAY,                                                     /**< Field number indicating the hour of the day.  \n "Hour of day" is used for the 24-hour clock. E.g., at 10:04:15.250 PM the "Hour of day" is 22 */
-       I18N_UCALENDAR_MINUTE,                                                          /**< Field number indicating the minute within the hour.  \n E.g., at 10:04:15.250 PM the #I18N_UCALENDAR_MINUTE is 4 */
-       I18N_UCALENDAR_SECOND,                                                          /**< Field number indicating the second within the minute.      \n E.g., at 10:04:15.250 PM the #I18N_UCALENDAR_SECOND is 15 */
-       I18N_UCALENDAR_MILLISECOND,                                                     /**< Field number indicating the millisecond within the second.  \n E.g., at 10:04:15.250 PM the #I18N_UCALENDAR_MILLISECOND is 250 */
-       I18N_UCALENDAR_ZONE_OFFSET,                                                     /**< Field number indicating the raw offset from GMT in milliseconds  */
-       I18N_UCALENDAR_DST_OFFSET,                                                      /**< Field number indicating the daylight savings offset in milliseconds  */
-       I18N_UCALENDAR_YEAR_WOY,                                                        /**< Field number indicating the extended year corresponding to the #I18N_UCALENDAR_WEEK_OF_YEAR field. \n
-                                                                                                                        This may be one greater or less than the value of #I18N_UCALENDAR_EXTENDED_YEAR */
-       I18N_UCALENDAR_DOW_LOCAL,                                                       /**< Field number indicating the localized day of the week. \n
-                                                                                                                        This will be a value from 1 to 7 inclusive, with 1 being the localized first day of the week */
-       I18N_UCALENDAR_EXTENDED_YEAR,                                           /**< Year of this calendar system, encompassing all supra-year fields. \n
-                                                                                                                        For example, in Gregorian/Julian calendars, positive Extended Year values indicate years AD, 1 BC = 0 extended, 2 BC = -1 extended, and so on */
-       I18N_UCALENDAR_JULIAN_DAY,                                                      /**< Field number indicating the modified Julian day number. \n
-                                                                                                                        This is different from the conventional Julian day number in two regards.
-                                                                                                                        First, it demarcates days at local zone midnight, rather than noon GMT. Second, it is a local number; that is, it depends on the local time zone.
-                                                                                                                        It can be thought of as a single number that encompasses all the date-related fields */
-       I18N_UCALENDAR_MILLISECONDS_IN_DAY,                                     /**< Ranges from 0 to 23:59:59.999 (regardless of DST). \n
-                                                                                                                        This field behaves exactly like a composite of all time-related fields, not including the zone fields.
-                                                                                                                        As such, it also reflects discontinuities in those fields on DST transition days. On a day of DST onset, it will jump forward.
-                                                                                                                        On a day of DST cessation, it will jump backward.
-                                                                                                                        This reflects the fact that it must be combined with the DST offset field to obtain a unique local time value */
-       I18N_UCALENDAR_IS_LEAP_MONTH,                                           /**< Whether or not the current month is a leap month (0 or 1) */
-       I18N_UCALENDAR_FIELD_COUNT,                                                     /**< Number of enumerators */
-       I18N_UCALENDAR_DAY_OF_MONTH = I18N_UCALENDAR_DATE       /**< Field number indicating the day of the month.      \n This is a synonym for #I18N_UCALENDAR_DATE. The first day of the month has value 1 */
-} i18n_ucalendar_date_fields_e;
-
-/**
- * @brief Enumeration for possible months in an #i18n_ucalendar_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCALENDAR_TRADITIONAL,                                                             /**< Despite the name, #I18N_UCALENDAR_TRADITIONAL designates the locale's default calendar, which may be the Gregorian calendar or some other calendar */
-       I18N_UCALENDAR_DEFAULT = I18N_UCALENDAR_TRADITIONAL,    /**< A better name for #I18N_UCALENDAR_TRADITIONAL      */
-       I18N_UCALENDAR_GREGORIAN                                                                /**< Unambiguously designates the Gregorian calendar for the locale */
-} i18n_ucalendar_type_e;
-
-/**
- * @brief Enumeration for possible months in an #i18n_ucalendar_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCALENDAR_JANUARY,                 /**< January */
-       I18N_UCALENDAR_FEBRUARY,                /**< February */
-       I18N_UCALENDAR_MARCH,                   /**< March */
-       I18N_UCALENDAR_APRIL,                   /**< April */
-       I18N_UCALENDAR_MAY,                             /**< May */
-       I18N_UCALENDAR_JUNE,                    /**< June */
-       I18N_UCALENDAR_JULY,                    /**< July */
-       I18N_UCALENDAR_AUGUST,                  /**< August */
-       I18N_UCALENDAR_SEPTEMBER,               /**< September */
-       I18N_UCALENDAR_OCTOBER,                 /**< October */
-       I18N_UCALENDAR_NOVEMBER,                /**< November */
-       I18N_UCALENDAR_DECEMBER                 /**< December */
-} i18n_ucalendar_months_e;
-
-/**
- * @brief Enumeration for possible formats of an #i18n_ucalendar_h's display name.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCALENDAR_STANDARD,                  /**< Standard display name */
-       I18N_UCALENDAR_SHORT_STANDARD,    /**< Short standard display name */
-       I18N_UCALENDAR_DST,                               /**< Daylight savings display name */
-       I18N_UCALENDAR_SHORT_DST                  /**< Short daylight savings display name */
-} i18n_ucalendar_displayname_type_e;
-
-/**
- * @brief Enumeration for types of #i18n_ucalendar_h attributes.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCALENDAR_LENIENT,                                           /**< Lenient parsing */
-       I18N_UCALENDAR_FIRST_DAY_OF_WEEK,                         /**< First day of the week */
-       I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK         /**< Minimum number of days in the first week */
-} i18n_ucalendar_attribute_e;
-
-/**
- * @brief System time zone type constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UCALENDAR_ZONE_TYPE_ANY,                                   /**< Any system zones. */
-       I18N_UCALENDAR_ZONE_TYPE_CANONICAL,                             /**< Canonical system zones. */
-       I18N_UCALENDAR_ZONE_TYPE_CANONICAL_LOCATION             /**< Canonical system zones associated with actual locations. */
-} i18n_system_timezone_type_e;
-
-/**
- * @brief Possible limit values for an #i18n_ucalendar_h.
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_UCALENDAR_MINIMUM,                         /**< Minimum value */
-       I18N_UCALENDAR_MAXIMUM,                         /**< Maximum value */
-       I18N_UCALENDAR_GREATEST_MINIMUM,        /**< Greatest minimum value */
-       I18N_UCALENDAR_LEAST_MAXIMUM,           /**< Least maximum value */
-       I18N_UCALENDAR_ACTUAL_MINIMUM,          /**< Actual minimum value */
-       I18N_UCALENDAR_ACTUAL_MAXIMUM           /**< Actual maximum value */
-} i18n_ucalendar_limit_type_e;
-
-/**
- * @brief Weekday types, as returned by i18n_ucalendar_get_day_of_week_type().
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_UCALENDAR_WEEKDAY,                   /**< Designates a full weekday (no part of the day is included in the weekend). */
-       I18N_UCALENDAR_WEEKEND,                   /**< Designates a full weekend day (the entire day is included in the weekend). */
-       I18N_UCALENDAR_WEEKEND_ONSET,     /**< Designates a day that starts as a weekday and transitions to the weekend.
-                                                                                  Call i18n_ucalendar_get_weekend_transition() to get the time of transition. */
-       I18N_UCALENDAR_WEEKEND_CEASE,     /**< Designates a day that starts as the weekend and transitions to a weekday.
-                                                                                  Call i18n_ucalendar_get_weekend_transition() to get the time of transition. */
-} i18n_ucalendar_weekday_type_e;
-
-/**
- * @brief Useful constants for days of week.
- * @details Note: Calendar day-of-week is 1-based. Clients who create locale resources for the field of first-day-of-week should be aware of this.
- *                     For instance, in US locale, first-day-of-week is set to 1, i.e., #I18N_UCALENDAR_SUNDAY. Possible days of the week in an #i18n_ucalendar_h.
- * @since_tizen 2.3.1
- */
-typedef enum  {
-       I18N_UCALENDAR_SUNDAY = 1,        /**< Sunday */
-       I18N_UCALENDAR_MONDAY,            /**< Monday */
-       I18N_UCALENDAR_TUESDAY,           /**< Tuesday */
-       I18N_UCALENDAR_WEDNESDAY,         /**< Wednesday */
-       I18N_UCALENDAR_THURSDAY,          /**< Thursday */
-       I18N_UCALENDAR_FRIDAY,            /**< Friday */
-       I18N_UCALENDAR_SATURDAY           /**< Saturday */
-} i18n_ucalendar_days_of_week_e;
-
-/**
- * @brief Time zone transition types for i18n_ucalendar_get_timezone_transition_date().
- * @since_tizen 2.3.1
- *
- * @see i18n_ucalendar_get_timezone_transition_date()
- */
-typedef enum {
-       I18N_UCALENDAR_TZ_TRANSITION_NEXT,                                       /**< Get the next transition after the current date, i.e. excludes the current date  */
-       I18N_UCALENDAR_TZ_TRANSITION_NEXT_INCLUSIVE,             /**< Get the next transition on or after the current date, i.e. may include the current date */
-       I18N_UCALENDAR_TZ_TRANSITION_PREVIOUS,                           /**< Get the previous transition before the current date, i.e. excludes the current date */
-       I18N_UCALENDAR_TZ_TRANSITION_PREVIOUS_INCLUSIVE,         /**< Get the previous transition on or before the current date, i.e. may include the current date */
-} i18n_utimezone_transition_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UDATE_MODULE
- * @{
- */
-
-/**
- * @brief Date and Time data type. \n This is a primitive data type that holds the date and time as the number of milliseconds since 1970-jan-01, 00:00 UTC. UTC leap seconds are ignored.
- */
-
-/**
- * @brief Date and Time data type.
- * @details This is a primitive data type that holds the date and time as the number of milliseconds since 1970-jan-01, 00:00 UTC. UTC leap seconds are ignored.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef double i18n_udate;
-
-/**
- * @brief A date formatter.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_udate_format_h;
-
-/**
- * @brief A struct representing a range of text containing a specific field.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef struct {
-       int32_t field;                          /**< The field. */
-       int32_t beginIndex;                     /**< The start of the text range containing field.*/
-       int32_t endIndex;                       /**< The limit of the text range containing field.*/
-} i18n_ufield_position_s;
-
-/**
- * @brief Handle to struct representing a range of text containing a specific field.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef i18n_ufield_position_s *i18n_ufield_position_h;
-
-/**
- * @brief Enumeration for the possible date/time format styles.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UDATE_FULL,                                                                                                                 /**< Full style */
-       I18N_UDATE_LONG,                                                                                                                 /**< Long style */
-       I18N_UDATE_MEDIUM,                                                                                                               /**< Medium style */
-       I18N_UDATE_SHORT,                                                                                                                /**< Short style */
-       I18N_UDATE_DEFAULT                       = I18N_UDATE_MEDIUM,                                            /**< Default style */
-       I18N_UDATE_RELATIVE                      = (1 << 7),                                                             /**< Bitfield for relative date */
-       I18N_UDATE_FULL_RELATIVE         = I18N_UDATE_FULL       | I18N_UDATE_RELATIVE,  /**< #I18N_UDATE_FULL | #I18N_UDATE_RELATIVE */
-       I18N_UDATE_LONG_RELATIVE         = I18N_UDATE_LONG       | I18N_UDATE_RELATIVE,  /**< #I18N_UDATE_LONG | #I18N_UDATE_RELATIVE */
-       I18N_UDATE_MEDIUM_RELATIVE       = I18N_UDATE_MEDIUM | I18N_UDATE_RELATIVE,      /**< #I18N_UDATE_MEDIUM | #I18N_UDATE_RELATIVE */
-       I18N_UDATE_SHORT_RELATIVE        = I18N_UDATE_SHORT      | I18N_UDATE_RELATIVE,  /**< #I18N_UDATE_SHORT | #I18N_UDATE_RELATIVE */
-       I18N_UDATE_NONE                          = -1,                                                                           /**< No style */
-       I18N_UDATE_PATTERN                       = -2                                                                            /**< Use the pattern given in the parameter to i18n_udate_create(). */
-} i18n_udate_format_style_e;
-
-/**
- * @brief Enumeration for format fields.
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_UDATE_FORMAT_ERA_FIELD,                                               /**< Era field */
-       I18N_UDATE_FORMAT_YEAR_FIELD,                                              /**< Year field */
-       I18N_UDATE_FORMAT_MONTH_FIELD,                                             /**< Month field */
-       I18N_UDATE_FORMAT_DATE_FIELD,                                              /**< Date field */
-       I18N_UDATE_FORMAT_HOUR_OF_DAY1_FIELD,                              /**< Hour of day1 field */
-       I18N_UDATE_FORMAT_HOUR_OF_DAY0_FIELD,                              /**< Hour of day0 field */
-       I18N_UDATE_FORMAT_MINUTE_FIELD,                                            /**< Minute field */
-       I18N_UDATE_FORMAT_SECOND_FIELD,                                            /**< Second field */
-       I18N_UDATE_FORMAT_FRACTIONAL_SECOND_FIELD,                         /**< Fractional second field */
-       I18N_UDATE_FORMAT_DAY_OF_WEEK_FIELD,                               /**< Day of week field */
-       I18N_UDATE_FORMAT_DAY_OF_YEAR_FIELD,                               /**< Day of year field */
-       I18N_UDATE_FORMAT_DAY_OF_WEEK_IN_MONTH_FIELD,              /**< Day of week in month field */
-       I18N_UDATE_FORMAT_WEEK_OF_YEAR_FIELD,                              /**< Week of year field */
-       I18N_UDATE_FORMAT_WEEK_OF_MONTH_FIELD,                             /**< Week of month field */
-       I18N_UDATE_FORMAT_AM_PM_FIELD,                                             /**< a.m. / p.m. field */
-       I18N_UDATE_FORMAT_HOUR1_FIELD,                                             /**< Hour1 field */
-       I18N_UDATE_FORMAT_HOUR0_FIELD,                                             /**< Hour0 field */
-       I18N_UDATE_FORMAT_TIMEZONE_FIELD,                                          /**< Timezone field */
-       I18N_UDATE_FORMAT_YEAR_WOY_FIELD,                                          /**< Year woy field */
-       I18N_UDATE_FORMAT_DOW_LOCAL_FIELD,                                         /**< Dow local field */
-       I18N_UDATE_FORMAT_EXTENDED_YEAR_FIELD,                             /**< Extended year field */
-       I18N_UDATE_FORMAT_JULIAN_DAY_FIELD,                                        /**< Julian day field */
-       I18N_UDATE_FORMAT_MILLISECONDS_IN_DAY_FIELD,               /**< Milliseconds in day field */
-       I18N_UDATE_FORMAT_TIMEZONE_RFC_FIELD,                              /**< Timezone RFC field */
-       I18N_UDATE_FORMAT_TIMEZONE_GENERIC_FIELD,                          /**< Timezone generic field */
-       I18N_UDATE_FORMAT_STANDALONE_DAY_FIELD,                            /**< Standalone day field */
-       I18N_UDATE_FORMAT_STANDALONE_MONTH_FIELD,                          /**< Standalone month field */
-       I18N_UDATE_FORMAT_QUARTER_FIELD,                                           /**< Quarter field */
-       I18N_UDATE_FORMAT_STANDALONE_QUARTER_FIELD,                        /**< Standalone quarter field */
-       I18N_UDATE_FORMAT_TIMEZONE_SPECIAL_FIELD,                          /**< Timezone special field */
-       I18N_UDATE_FORMAT_YEAR_NAME_FIELD,                                         /**< Year name field */
-       I18N_UDATE_FORMAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD, /**< Timezone localized gmt offset field */
-       I18N_UDATE_FORMAT_TIMEZONE_ISO_FIELD,                              /**< Timezone ISO field */
-       I18N_UDATE_FORMAT_TIMEZONE_ISO_LOCAL_FIELD,                        /**< Timezone ISO local field */
-       I18N_UDATE_FORMAT_FIELD_COUNT                                              /**< Field count */
-} i18n_udate_format_field_e;
-
-/**
- * @brief Enumeration for symbol types.
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_ERAS,                                                /**< Eras */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_MONTHS,                                      /**< Months */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORT_MONTHS,                                /**< Short months */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_WEEKDAYS,                                    /**< Weekdays */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORT_WEEKDAYS,                      /**< Short weekdays */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_AM_PMS,                                      /**< AM PMs */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_LOCALIZED_CHARS,                     /**< Localized chars */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_ERA_NAMES,                                   /**< Era names */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_NARROW_MONTHS,                       /**< Narrow months */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_NARROW_WEEKDAYS,                     /**< Narrow weekdays */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_MONTHS,                   /**< Standalone months */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORT_MONTHS,     /**< Standalone short months */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_NARROW_MONTHS,    /**< Standalone narrow months */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_WEEKDAYS,                 /**< Standalone weekdays */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORT_WEEKDAYS,   /**< Standalone short weekdays */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_NARROW_WEEKDAYS,  /**< Standalone narrow weekdays */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_QUARTERS,                                    /**< Quarters */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORT_QUARTERS,                      /**< Short quarters */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_QUARTERS,                 /**< Standalone quarters */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORT_QUARTERS,   /**< Standalone short quarters */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORTER_WEEKDAYS,                    /**< Shorter weekdays */
-       I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORTER_WEEKDAYS, /**< Standalone shorter weekdays */
-} i18n_udate_format_symbol_type_e;
-
-/**
- * @brief Display context types, for getting values of a particular setting.
- * @details Note, the specific numeric values are internal and may change.
- * @since_tizen 2.3.1
-
- */
-typedef enum {
-       I18N_UDISPCTX_TYPE_DIALECT_HANDLING,            /**<Type to retrieve the dialect handling setting, e.g. UDISPCTX_STANDARD_NAMES or UDISPCTX_DIALECT_NAMES.       */
-       I18N_UDISPCTX_TYPE_CAPITALIZATION,                      /**<Type to retrieve the capitalization context setting, e.g. UDISPCTX_CAPITALIZATION_NONE, UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE, UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE, etc.       */
-#ifndef U_HIDE_DRAFT_API
-       I18N_UDISPCTX_TYPE_DISPLAY_LENGTH                       /**<Type to retrieve the display length setting, e.g. UDISPCTX_LENGTH_FULL, UDISPCTX_LENGTH_SHORT.      */
-#endif /* U_HIDE_DRAFT_API */
-} i18n_udisplay_context_type_e;
-
-/**
- * @brief Enumeration for display context.
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_UDISPLAY_CONTEXT_STANDARD_NAMES                                               = (I18N_UDISPCTX_TYPE_DIALECT_HANDLING<<8) + 0, /**< Standard names */
-       I18N_UDISPLAY_CONTEXT_DIALECT_NAMES                                                        = (I18N_UDISPCTX_TYPE_DIALECT_HANDLING<<8) + 1, /**< Dialect names */
-       I18N_UDISPLAY_CONTEXT_CAPITALIZATION_NONE                                          = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 0,   /**< Capitalization: None */
-       I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE        = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 1,   /**< Capitalization: For middle of sentence */
-       I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 2,   /**< Capitalization: For beginning of sentence */
-       I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_UI_LIST_OR_MENU           = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 3,   /**< Capitalization: For UI list or menu */
-       I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_STANDALONE                        = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 4,   /**< Capitalization: For standalone */
-} i18n_udisplay_context_e;
-
-/* Skeletons for dates. */
-
-/**
- * @brief Constant for date skeleton with year.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_YEAR                                                  "y"
-
-/**
- * @brief Constant for date skeleton with quarter.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_QUARTER                                       "QQQQ"
-
-/**
- * @brief Constant for date skeleton with abbreviated quarter.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_ABBR_QUARTER                                  "QQQ"
-
-/**
- * @brief Constant for date skeleton with year and quarter.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_YEAR_QUARTER                                  "yQQQQ"
-
-/**
- * @brief Constant for date skeleton with year and abbreviated quarter.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_YEAR_ABBR_QUARTER             "yQQQ"
-
-/**
- * @brief Constant for date skeleton with month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_MONTH                                         "MMMM"
-
-/**
- * @brief Constant for date skeleton with abbreviated month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_ABBR_MONTH                            "MMM"
-
-/**
- * @brief Constant for date skeleton with numeric month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_NUM_MONTH                             "M"
-
-/**
- * @brief Constant for date skeleton with year and month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_MONTH                            "yMMMM"
-
-/**
- * @brief Constant for date skeleton with year and abbreviated month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_ABBR_MONTH                       "yMMM"
-
-/**
- * @brief Constant for date skeleton with year and numeric month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_NUM_MONTH                        "yM"
-
-/**
- * @brief Constant for date skeleton with day.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_DAY                                           "d"
-
-/**
- * @brief Constant for date skeleton with year, month, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_MONTH_DAY                        "yMMMMd"
-
-/**
- * @brief Constant for date skeleton with year, abbreviated month, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_ABBR_MONTH_DAY           "yMMMd"
-
-/**
- * @brief Constant for date skeleton with year, numeric month, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_NUM_MONTH_DAY            "yMd"
-
-/**
- * @brief Constant for date skeleton with weekday.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_WEEKDAY                                       "EEEE"
-
-/**
- * @brief Constant for date skeleton with abbreviated weekday.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_ABBR_WEEKDAY                                  "E"
-
-/**
- * @brief Constant for date skeleton with year, month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_MONTH_WEEKDAY_DAY        "yMMMMEEEEd"
-
-/**
- * @brief Constant for date skeleton with year, abbreviated month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_ABBR_MONTH_WEEKDAY_DAY "yMMMEd"
-
-/**
- * @brief Constant for date skeleton with year, numeric month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_NUM_MONTH_WEEKDAY_DAY "yMEd"
-
-/**
- * @brief Constant for date skeleton with long month and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_MONTH_DAY                             "MMMMd"
-
-/**
- * @brief Constant for date skeleton with abbreviated month and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_ABBR_MONTH_DAY                        "MMMd"
-
-/**
- * @brief Constant for date skeleton with numeric month and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_NUM_MONTH_DAY                         "Md"
-
-/**
- * @brief Constant for date skeleton with month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_MONTH_WEEKDAY_DAY             "MMMMEEEEd"
-
-/**
- * @brief Constant for date skeleton with abbreviated month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_ABBR_MONTH_WEEKDAY_DAY        "MMMEd"
-
-/**
- * @brief Constant for date skeleton with numeric month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_NUM_MONTH_WEEKDAY_DAY         "MEd"
-
-/* Skeletons for times. */
-
-/**
- * @brief Constant for date skeleton with hour, with the locale's preferred hour format (12 or 24).
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR                                                  "j"
-
-/**
- * @brief Constant for date skeleton with hour in 24-hour presentation.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR24                                        "H"
-
-/**
- * @brief Constant for date skeleton with minute.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_MINUTE                                        "m"
-
-/**
- * @brief Constant for date skeleton with hour and minute, with the locale's preferred hour format (12 or 24).
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR_MINUTE                           "jm"
-
-/**
- * @brief Constant for date skeleton with hour and minute in 24-hour presentation.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR24_MINUTE                         "Hm"
-
-/**
- * @brief Constant for date skeleton with second.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_SECOND                                        "s"
-
-/**
- * @brief Constant for date skeleton with hour, minute, and second,
- * with the locale's preferred hour format (12 or 24).
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR_MINUTE_SECOND            "jms"
-
-/**
- * @brief Constant for date skeleton with hour, minute, and second in
- * 24-hour presentation.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR24_MINUTE_SECOND                  "Hms"
-
-/**
- * @brief Constant for date skeleton with minute and second.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_MINUTE_SECOND                         "ms"
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UDATEPG_MODULE
- * @{
- */
-
-/**
- * @brief Handle for a date/time pattern generator object.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_udatepg_h;
-
-/**
- * @brief Enumeration for field number constants for i18n_udatepg_get_append_item_format() and similar functions.
- * @details These constants are separate from #i18n_udate_format_field_e despite semantic overlap because some fields are merged for the date/time pattern generator.
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_UDATEPG_ERA_FIELD,                                  /**< Era field */
-       I18N_UDATEPG_YEAR_FIELD,                                 /**< Year field */
-       I18N_UDATEPG_QUARTER_FIELD,                              /**< Quarter field */
-       I18N_UDATEPG_MONTH_FIELD,                                /**< Month field */
-       I18N_UDATEPG_WEEK_OF_YEAR_FIELD,                 /**< Week of year field */
-       I18N_UDATEPG_WEEK_OF_MONTH_FIELD,                /**< Week of month field */
-       I18N_UDATEPG_WEEKDAY_FIELD,                              /**< Weekday field */
-       I18N_UDATEPG_DAY_OF_YEAR_FIELD,                  /**< Day of year field */
-       I18N_UDATEPG_DAY_OF_WEEK_IN_MONTH_FIELD, /**< Day of week in month field */
-       I18N_UDATEPG_DAY_FIELD,                                  /**< Day field */
-       I18N_UDATEPG_DAYPERIOD_FIELD,                    /**< Day period field */
-       I18N_UDATEPG_HOUR_FIELD,                                 /**< Hour field */
-       I18N_UDATEPG_MINUTE_FIELD,                               /**< Minute field */
-       I18N_UDATEPG_SECOND_FIELD,                               /**< Second field */
-       I18N_UDATEPG_FRACTIONAL_SECOND_FIELD,    /**< Fractional second field */
-       I18N_UDATEPG_ZONE_FIELD,                                 /**< Zone field */
-       I18N_UDATEPG_FIELD_COUNT                                 /**< Field count */
-} i18n_udatepg_date_time_pattern_field_e;
-
-/**
- * @brief Enumeration for masks to control forcing the length of specified fields in the returned pattern to match those in the skeleton (when this would not happen otherwise).\n
- * @details These may be combined to force the length of multiple fields.
- *                     Used with i18n_udatepg_get_best_pattern_with_options(), i18n_udatepg_replace_field_types_with_options().
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_UDATEPG_MATCH_NO_OPTIONS            = 0,                                                                   /**< No options */
-       I18N_UDATEPG_MATCH_HOUR_FIELD_LENGTH = 1 << I18N_UDATEPG_HOUR_FIELD,            /**< Hour field length */
-       I18N_UDATEPG_MATCH_ALL_FIELDS_LENGTH = (1 << I18N_UDATEPG_FIELD_COUNT) - 1, /**< All fields length */
-} i18n_udatepg_date_time_pattern_match_options_e;
-
-/**
- * @brief Enumeration for status return values from i18n_udatepg_add_pattern().
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_UDATEPG_NO_CONFLICT,        /**< No conflict */
-       I18N_UDATEPG_BASE_CONFLICT,      /**< Base conflict */
-       I18N_UDATEPG_CONFLICT,           /**< Conflict */
-       I18N_UDATEPG_CONFLICT_COUNT, /**< Number of status return values */
-} i18n_udatepg_date_time_pattern_conflict_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UNUMBER_MODULE
- * @{
- */
-
-/**
- * @brief A number formatter.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_unumber_format_h;
-
-/**
- * @brief Definition of context length.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_U_PARSE_CONTEXT_LEN 16
-
-/**
- * @brief Struct used to returned detailed information about parsing errors.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef struct {
-       int32_t    line;                                                                        /**< The line on which the error occured. */
-       int32_t    offset;                                                                      /**< The character offset to the error */
-       i18n_uchar preContext[I18N_U_PARSE_CONTEXT_LEN];        /**< Textual context before the error */
-       i18n_uchar postContext[I18N_U_PARSE_CONTEXT_LEN];       /**< The error itself and/or textual context after the error */
-} i18n_uparse_error_s;
-
-/**
- * @brief Enumeration for the possible number format styles.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UNUMBER_PATTERN_DECIMAL      = 0,  /**< Decimal format defined by a pattern string */
-       I18N_UNUMBER_DECIMAL                      = 1,  /**< Decimal format ("normal" style) */
-       I18N_UNUMBER_CURRENCY,                                  /**< Currency format with a currency symbol, e.g., "$1.00" */
-       I18N_UNUMBER_PERCENT,                                   /**< Percent format */
-       I18N_UNUMBER_SCIENTIFIC,                                /**< Scientific format */
-       I18N_UNUMBER_SPELLOUT,                                  /**< Spellout rule-based format */
-       I18N_UNUMBER_ORDINAL,                                   /**< Ordinal rule-based format */
-       I18N_UNUMBER_DURATION,                                  /**< Duration rule-based format */
-       I18N_UNUMBER_NUMBERING_SYSTEM,                  /**< Numbering system rule-based format */
-       I18N_UNUMBER_PATTERN_RULEBASED,                 /**< Rule-based format defined by a pattern string */
-       I18N_UNUMBER_CURRENCY_ISO,                              /**< Currency format with an ISO currency code, e.g., "USD1.00" */
-       I18N_UNUMBER_CURRENCY_PLURAL,                   /**< Currency format with a pluralized currency name, e.g., "1.00 US dollar" and "3.00 US dollars" */
-
-       I18N_UNUMBER_FORMAT_STYLE_COUNT,                                                                                /**< One more than the highest number format style constant */
-       I18N_UNUMBER_DEFAULT                      = I18N_UNUMBER_DECIMAL,                               /**< Default format */
-       I18N_UNUMBER_IGNORE                               = I18N_UNUMBER_PATTERN_DECIMAL                /**< Alias for #I18N_UNUMBER_PATTERN_DECIMAL */
-} i18n_unumber_format_style_e;
-
-/**
- * @brief Enumeration of constants for specifying a number format symbol.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_UNUMBER_DECIMAL_SEPARATOR_SYMBOL                    = 0,           /**< The decimal separator */
-       I18N_UNUMBER_GROUPING_SEPARATOR_SYMBOL                   = 1,           /**< The grouping separator */
-       I18N_UNUMBER_PATTERN_SEPARATOR_SYMBOL                    = 2,           /**< The pattern separator */
-       I18N_UNUMBER_PERCENT_SYMBOL                                              = 3,           /**< The percent sign */
-       I18N_UNUMBER_ZERO_DIGIT_SYMBOL                                   = 4,           /**< Zero */
-       I18N_UNUMBER_DIGIT_SYMBOL                                                = 5,           /**< Character representing a digit in the pattern.*/
-       I18N_UNUMBER_MINUS_SIGN_SYMBOL                                   = 6,           /**< The minus sign */
-       I18N_UNUMBER_PLUS_SIGN_SYMBOL                                    = 7,           /**< The plus sign */
-       I18N_UNUMBER_CURRENCY_SYMBOL                                     = 8,           /**< The currency symbol */
-       I18N_UNUMBER_INTL_CURRENCY_SYMBOL                                = 9,           /**< The international currency symbol */
-       I18N_UNUMBER_MONETARY_SEPARATOR_SYMBOL                   = 10,          /**< The monetary separator */
-       I18N_UNUMBER_EXPONENTIAL_SYMBOL                                  = 11,          /**< The exponential symbol */
-       I18N_UNUMBER_PERMILL_SYMBOL                                              = 12,          /**< Per mill symbol */
-       I18N_UNUMBER_PAD_ESCAPE_SYMBOL                                   = 13,          /**< Escape padding character */
-       I18N_UNUMBER_INFINITY_SYMBOL                                     = 14,          /**< Infinity symbol */
-       I18N_UNUMBER_NAN_SYMBOL                                                  = 15,          /**< NAN symbol */
-       I18N_UNUMBER_SIGNIFICANT_DIGIT_SYMBOL                    = 16,          /**< Significant digit symbol */
-       I18N_UNUMBER_MONETARY_GROUPING_SEPARATOR_SYMBOL  = 17,          /**< The monetary grouping separator */
-       I18N_UNUMBER_ONE_DIGIT_SYMBOL                                    = 18,          /**< One */
-       I18N_UNUMBER_TWO_DIGIT_SYMBOL                                    = 19,          /**< Two */
-       I18N_UNUMBER_THREE_DIGIT_SYMBOL                                  = 20,          /**< Three */
-       I18N_UNUMBER_FOUR_DIGIT_SYMBOL                                   = 21,          /**< Four */
-       I18N_UNUMBER_FIVE_DIGIT_SYMBOL                                   = 22,          /**< Five */
-       I18N_UNUMBER_SIX_DIGIT_SYMBOL                                    = 23,          /**< Six */
-       I18N_UNUMBER_SEVEN_DIGIT_SYMBOL                                  = 24,          /**< Seven */
-       I18N_UNUMBER_EIGHT_DIGIT_SYMBOL                                  = 25,          /**< Eight */
-       I18N_UNUMBER_NINE_DIGIT_SYMBOL                                   = 26,          /**< Nine */
-       I18N_UNUMBER_FORMAT_SYMBOL_COUNT                                                        /**< Number of enumerators */
-} i18n_unumber_format_symbol_e;
-
-/**
- * @brief Enumeration for the possible unumber_format numeric attributes.
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_UNUMBER_PARSE_INT_ONLY,                               /**< Parse integers only */
-       I18N_UNUMBER_GROUPING_USED,                                        /**< Use grouping separator */
-       I18N_UNUMBER_DECIMAL_ALWAYS_SHOWN,                         /**< Always show decimal point */
-       I18N_UNUMBER_MAX_INTEGER_DIGITS,                           /**< Maximum integer digits */
-       I18N_UNUMBER_MIN_INTEGER_DIGITS,                           /**< Minimum integer digits */
-       I18N_UNUMBER_INTEGER_DIGITS,                               /**< Integer digits */
-       I18N_UNUMBER_MAX_FRACTION_DIGITS,                          /**< Maximum fraction digits */
-       I18N_UNUMBER_MIN_FRACTION_DIGITS,                          /**< Minimum fraction digits */
-       I18N_UNUMBER_FRACTION_DIGITS,                              /**< Fraction digits */
-       I18N_UNUMBER_MULTIPLIER,                                           /**< Multiplier */
-       I18N_UNUMBER_GROUPING_SIZE,                                        /**< Grouping size */
-       I18N_UNUMBER_ROUNDING_MODE,                                        /**< Rounding Mode */
-       I18N_UNUMBER_ROUNDING_INCREMENT,                           /**< Rounding increment */
-       I18N_UNUMBER_FORMAT_WIDTH,                                         /**< The width to which the output of format() is padded */
-       I18N_UNUMBER_PADDING_POSITION,                             /**< The position at which padding will take place */
-       I18N_UNUMBER_SECONDARY_GROUPING_SIZE,              /**< Secondary grouping size */
-       I18N_UNUMBER_SIGNIFICANT_DIGITS_USED,              /**< Use significant digits */
-       I18N_UNUMBER_MIN_SIGNIFICANT_DIGITS,               /**< Minimum significant digits */
-       I18N_UNUMBER_MAX_SIGNIFICANT_DIGITS,               /**< Maximum significant digits */
-       I18N_UNUMBER_LENIENT_PARSE,                                        /**< Lenient parse mode used by rule-based formats */
-       I18N_UNUM_SCALE = I18N_UNUMBER_LENIENT_PARSE + 2,                       /**< Scale, which adjusts the position of the decimal point when formatting.
-                                                                                                                                       Amounts will be multiplied by 10 ^ (scale) before they are formatted. The default value for the scale is 0 ( no adjustment ).
-                                                                                                                                       Example: setting the scale to 3, 123 formats as "123,000"
-                                                                                                                                       Example: setting the scale to -4, 123 formats as "0.0123" */
-       I18N_UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS  = 0x1000,        /**< If 1, specifies that if setting the "max integer digits" attribute would truncate a value, set an error status rather than silently truncating.
-                                                                                                                                       For example, formatting the value 1234 with 4 max int digits would succeed, but formatting 12345 would fail.
-                                                                                                                                       There is no effect on parsing. Default: 0 (not set) */
-       I18N_UNUM_PARSE_NO_EXPONENT,                                                            /**< If this attribute is set to 1, specifies that, if the pattern doesn't contain an exponent,
-                                                                                                                                       the exponent will not be parsed. If the pattern does contain an exponent, this attribute has no effect.
-                                                                                                                                       Has no effect on formatting. Default: 0 (unset) */
-} i18n_unumber_format_attribute_e;
-
-/**
- * @brief Enumeration for the possible values of the #I18N_UNUMBER_PADDING_POSITION attribute.
- * @since_tizen 3.0
- */
-typedef enum {
-    I18N_UNUMBER_PAD_BEFORE_PREFIX,
-    I18N_UNUMBER_PAD_AFTER_PREFIX,
-    I18N_UNUMBER_PAD_BEFORE_SUFFIX,
-    I18N_UNUMBER_PAD_AFTER_SUFFIX,
-} i18n_unumber_pad_position_e;
-
-/**
- * @brief The possible #i18n_unumber_format_h text attributes.
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_UNUMBER_POSITIVE_PREFIX,      /**< Positive prefix */
-       I18N_UNUMBER_POSITIVE_SUFFIX,      /**< Positive suffix */
-       I18N_UNUMBER_NEGATIVE_PREFIX,      /**< Negative prefix */
-       I18N_UNUMBER_NEGATIVE_SUFFIX,      /**< Negative suffix */
-       I18N_UNUMBER_PADDING_CHARACTER,    /**< The character used to pad to the format width */
-       I18N_UNUMBER_CURRENCY_CODE,                /**< The ISO currency code */
-       I18N_UNUMBER_DEFAULT_RULESET,      /**< The default rule set, such as "%spellout-numbering-year:", "%spellout-cardinal:",
-                                                                                "%spellout-ordinal-masculine-plural:", "%spellout-ordinal-feminine:"
-                                                                                or "%spellout-ordinal-neuter:".
-                                                                                The available public rulesets can be listed using i18n_unumber_get_text_attribute()
-                                                                                with #I18N_UNUMBER_PUBLIC_RULESETS. This is only available with rule-based formatters */
-       I18N_UNUMBER_PUBLIC_RULESETS,      /**< The public rule sets. This is only available with rule-based formatters. This is a read-only attribute.
-                                                                                The public rulesets are returned as a single string, with each ruleset name delimited by ';' (semicolon).
-                                                                                See the CLDR LDML spec for more information about RBNF rulesets:
-                                                                                http://www.unicode.org/reports/tr35/tr35-numbers.html#Rule-Based_Number_Formatting */
-} i18n_unumber_format_text_attribute_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_ULOCALE_MODULE
- * @{
- */
-
-#define I18N_ULOCALE_CHINESE                              "zh"                 /**< Useful constant for zh. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_ENGLISH                              "en"                 /**< Useful constant for en. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_FRENCH                                       "fr"                 /**< Useful constant for fr. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_GERMAN                                       "de"                 /**< Useful constant for de. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_ITALIAN                              "it"                 /**< Useful constant for it. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_JAPANESE                             "ja"                 /**< Useful constant for ja. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_KOREAN                                       "ko"                 /**< Useful constant for ko. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_SIMPLIFIED_CHINESE                   "zh_CN"              /**< Useful constant for zh_CN. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_TRADITIONAL_CHINESE          "zh_TW"              /**< Useful constant for zh_TW. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_CANADA                                       "en_CA"              /**< Useful constant for en_CA. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_CANADA_FRENCH                        "fr_CA"              /**< Useful constant for fr_CA. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_CHINA                                        "zh_CN"              /**< Useful constant for zh_CN. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_PRC                                          "zh_CN"              /**< Useful constant for zh_CN. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_FRANCE                                       "fr_FR"              /**< Useful constant for fr_FR. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_GERMANY                              "de_DE"              /**< Useful constant for de_DE. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_ITALY                                        "it_IT"              /**< Useful constant for it_IT. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_JAPAN                                        "ja_JP"              /**< Useful constant for ja_JP. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_KOREA                                        "ko_KR"              /**< Useful constant for ko_KR. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_TAIWAN                                       "zh_TW"              /**< Useful constant for zh_TW. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_UK                                                   "en_GB"              /**< Useful constant for en_GB. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_US                                                   "en_US"              /**< Useful constant for en_US. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-
-/**
- * @brief Useful constant for the maximum size of the language part of a locale ID.
- * (including the terminating NULL).
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- * @see i18n_ulocale_get_language()
- */
-#define I18N_ULOCALE_LANG_CAPACITY 12
-
-/**
- * @brief Useful constant for the maximum size of the country part of a locale ID
- * (including the terminating NULL).
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- * @see i18n_ulocale_get_country()
- */
-#define I18N_ULOCALE_COUNTRY_CAPACITY 4
-/**
- * @brief Useful constant for the maximum size of the whole locale ID
- * (including the terminating NULL and all keywords).
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_FULLNAME_CAPACITY 157
-
-/**
- * @brief Useful constant for the maximum size of the script part of a locale ID
- * (including the terminating NULL).
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- * @see i18n_ulocale_get_script()
- */
-#define I18N_ULOCALE_SCRIPT_CAPACITY 6
-
-/**
- * @brief Useful constant for the maximum size of keywords in a locale
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORDS_CAPACITY 96
-
-/**
- * @brief Useful constant for the maximum total size of keywords and their values in a locale
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_AND_VALUES_CAPACITY 100
-
-/**
- * @brief Invariant character separating keywords from the locale string
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_SEPARATOR '@'
-
-/**
- * @brief Unicode code point for '@' separating keywords from the locale string.
- * @since_tizen 3.0
- * @see #I18N_ULOCALE_KEYWORD_SEPARATOR
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_SEPARATOR_UNICODE 0x40
-
-/**
- * @brief Invariant character for assigning value to a keyword
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_ASSIGN '='
-
-/**
- * @brief Unicode code point for '=' for assigning value to a keyword.
- * @since_tizen 3.0
- * @see #I18N_ULOCALE_KEYWORD_ASSIGN
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_ASSIGN_UNICODE 0x3D
-
-/**
- * @brief Invariant character separating keywords
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_ITEM_SEPARATOR ';'
-
-/**
- * @brief Unicode code point for ';' separating keywords
- * @since_tizen 3.0
- * @see #I18N_ULOCALE_KEYWORD_ITEM_SEPARATOR
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_ITEM_SEPARATOR_UNICODE 0x3B
-
-/**
- * @brief Enumeration for the 'out_result' parameter return value
- * @since_tizen 2.3.1
- *
- * @see i18n_ulocale_accept_language_from_http()
- * @see i18n_ulocale_accept_language()
- */
-typedef enum {
-       I18N_ULOCALE_ACCEPT_FAILED       = 0,  /**< No exact match was found */
-       I18N_ULOCALE_ACCEPT_VALID        = 1,  /**< An exact match was found */
-       I18N_ULOCALE_ACCEPT_FALLBACK = 2,  /**< A fallback was found, for example,
-                                                                                 accept list contained 'ja_JP' which matched available locale 'ja' */
-} i18n_ulocale_accept_result_e;
-
-/**
- * @brief Enumeration for data locale types.
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_ULOCALE_DATA_LOCALE_TYPE_ACTUAL_LOCALE, /**< Actual locale */
-       I18N_ULOCALE_DATA_LOCALE_TYPE_VALID_LOCALE,      /**< Valid locale */
-       I18N_ULOCALE_DATA_LOCALE_TYPE_LIMIT = 3,         /**< Locale type limit */
-} i18n_ulocale_data_locale_type_e;
-
-/**
- * @brief Enumeration for the return value for the character and line orientation functions.
- * @since_tizen 2.3.1
- */
-typedef enum {
-       I18N_ULOCALE_LAYOUT_LTR         = 0,  /**< Left-to-right */
-       I18N_ULOCALE_LAYOUT_RTL         = 1,  /**< Right-to-left */
-       I18N_ULOCALE_LAYOUT_TTB         = 2,  /**< Top-to-bottom */
-       I18N_ULOCALE_LAYOUT_BTT         = 3,  /**< Bottom-to-top */
-       I18N_ULOCALE_LAYOUT_UNKNOWN               /**< Unknown           */
-} i18n_ulocale_layout_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_USTRING_MODULE
- * @{
- */
-
-/**
- * @brief Callback function for i18n_ustring_unescape_at() that returns a character of the source text given an offset and a context pointer.\n
- *               The context pointer will be whatever is passed into i18n_ustring_unescape_at().
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in]  offset          pointer to the offset that will be passed to i18n_ustring_unescape_at().
- * @param[in]  context         an opaque pointer passed directly into i18n_ustring_unescape_at()
- *
- * @retval     character       the character represented by the escape sequence at offset
- *
- * @see i18n_ustring_unescape_at()
- */
-typedef i18n_uchar(*i18n_ustring_unescape_char_at_cb)(int32_t offset, void *context);
-
-/**
- * @brief Option value for case folding: use default mappings defined in CaseFolding.txt.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_USTRING_U_FOLD_CASE_DEFAULT 0
-
-
-/**
- * @brief Option bit i18n_ustring_case_compare_with_length(), i18n_ustring_case_compare(), etc: Compare strings in code point order instead of code unit order.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_USTRING_U_COMPARE_CODE_POINT_ORDER         0x8000
-
-/**
- * @brief Option value for case folding: \n
- * Use the modified set of mappings provided in CaseFolding.txt to handle dotted I and dotless i appropriately for Turkic languages (tr, az).\n
- * Before Unicode 3.2, CaseFolding.txt contains mappings marked with 'I' that are to be included for default mappings and excluded for the Turkic-specific mappings.\n
- * Unicode 3.2 CaseFolding.txt instead contains mappings marked with 'T' that are to be excluded for default mappings and included for the Turkic-specific mappings.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE
- * @{
- */
-
-/**
- * @brief handle for object that represents a time zone offset, and also figures out daylight savings..
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_timezone_h;
-
-/**
- * @brief Callback function for i18n_timezone_foreach_timezone_id(), i18n_timezone_foreach_timezone_id_with_offset(), and i18n_timezone_foreach_timezone_id_by_country()
- *               that returns an enumeration over all recognized time zone IDs.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] timezone_id      time zone ID
- * @param[in] user_data                the user data passed to the callback function
- *
- * @return @c true to continue with the next iteration of the loop, otherwise @c false to break out of the loop.
- *
- * @see i18n_ustring_unescape_at()
- */
-typedef bool (*i18n_timezone_id_cb)(const char *timezone_id, void *user_data);
-
-/**
- * @brief Enumeration for use with i18n_timezone_get_display_name(), i18n_timezone_get_display_name_with_locale(), and i18n_timezone_get_display_name_with_type().
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
-       I18N_TIMEZONE_DISPLAY_TYPE_SHORT = 1,                   /**< Selector for short display name */
-       I18N_TIMEZONE_DISPLAY_TYPE_LONG,                                /**< Selector for long display name */
-       I18N_TIMEZONE_DISPLAY_TYPE_SHORT_GENERIC,               /**< Selector for short generic display name */
-       I18N_TIMEZONE_DISPLAY_TYPE_LONG_GENERIC,                /**< Selector for long generic display name */
-       I18N_TIMEZONE_DISPLAY_TYPE_SHORT_GMT,                   /**< Selector for short display name derived */
-       I18N_TIMEZONE_DISPLAY_TYPE_LONG_GMT,                    /**< Selector for long display name derived from time zone offset */
-       I18N_TIMEZONE_DISPLAY_TYPE_SHORT_COMMONLY_USED, /**< Selector for short display name derived from the time zone's fallback name */
-       I18N_TIMEZONE_DISPLAY_TYPE_GENERIC_LOCATION             /**< Selector for long display name derived from the time zone's fallback name */
-} i18n_timezone_display_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UBRK_MODULE
- * @{
- */
-
-/**
- * @brief i18n_ubreak_iterator_s.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_ubreak_iterator_s;
-
-/**
- * @brief i18n_ubreak_iterator_h.
- * @since_tizen 2.3.1
- */
-typedef void *i18n_ubreak_iterator_h;
-
-/**
- * @deprecated Deprecated since Tizen 3.0
- * @brief A recommended size (in bytes) for the memory buffer to be passed to i18n_ubrk_safe_clone().
- * @since_tizen 2.3.1
- */
-#define I18N_U_BRK_SAFECLONE_BUFFERSIZE 528
-
-/**
- * @brief Value indicating all text boundaries have been returned.
- * @since_tizen 2.3.1
- */
-#define I18N_UBRK_DONE  ((int32_t) -1)
-
-/**
- * @brief The possible types of text boundaries.
- * @since_tizen 2.3.1
- *
- */
-typedef enum {
-       I18N_UBRK_CHARACTER = 0,         /**< Character breaks */
-       I18N_UBRK_WORD          = 1,     /**< Word breaks */
-       I18N_UBRK_LINE          = 2,     /**< Line breaks */
-       I18N_UBRK_SENTENCE      = 3,     /**< Sentence breaks */
-} i18n_ubreak_iterator_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_USET_MODULE
- * @{
- */
-
-/**
- * @brief An #i18n_uset_h handle.
- * @details Use the @c i18n_uset_* API to manipulate. Create with @c i18n_uset_create*, and destroy with i18n_uset_destroy().
- * @since_tizen 2.3.1
- */
-typedef void *i18n_uset_h;
-
-/**
- * @brief Capacity of #i18n_userialized_set_s::static_array.
- *               Enough for any single-code point set.
- * @since_tizen 2.3.1
- *
- * @see #i18n_userialized_set_s
- */
-#define I18N_USET_SERIALIZED_STATIC_ARRAY_CAPACITY 8
-
-/**
- * @brief  A serialized form of a Unicode set.
- * @since_tizen 2.3.1
- */
-typedef struct {
-       const uint16_t *array;                                                                                                            /**< The serialized Unicode Set. */
-       int32_t                 bmp_length;                                                                                                       /**< The length of the array that contains BMP characters. */
-       int32_t                 length;                                                                                                           /**< The total length of the array. */
-       uint16_t                static_array[I18N_USET_SERIALIZED_STATIC_ARRAY_CAPACITY];         /**< A small buffer for the array to reduce memory allocations. */
-} i18n_userialized_set_s;
-
-
-/**
- * @brief Enumeration for span conditions.
- * @since_tizen 2.3.1
- *
- * @see i18n_uset_span()
- * @see i18n_uset_span_back()
- * @see i18n_uset_span_utf8()
- * @see i18n_uset_span_back_utf8()
- */
-typedef enum {
-       I18N_USET_SPAN_NOT_CONTAINED = 0,       /**< Continue a span() while there is no set element at the current position.
-                                                                                        Stops before the first set element (character or string).
-                                                                                        (For code points only, this is like while contains(current)==false).
-
-                                                                                        When span() returns, the substring between where it started and the position
-                                                                                        it returned consists only of characters that are not in the set,
-                                                                                        and none of its strings overlap with the span. */
-       I18N_USET_SPAN_CONTAINED = 1,           /**< Continue a span() while there is a set element at the current position.
-                                                                                        (For characters only, this is like while contains(current)==true).
-
-                                                                                        When span() returns, the substring between where it started and the position
-                                                                                        it returned consists only of set elements (characters or strings) that are in the set.
-
-                                                                                        If a set contains strings, then the span will be the longest substring
-                                                                                        matching any of the possible concatenations of set elements (characters or strings).
-                                                                                        (There must be a single, non-overlapping concatenation of characters or strings.)
-                                                                                        This is equivalent to a POSIX regular expression for (OR of each set element). */
-       I18N_USET_SPAN_SIMPLE = 2,                      /**< Continue a span() while there is a set element at the current position.
-                                                                                        (For characters only, this is like while contains(current)==true).
-
-                                                                                        When span() returns, the substring between where it started and the position
-                                                                                        it returned consists only of set elements (characters or strings) that are in the set.
-
-                                                                                        If a set only contains single characters, then this is the same
-                                                                                        as #I18N_USET_SPAN_CONTAINED.
-
-                                                                                        If a set contains strings, then the span will be the longest substring
-                                                                                        with a match at each position with the longest single set element (character or string). */
-       I18N_USET_SPAN_CONDITION_COUNT          /**< One more than the last span condition.      */
-} i18n_uset_span_condition_e;
-
-
-/**
- * @brief Enumeration for bitmask values to be passed to i18n_uset_pattern_options_create() or i18n_uset_apply_pattern() taking an option parameter.
- * @since_tizen 2.3.1
- */
-enum {
-       I18N_USET_IGNORE_SPACE = 1,                     /**< Ignore white space within patterns unless quoted or escaped. */
-       I18N_USET_CASE_INSENSITIVE = 2,         /**< Enable case insensitive matching.
-                                                                                        E.g., "[ab]" with this flag will match 'a', 'A', 'b', and 'B'.
-                                                                                        "[^ab]" with this flag will match all except 'a', 'A', 'b', and 'B'.
-                                                                                        This performs a full closure over case mappings, e.g. U+017F for s.
-
-                                                                                        The resulting set is a superset of the input for the code points but not for the strings.
-                                                                                        It performs a case mapping closure of the code points and adds full case folding strings for the code points,
-                                                                                        and reduces strings of the original set to their full case folding equivalents.
-
-                                                                                        This is designed for case-insensitive matches, for example in regular expressions.
-                                                                                        The full code point case closure allows checking of an input character directly against the closure set.
-                                                                                        Strings are matched by comparing the case-folded form from the closure
-                                                                                        set with an incremental case folding of the string in question.
-
-                                                                                        The closure set will also contain single code points if the original
-                                                                                        set contained case-equivalent strings (like U+00DF for "ss" or "Ss" etc.).
-                                                                                        This is not necessary (that is, redundant) for the above matching method
-                                                                                        but results in the same closure sets regardless of whether the original
-                                                                                        set contained the code point or a string. */
-
-       I18N_USET_ADD_CASE_MAPPINGS = 4         /**< Enable case insensitive matching.
-                                                                                        E.g., "[ab]" with this flag will match 'a', 'A', 'b', and 'B'.
-                                                                                        "[^ab]" with this flag will match all except 'a', 'A', 'b', and 'B'.
-                                                                                        This adds the lower-, title-, and uppercase mappings as well as the case folding of each existing element in the set. */
-};
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE
- * @{
- */
-
-/**
- * @brief Structure representing an enumeration.
- * @details For usage in C programs.
- * @since_tizen 2.3.1
- */
-typedef void *i18n_uenumeration_h;
-
-/**
- * @}
- */
-
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCHAR_MODULE
- * @{
- */
-
-/**
- * @brief Constants for ISO 15924 script codes.
- * @since_tizen 3.0
- */
-typedef enum {
-       I18N_USCRIPT_INVALID_CODE = -1,
-       I18N_USCRIPT_COMMON               =      0,      /**< Zyyy */
-       I18N_USCRIPT_INHERITED    =      1,      /**< Zinh, "Code for inherited script", for non-spacing combining marks; also Qaai */
-       I18N_USCRIPT_ARABIC               =      2,      /**< Arab */
-       I18N_USCRIPT_ARMENIAN     =      3,      /**< Armn */
-       I18N_USCRIPT_BENGALI      =      4,      /**< Beng */
-       I18N_USCRIPT_BOPOMOFO     =      5,      /**< Bopo */
-       I18N_USCRIPT_CHEROKEE     =      6,      /**< Cher */
-       I18N_USCRIPT_COPTIC               =      7,      /**< Copt */
-       I18N_USCRIPT_CYRILLIC     =      8,      /**< Cyrl */
-       I18N_USCRIPT_DESERET      =      9,      /**< Dsrt */
-       I18N_USCRIPT_DEVANAGARI   = 10,  /**< Deva */
-       I18N_USCRIPT_ETHIOPIC     = 11,  /**< Ethi */
-       I18N_USCRIPT_GEORGIAN     = 12,  /**< Geor */
-       I18N_USCRIPT_GOTHIC               = 13,  /**< Goth */
-       I18N_USCRIPT_GREEK                = 14,  /**< Grek */
-       I18N_USCRIPT_GUJARATI     = 15,  /**< Gujr */
-       I18N_USCRIPT_GURMUKHI     = 16,  /**< Guru */
-       I18N_USCRIPT_HAN                  = 17,  /**< Hani */
-       I18N_USCRIPT_HANGUL               = 18,  /**< Hang */
-       I18N_USCRIPT_HEBREW               = 19,  /**< Hebr */
-       I18N_USCRIPT_HIRAGANA     = 20,  /**< Hira */
-       I18N_USCRIPT_KANNADA      = 21,  /**< Knda */
-       I18N_USCRIPT_KATAKANA     = 22,  /**< Kana */
-       I18N_USCRIPT_KHMER                = 23,  /**< Khmr */
-       I18N_USCRIPT_LAO                  = 24,  /**< Laoo */
-       I18N_USCRIPT_LATIN                = 25,  /**< Latn */
-       I18N_USCRIPT_MALAYALAM    = 26,  /**< Mlym */
-       I18N_USCRIPT_MONGOLIAN    = 27,  /**< Mong */
-       I18N_USCRIPT_MYANMAR      = 28,  /**< Mymr */
-       I18N_USCRIPT_OGHAM                = 29,  /**< Ogam */
-       I18N_USCRIPT_OLD_ITALIC   = 30,  /**< Ital */
-       I18N_USCRIPT_ORIYA                = 31,  /**< Orya */
-       I18N_USCRIPT_RUNIC                = 32,  /**< Runr */
-       I18N_USCRIPT_SINHALA      = 33,  /**< Sinh */
-       I18N_USCRIPT_SYRIAC               = 34,  /**< Syrc */
-       I18N_USCRIPT_TAMIL                = 35,  /**< Taml */
-       I18N_USCRIPT_TELUGU               = 36,  /**< Telu */
-       I18N_USCRIPT_THAANA               = 37,  /**< Thaa */
-       I18N_USCRIPT_THAI                 = 38,  /**< Thai */
-       I18N_USCRIPT_TIBETAN      = 39,  /**< Tibt */
-       I18N_USCRIPT_CANADIAN_ABORIGINAL = 40,  /**< Cans, Canadian_Aboriginal script. */
-       I18N_USCRIPT_UCAS                 = I18N_USCRIPT_CANADIAN_ABORIGINAL, /**< Canadian_Aboriginal script (alias). */
-       I18N_USCRIPT_YI                   = 41,  /**< Yiii */
-       I18N_USCRIPT_TAGALOG      = 42,  /**< Tglg */
-       I18N_USCRIPT_HANUNOO      = 43,  /**< Hano */
-       I18N_USCRIPT_BUHID                = 44,  /**< Buhd */
-       I18N_USCRIPT_TAGBANWA     = 45,  /**< Tagb */
-       I18N_USCRIPT_BRAILLE      = 46,  /**< Brai */
-       I18N_USCRIPT_CYPRIOT      = 47,  /**< Cprt */
-       I18N_USCRIPT_LIMBU                = 48,  /**< Limb */
-       I18N_USCRIPT_LINEAR_B     = 49,  /**< Linb */
-       I18N_USCRIPT_OSMANYA      = 50,  /**< Osma */
-       I18N_USCRIPT_SHAVIAN      = 51,  /**< Shaw */
-       I18N_USCRIPT_TAI_LE               = 52,  /**< Tale */
-       I18N_USCRIPT_UGARITIC     = 53,  /**< Ugar */
-       I18N_USCRIPT_KATAKANA_OR_HIRAGANA = 54,/**<Hrkt */
-       I18N_USCRIPT_BUGINESE      = 55, /**< Bugi */
-       I18N_USCRIPT_GLAGOLITIC    = 56, /**< Glag */
-       I18N_USCRIPT_KHAROSHTHI    = 57, /**< Khar */
-       I18N_USCRIPT_SYLOTI_NAGRI  = 58, /**< Sylo */
-       I18N_USCRIPT_NEW_TAI_LUE   = 59, /**< Talu */
-       I18N_USCRIPT_TIFINAGH      = 60, /**< Tfng */
-       I18N_USCRIPT_OLD_PERSIAN   = 61, /**< Xpeo */
-       I18N_USCRIPT_BALINESE                                      = 62, /**< Bali */
-       I18N_USCRIPT_BATAK                                                 = 63, /**< Batk */
-       I18N_USCRIPT_BLISSYMBOLS                                   = 64, /**< Blis */
-       I18N_USCRIPT_BRAHMI                                                = 65, /**< Brah */
-       I18N_USCRIPT_CHAM                                                  = 66, /**< Cham */
-       I18N_USCRIPT_CIRTH                                                 = 67, /**< Cirt */
-       I18N_USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC  = 68, /**< Cyrs */
-       I18N_USCRIPT_DEMOTIC_EGYPTIAN                      = 69, /**< Egyd */
-       I18N_USCRIPT_HIERATIC_EGYPTIAN                     = 70, /**< Egyh */
-       I18N_USCRIPT_EGYPTIAN_HIEROGLYPHS                  = 71, /**< Egyp */
-       I18N_USCRIPT_KHUTSURI                                      = 72, /**< Geok */
-       I18N_USCRIPT_SIMPLIFIED_HAN                                = 73, /**< Hans */
-       I18N_USCRIPT_TRADITIONAL_HAN                       = 74, /**< Hant */
-       I18N_USCRIPT_PAHAWH_HMONG                                  = 75, /**< Hmng */
-       I18N_USCRIPT_OLD_HUNGARIAN                                 = 76, /**< Hung */
-       I18N_USCRIPT_HARAPPAN_INDUS                                = 77, /**< Inds */
-       I18N_USCRIPT_JAVANESE                                      = 78, /**< Java */
-       I18N_USCRIPT_KAYAH_LI                                      = 79, /**< Kali */
-       I18N_USCRIPT_LATIN_FRAKTUR                                 = 80, /**< Latf */
-       I18N_USCRIPT_LATIN_GAELIC                                  = 81, /**< Latg */
-       I18N_USCRIPT_LEPCHA                                                = 82, /**< Lepc */
-       I18N_USCRIPT_LINEAR_A                                      = 83, /**< Lina */
-       I18N_USCRIPT_MANDAIC                                       = 84, /**< Mand */
-       I18N_USCRIPT_MANDAEAN                                      = I18N_USCRIPT_MANDAIC,
-       I18N_USCRIPT_MAYAN_HIEROGLYPHS                     = 85, /**< Maya */
-       I18N_USCRIPT_MEROITIC_HIEROGLYPHS                  = 86, /**< Mero */
-       I18N_USCRIPT_MEROITIC                                      = I18N_USCRIPT_MEROITIC_HIEROGLYPHS,
-       I18N_USCRIPT_NKO                                                   = 87, /**< Nkoo */
-       I18N_USCRIPT_ORKHON                                                = 88, /**< Orkh */
-       I18N_USCRIPT_OLD_PERMIC                                    = 89, /**< Perm */
-       I18N_USCRIPT_PHAGS_PA                                      = 90, /**< Phag */
-       I18N_USCRIPT_PHOENICIAN                                    = 91, /**< Phnx */
-       I18N_USCRIPT_PHONETIC_POLLARD                      = 92, /**< Plrd */
-       I18N_USCRIPT_RONGORONGO                                    = 93, /**< Roro */
-       I18N_USCRIPT_SARATI                                                = 94, /**< Sara */
-       I18N_USCRIPT_ESTRANGELO_SYRIAC                     = 95, /**< Syre */
-       I18N_USCRIPT_WESTERN_SYRIAC                                = 96, /**< Syrj */
-       I18N_USCRIPT_EASTERN_SYRIAC                                = 97, /**< Syrn */
-       I18N_USCRIPT_TENGWAR                                       = 98, /**< Teng */
-       I18N_USCRIPT_VAI                                                   = 99, /**< Vaii */
-       I18N_USCRIPT_VISIBLE_SPEECH                                = 100,/**< Visp */
-       I18N_USCRIPT_CUNEIFORM                                     = 101,/**< Xsux */
-       I18N_USCRIPT_UNWRITTEN_LANGUAGES                   = 102,/**< Zxxx */
-       I18N_USCRIPT_UNKNOWN                                       = 103,/**< Zzzz, Unknown="Code for uncoded script", for unassigned code points */
-       I18N_USCRIPT_CARIAN                                                = 104,/**< Cari */
-       I18N_USCRIPT_JAPANESE                                      = 105,/**< Jpan */
-       I18N_USCRIPT_LANNA                                                 = 106,/**< Lana */
-       I18N_USCRIPT_LYCIAN                                                = 107,/**< Lyci */
-       I18N_USCRIPT_LYDIAN                                                = 108,/**< Lydi */
-       I18N_USCRIPT_OL_CHIKI                                      = 109,/**< Olck */
-       I18N_USCRIPT_REJANG                                                = 110,/**< Rjng */
-       I18N_USCRIPT_SAURASHTRA                                    = 111,/**< Saur */
-       I18N_USCRIPT_SIGN_WRITING                                  = 112,/**< Sgnw */
-       I18N_USCRIPT_SUNDANESE                                     = 113,/**< Sund */
-       I18N_USCRIPT_MOON                                                  = 114,/**< Moon */
-       I18N_USCRIPT_MEITEI_MAYEK                                  = 115,/**< Mtei */
-       I18N_USCRIPT_IMPERIAL_ARAMAIC                      = 116,/**< Armi */
-       I18N_USCRIPT_AVESTAN                                       = 117,/**< Avst */
-       I18N_USCRIPT_CHAKMA                                                = 118,/**< Cakm */
-       I18N_USCRIPT_KOREAN                                                = 119,/**< Kore */
-       I18N_USCRIPT_KAITHI                                                = 120,/**< Kthi */
-       I18N_USCRIPT_MANICHAEAN                                    = 121,/**< Mani */
-       I18N_USCRIPT_INSCRIPTIONAL_PAHLAVI                 = 122,/**< Phli */
-       I18N_USCRIPT_PSALTER_PAHLAVI                       = 123,/**< Phlp */
-       I18N_USCRIPT_BOOK_PAHLAVI                                  = 124,/**< Phlv */
-       I18N_USCRIPT_INSCRIPTIONAL_PARTHIAN                = 125,/**< Prti */
-       I18N_USCRIPT_SAMARITAN                                     = 126,/**< Samr */
-       I18N_USCRIPT_TAI_VIET                                      = 127,/**< Tavt */
-       I18N_USCRIPT_MATHEMATICAL_NOTATION                 = 128,/**< Zmth */
-       I18N_USCRIPT_SYMBOLS                                       = 129,/**< Zsym */
-       I18N_USCRIPT_BAMUM                                                 = 130,/**< Bamu */
-       I18N_USCRIPT_LISU                                                  = 131,/**< Lisu */
-       I18N_USCRIPT_NAKHI_GEBA                                    = 132,/**< Nkgb */
-       I18N_USCRIPT_OLD_SOUTH_ARABIAN                     = 133,/**< Sarb */
-       I18N_USCRIPT_BASSA_VAH                                     = 134,/**< Bass */
-       I18N_USCRIPT_DUPLOYAN_SHORTAND                     = 135,/**< Dupl */
-       I18N_USCRIPT_ELBASAN                                       = 136,/**< Elba */
-       I18N_USCRIPT_GRANTHA                                       = 137,/**< Gran */
-       I18N_USCRIPT_KPELLE                                                = 138,/**< Kpel */
-       I18N_USCRIPT_LOMA                                                  = 139,/**< Loma */
-       I18N_USCRIPT_MENDE                                                 = 140,/**< Mend */
-       I18N_USCRIPT_MEROITIC_CURSIVE                      = 141,/**< Merc */
-       I18N_USCRIPT_OLD_NORTH_ARABIAN                     = 142,/**< Narb */
-       I18N_USCRIPT_NABATAEAN                                     = 143,/**< Nbat */
-       I18N_USCRIPT_PALMYRENE                                     = 144,/**< Palm */
-       I18N_USCRIPT_SINDHI                                                = 145,/**< Sind */
-       I18N_USCRIPT_WARANG_CITI                                   = 146,/**< Wara */
-       I18N_USCRIPT_AFAKA                                                 = 147,/**< Afak */
-       I18N_USCRIPT_JURCHEN                                       = 148,/**< Jurc */
-       I18N_USCRIPT_MRO                                                   = 149,/**< Mroo */
-       I18N_USCRIPT_NUSHU                                                 = 150,/**< Nshu */
-       I18N_USCRIPT_SHARADA                                       = 151,/**< Shrd */
-       I18N_USCRIPT_SORA_SOMPENG                                  = 152,/**< Sora */
-       I18N_USCRIPT_TAKRI                                                 = 153,/**< Takr */
-       I18N_USCRIPT_TANGUT                                                = 154,/**< Tang */
-       I18N_USCRIPT_WOLEAI                                                = 155,/**< Wole */
-       I18N_USCRIPT_ANATOLIAN_HIEROGLYPHS                 = 156,/**< Hluw */
-       I18N_USCRIPT_KHOJKI                                                = 157,/**< Khoj */
-       I18N_USCRIPT_TIRHUTA                                       = 158,/**< Tirh */
-       I18N_USCRIPT_CODE_LIMIT                                    = 159 /**< Count of i18n_uscript_code_e enumerators*/
-} i18n_uscript_code_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FORMAT_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object of base class for all formats.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_format_h;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object that represents a formatter for measure objects.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_measure_format_h;
-
-/**
- * @brief Enumeration for various widths.
- * @since_tizen 2.3.2
- */
-typedef enum {
-    I18N_UMEASFMT_WIDTH_WIDE = 0,     /**< Spell out measure units */
-    I18N_UMEASFMT_WIDTH_SHORT = 1,    /**< Abbreviate measure units */
-    I18N_UMEASFMT_WIDTH_NARROW = 2,   /**< Use symbols for measure units when possible */
-    I18N_UMEASFMT_WIDTH_NUMERIC = 3,  /**< Completely omit measure units when possible
-                                      For example, format '5 hours, 37 minutes' as '5:37' */
-    I18N_UMEASFMT_WIDTH_COUNT = 4,    /**< Count of values in this enumeration */
-} i18n_umeasure_format_width_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object of class used for formatting #i18n_format_h and its subclasses.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_formattable_h;
-
-/**
- * @brief Enumeration for the flavor of data type contained within an #i18n_formattable_h object.
- * @since_tizen 2.3.2
- */
-typedef enum {
-    I18N_FORMATTABLE_TYPE_DATE = 0,    /**< Selector indicating an #i18n_udate value */
-    I18N_FORMATTABLE_TYPE_DOUBLE = 1,  /**< Selector indicating a double value */
-    I18N_FORMATTABLE_TYPE_LONG = 2,    /**< Selector indicating a 32-bit integer value */
-    I18N_FORMATTABLE_TYPE_STRING = 3,  /**< Selector indicating a string value */
-    I18N_FORMATTABLE_TYPE_ARRAY = 4,   /**< Selector indicating an array of #i18n_formattable_h */
-    I18N_FORMATTABLE_TYPE_INT64 = 5,   /**< Selector indicating a 64-bit integer value */
-    I18N_FORMATTABLE_TYPE_OBJECT = 6,  /**< Selector indicating a generic object value.
-                                            In the current version of the API, such objects
-                                            are not supported and cannot be used. This value
-                                            was added for completeness and possible future extensions. */
-} i18n_formattable_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object that represents an amount of a specified unit.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_measure_h;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object that represents a unit such as length, mass, volume, currency, etc.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_measure_unit_h;
-
-/**
- * @brief Callback function for the i18n_measure_unit_get_available_types()
- *        that returns an enumeration over all recognized types.
- * @since_tizen 2.3.2
- *
- * @param[in] type_id    The type ID
- * @param[in] user_data  The user data passed to the callback function
- *
- * @return @c true to continue with the next iteration of the loop,
- *         otherwise @c false to break out of the loop.
- */
-typedef bool (*i18n_measure_unit_types_cb)(const char *type_id, void *user_data);
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE
- * @{
- */
-
-/**
- * @brief The Alphabetic index handle.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_alpha_idx_h;
-
-/**
- * @brief Enumeration for alphabetic index label types.
- * @since_tizen 2.3.2
- *
- * @see i18n_alpha_idx_get_bucket_label_type()
- */
-typedef enum {
-       /**
-        * Normal Label, typically the starting letter of the names in the bucket with this label.
-        */
-       I18N_ALPHA_IDX_NORMAL,
-
-       /**
-        * Underflow Label.
-        *
-        * The bucket with this label contains names in scripts that sort before any
-        * of the bucket labels in this index.
-        */
-       I18N_ALPHA_IDX_UNDERFLOW,
-
-       /**
-        * Inflow Label.
-        *
-        * The bucket with this label contains names in scripts that sort between
-        * two of the bucket labels in this index. Inflow labels are created when
-        * an index contains normal labels for multiple scripts, and skips other
-        * scripts that sort between some of the included scripts.
-        */
-       I18N_ALPHA_IDX_INFLOW,
-
-       /**
-        * Overflow Label.
-        *
-        * The bucket with this label contains names in scripts that sort after
-        * all of the bucket labels in this index.
-        */
-       I18N_ALPHA_IDX_OVERFLOW,
-} i18n_alpha_idx_label_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object of class used by the #i18n_format_h and its subclasses to identify fields in a formatted output.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_field_position_h;
-
-/**
- * @brief DONT_CARE may be specified as the field to indicate that the caller doesn't need to specify a field.
- * @since_tizen 2.3.2
- */
-typedef enum {
-    I18N_FIELD_POSITION_DONT_CARE = -1,
-} i18n_field_position_dont_care_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object used by the Format and its subtypes to keep track of the current position during parsing.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_parse_position_h;
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif   /* __UTILS_I18N_TYPES_H__*/