Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1267)

Unified Diff: public/i18n/unicode/unum.h

Issue 19417002: Move ICU header part 2 (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/icu46/
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « public/i18n/unicode/unirepl.h ('k') | public/i18n/unicode/uregex.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: public/i18n/unicode/unum.h
===================================================================
--- public/i18n/unicode/unum.h (revision 211843)
+++ public/i18n/unicode/unum.h (working copy)
@@ -1,999 +0,0 @@
-/*
-*******************************************************************************
-* Copyright (C) 1997-2010, International Business Machines Corporation and others.
-* All Rights Reserved.
-* Modification History:
-*
-* Date Name Description
-* 06/24/99 helena Integrated Alan's NF enhancements and Java2 bug fixes
-*******************************************************************************
-*/
-
-#ifndef _UNUM
-#define _UNUM
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/localpointer.h"
-#include "unicode/uloc.h"
-#include "unicode/umisc.h"
-#include "unicode/parseerr.h"
-/**
- * \file
- * \brief C API: NumberFormat
- *
- * <h2> Number Format C API </h2>
- *
- * Number Format C API Provides functions for
- * formatting and parsing a number. Also provides methods for
- * determining which locales have number formats, and what their names
- * are.
- * <P>
- * UNumberFormat helps you to 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.
- * <P>
- * To format a number for the current Locale, use one of the static
- * factory methods:
- * <pre>
- * \code
- * UChar myString[20];
- * double myNumber = 7.0;
- * UErrorCode status = U_ZERO_ERROR;
- * UNumberFormat* nf = unum_open(UNUM_DEFAULT, NULL, -1, NULL, NULL, &status);
- * unum_formatDouble(nf, myNumber, myString, 20, NULL, &status);
- * printf(" Example 1: %s\n", austrdup(myString) ); //austrdup( a function used to convert UChar* to char*)
- * \endcode
- * </pre>
- * If you are formatting multiple numbers, it is more efficient to get
- * the format and use it multiple times so that the system doesn't
- * have to fetch the information about the local language and country
- * conventions multiple times.
- * <pre>
- * \code
- * uint32_t i, resultlength, reslenneeded;
- * UErrorCode status = U_ZERO_ERROR;
- * UFieldPosition pos;
- * uint32_t a[] = { 123, 3333, -1234567 };
- * const uint32_t a_len = sizeof(a) / sizeof(a[0]);
- * UNumberFormat* nf;
- * UChar* result = NULL;
- *
- * nf = unum_open(UNUM_DEFAULT, NULL, -1, NULL, NULL, &status);
- * for (i = 0; i < a_len; i++) {
- * resultlength=0;
- * reslenneeded=unum_format(nf, a[i], NULL, resultlength, &pos, &status);
- * result = NULL;
- * if(status==U_BUFFER_OVERFLOW_ERROR){
- * status=U_ZERO_ERROR;
- * resultlength=reslenneeded+1;
- * result=(UChar*)malloc(sizeof(UChar) * resultlength);
- * unum_format(nf, a[i], result, resultlength, &pos, &status);
- * }
- * printf( " Example 2: %s\n", austrdup(result));
- * free(result);
- * }
- * \endcode
- * </pre>
- * To format a number for a different Locale, specify it in the
- * call to unum_open().
- * <pre>
- * \code
- * UNumberFormat* nf = unum_open(UNUM_DEFAULT, NULL, -1, "fr_FR", NULL, &success)
- * \endcode
- * </pre>
- * You can use a NumberFormat API unum_parse() to parse.
- * <pre>
- * \code
- * UErrorCode status = U_ZERO_ERROR;
- * int32_t pos=0;
- * int32_t num;
- * num = unum_parse(nf, str, u_strlen(str), &pos, &status);
- * \endcode
- * </pre>
- * Use UNUM_DECIMAL to get the normal number format for that country.
- * There are other static options available. Use UNUM_CURRENCY
- * to get the currency number format for that country. Use UNUM_PERCENT
- * to get a format for displaying percentages. With this format, a
- * fraction from 0.53 is displayed as 53%.
- * <P>
- * Use a pattern to create either a DecimalFormat or a RuleBasedNumberFormat
- * formatter. The pattern must conform to the syntax defined for those
- * formatters.
- * <P>
- * You can also control the display of numbers with such function as
- * unum_getAttribues() and unum_setAtributes(), which let you set the
- * miminum fraction digits, grouping, etc.
- * @see UNumberFormatAttributes for more details
- * <P>
- * You can also use forms of the parse and format methods with
- * ParsePosition and UFieldPosition to allow you to:
- * <ul type=round>
- * <li>(a) progressively parse through pieces of a string.
- * <li>(b) align the decimal point and other areas.
- * </ul>
- * <p>
- * It is also possible to change or set the symbols used for a particular
- * locale like the currency symbol, the grouping seperator , monetary seperator
- * etc by making use of functions unum_setSymbols() and unum_getSymbols().
- */
-
-/** A number formatter.
- * For usage in C programs.
- * @stable ICU 2.0
- */
-typedef void* UNumberFormat;
-
-/** The possible number format styles.
- * @stable ICU 2.0
- */
-typedef enum UNumberFormatStyle {
- /**
- * Decimal format defined by pattern
- * @stable ICU 3.0
- */
- UNUM_PATTERN_DECIMAL=0,
- /** Decimal format */
- UNUM_DECIMAL=1,
- /** Currency format */
- UNUM_CURRENCY,
- /** Percent format */
- UNUM_PERCENT,
- /** Scientific format */
- UNUM_SCIENTIFIC,
- /** Spellout rule-based format */
- UNUM_SPELLOUT,
- /**
- * Ordinal rule-based format
- * @stable ICU 3.0
- */
- UNUM_ORDINAL,
- /**
- * Duration rule-based format
- * @stable ICU 3.0
- */
- UNUM_DURATION,
- /**
- * Numbering system rule-based format
- * @stable ICU 4.2
- */
- UNUM_NUMBERING_SYSTEM,
- /**
- * Rule-based format defined by pattern
- * @stable ICU 3.0
- */
- UNUM_PATTERN_RULEBASED,
- /** Default format */
- UNUM_DEFAULT = UNUM_DECIMAL,
- /** (Alias for UNUM_PATTERN_DECIMAL) */
- UNUM_IGNORE = UNUM_PATTERN_DECIMAL
-} UNumberFormatStyle;
-
-/** The possible number format rounding modes.
- * @stable ICU 2.0
- */
-typedef enum UNumberFormatRoundingMode {
- UNUM_ROUND_CEILING,
- UNUM_ROUND_FLOOR,
- UNUM_ROUND_DOWN,
- UNUM_ROUND_UP,
- /**
- * Half-even rounding, misspelled name
- * @deprecated, ICU 3.8
- */
- UNUM_FOUND_HALFEVEN,
- UNUM_ROUND_HALFDOWN,
- UNUM_ROUND_HALFUP,
- /**
- * Half-even rounding
- * @stable, ICU 3.8
- */
- UNUM_ROUND_HALFEVEN = UNUM_FOUND_HALFEVEN
-} UNumberFormatRoundingMode;
-
-/** The possible number format pad positions.
- * @stable ICU 2.0
- */
-typedef enum UNumberFormatPadPosition {
- UNUM_PAD_BEFORE_PREFIX,
- UNUM_PAD_AFTER_PREFIX,
- UNUM_PAD_BEFORE_SUFFIX,
- UNUM_PAD_AFTER_SUFFIX
-} UNumberFormatPadPosition;
-
-/**
- * Create and return a new UNumberFormat for formatting and parsing
- * numbers. A UNumberFormat may be used to format numbers by calling
- * {@link #unum_format }, and to parse numbers by calling {@link #unum_parse }.
- * The caller must call {@link #unum_close } when done to release resources
- * used by this object.
- * @param style The type of number format to open: one of
- * UNUM_DECIMAL, UNUM_CURRENCY, UNUM_PERCENT, UNUM_SCIENTIFIC, UNUM_SPELLOUT,
- * UNUM_PATTERN_DECIMAL, UNUM_PATTERN_RULEBASED, or UNUM_DEFAULT.
- * If UNUM_PATTERN_DECIMAL or UNUM_PATTERN_RULEBASED is passed then the
- * number format is opened using the given pattern, which must conform
- * to the syntax described in DecimalFormat or RuleBasedNumberFormat,
- * respectively.
- * @param pattern A pattern specifying the format to use.
- * This parameter is ignored unless the style is
- * UNUM_PATTERN_DECIMAL or UNUM_PATTERN_RULEBASED.
- * @param patternLength The number of characters in the pattern, or -1
- * if null-terminated. This parameter is ignored unless the style is
- * UNUM_PATTERN.
- * @param locale A locale identifier to use to determine formatting
- * and parsing conventions, or NULL to use the default locale.
- * @param parseErr A pointer to a UParseError struct to receive the
- * details of any parsing errors, or NULL if no parsing error details
- * are desired.
- * @param status A pointer to an input-output UErrorCode.
- * @return A pointer to a newly created UNumberFormat, or NULL if an
- * error occurred.
- * @see unum_close
- * @see DecimalFormat
- * @stable ICU 2.0
- */
-U_STABLE UNumberFormat* U_EXPORT2
-unum_open( UNumberFormatStyle style,
- const UChar* pattern,
- int32_t patternLength,
- const char* locale,
- UParseError* parseErr,
- UErrorCode* status);
-
-
-/**
-* Close a UNumberFormat.
-* Once closed, a UNumberFormat may no longer be used.
-* @param fmt The formatter to close.
-* @stable ICU 2.0
-*/
-U_STABLE void U_EXPORT2
-unum_close(UNumberFormat* fmt);
-
-#if U_SHOW_CPLUSPLUS_API
-
-U_NAMESPACE_BEGIN
-
-/**
- * \class LocalUNumberFormatPointer
- * "Smart pointer" class, closes a UNumberFormat via unum_close().
- * For most methods see the LocalPointerBase base class.
- *
- * @see LocalPointerBase
- * @see LocalPointer
- * @stable ICU 4.4
- */
-U_DEFINE_LOCAL_OPEN_POINTER(LocalUNumberFormatPointer, UNumberFormat, unum_close);
-
-U_NAMESPACE_END
-
-#endif
-
-/**
- * Open a copy of a UNumberFormat.
- * This function performs a deep copy.
- * @param fmt The format to copy
- * @param status A pointer to an UErrorCode to receive any errors.
- * @return A pointer to a UNumberFormat identical to fmt.
- * @stable ICU 2.0
- */
-U_STABLE UNumberFormat* U_EXPORT2
-unum_clone(const UNumberFormat *fmt,
- UErrorCode *status);
-
-/**
-* Format an integer using a UNumberFormat.
-* The integer will be formatted according to the UNumberFormat's locale.
-* @param fmt The formatter to use.
-* @param number The number to format.
-* @param result A pointer to a buffer to receive the formatted number.
-* @param resultLength The maximum size of result.
-* @param pos A pointer to a UFieldPosition. 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 status A pointer to an UErrorCode to receive any errors
-* @return The total buffer size needed; if greater than resultLength, the output was truncated.
-* @see unum_formatInt64
-* @see unum_formatDouble
-* @see unum_parse
-* @see unum_parseInt64
-* @see unum_parseDouble
-* @see UFieldPosition
-* @stable ICU 2.0
-*/
-U_STABLE int32_t U_EXPORT2
-unum_format( const UNumberFormat* fmt,
- int32_t number,
- UChar* result,
- int32_t resultLength,
- UFieldPosition *pos,
- UErrorCode* status);
-
-/**
-* Format an int64 using a UNumberFormat.
-* The int64 will be formatted according to the UNumberFormat's locale.
-* @param fmt The formatter to use.
-* @param number The number to format.
-* @param result A pointer to a buffer to receive the formatted number.
-* @param resultLength The maximum size of result.
-* @param pos A pointer to a UFieldPosition. 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 status A pointer to an UErrorCode to receive any errors
-* @return The total buffer size needed; if greater than resultLength, the output was truncated.
-* @see unum_format
-* @see unum_formatDouble
-* @see unum_parse
-* @see unum_parseInt64
-* @see unum_parseDouble
-* @see UFieldPosition
-* @stable ICU 2.0
-*/
-U_STABLE int32_t U_EXPORT2
-unum_formatInt64(const UNumberFormat *fmt,
- int64_t number,
- UChar* result,
- int32_t resultLength,
- UFieldPosition *pos,
- UErrorCode* status);
-
-/**
-* Format a double using a UNumberFormat.
-* The double will be formatted according to the UNumberFormat's locale.
-* @param fmt The formatter to use.
-* @param number The number to format.
-* @param result A pointer to a buffer to receive the formatted number.
-* @param resultLength The maximum size of result.
-* @param pos A pointer to a UFieldPosition. 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 status A pointer to an UErrorCode to receive any errors
-* @return The total buffer size needed; if greater than resultLength, the output was truncated.
-* @see unum_format
-* @see unum_formatInt64
-* @see unum_parse
-* @see unum_parseInt64
-* @see unum_parseDouble
-* @see UFieldPosition
-* @stable ICU 2.0
-*/
-U_STABLE int32_t U_EXPORT2
-unum_formatDouble( const UNumberFormat* fmt,
- double number,
- UChar* result,
- int32_t resultLength,
- UFieldPosition *pos, /* 0 if ignore */
- UErrorCode* status);
-
-/**
-* Format a decimal number using a UNumberFormat.
-* The number will be formatted according to the UNumberFormat'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
-* @param fmt The formatter to use.
-* @param number The number to format.
-* @param length The length of the input number, or -1 if the input is nul-terminated.
-* @param result A pointer to a buffer to receive the formatted number.
-* @param resultLength The maximum size of result.
-* @param pos A pointer to a UFieldPosition. 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.
-* @param status A pointer to an UErrorCode to receive any errors
-* @return The total buffer size needed; if greater than resultLength, the output was truncated.
-* @see unum_format
-* @see unum_formatInt64
-* @see unum_parse
-* @see unum_parseInt64
-* @see unum_parseDouble
-* @see UFieldPosition
-* @stable ICU 4.4
-*/
-U_STABLE int32_t U_EXPORT2
-unum_formatDecimal( const UNumberFormat* fmt,
- const char * number,
- int32_t length,
- UChar* result,
- int32_t resultLength,
- UFieldPosition *pos, /* 0 if ignore */
- UErrorCode* status);
-
-/**
- * Format a double currency amount using a UNumberFormat.
- * The double will be formatted according to the UNumberFormat's locale.
- * @param fmt the formatter to use
- * @param number the number to format
- * @param currency the 3-letter null-terminated ISO 4217 currency code
- * @param result a pointer to the buffer to receive the formatted number
- * @param resultLength the maximum number of UChars to write to result
- * @param pos a pointer to a UFieldPosition. 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.
- * @param status a pointer to an input-output UErrorCode
- * @return the total buffer size needed; if greater than resultLength,
- * the output was truncated.
- * @see unum_formatDouble
- * @see unum_parseDoubleCurrency
- * @see UFieldPosition
- * @stable ICU 3.0
- */
-U_STABLE int32_t U_EXPORT2
-unum_formatDoubleCurrency(const UNumberFormat* fmt,
- double number,
- UChar* currency,
- UChar* result,
- int32_t resultLength,
- UFieldPosition* pos, /* ignored if 0 */
- UErrorCode* status);
-
-/**
-* Parse a string into an integer using a UNumberFormat.
-* The string will be parsed according to the UNumberFormat's locale.
-* @param fmt The formatter to use.
-* @param text The text to parse.
-* @param textLength The length of text, or -1 if null-terminated.
-* @param parsePos 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 status A pointer to an UErrorCode to receive any errors
-* @return The value of the parsed integer
-* @see unum_parseInt64
-* @see unum_parseDouble
-* @see unum_format
-* @see unum_formatInt64
-* @see unum_formatDouble
-* @stable ICU 2.0
-*/
-U_STABLE int32_t U_EXPORT2
-unum_parse( const UNumberFormat* fmt,
- const UChar* text,
- int32_t textLength,
- int32_t *parsePos /* 0 = start */,
- UErrorCode *status);
-
-/**
-* Parse a string into an int64 using a UNumberFormat.
-* The string will be parsed according to the UNumberFormat's locale.
-* @param fmt The formatter to use.
-* @param text The text to parse.
-* @param textLength The length of text, or -1 if null-terminated.
-* @param parsePos 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 status A pointer to an UErrorCode to receive any errors
-* @return The value of the parsed integer
-* @see unum_parse
-* @see unum_parseDouble
-* @see unum_format
-* @see unum_formatInt64
-* @see unum_formatDouble
-* @stable ICU 2.8
-*/
-U_STABLE int64_t U_EXPORT2
-unum_parseInt64(const UNumberFormat* fmt,
- const UChar* text,
- int32_t textLength,
- int32_t *parsePos /* 0 = start */,
- UErrorCode *status);
-
-/**
-* Parse a string into a double using a UNumberFormat.
-* The string will be parsed according to the UNumberFormat's locale.
-* @param fmt The formatter to use.
-* @param text The text to parse.
-* @param textLength The length of text, or -1 if null-terminated.
-* @param parsePos 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 status A pointer to an UErrorCode to receive any errors
-* @return The value of the parsed double
-* @see unum_parse
-* @see unum_parseInt64
-* @see unum_format
-* @see unum_formatInt64
-* @see unum_formatDouble
-* @stable ICU 2.0
-*/
-U_STABLE double U_EXPORT2
-unum_parseDouble( const UNumberFormat* fmt,
- const UChar* text,
- int32_t textLength,
- int32_t *parsePos /* 0 = start */,
- UErrorCode *status);
-
-
-/**
-* Parse a number from a string into an unformatted numeric string using a UNumberFormat.
-* The input string will be parsed according to the UNumberFormat's locale.
-* The syntax of the output is a "numeric string"
-* as defined in the Decimal Arithmetic Specification, available at
-* http://speleotrove.com/decimal
-* @param fmt The formatter to use.
-* @param text The text to parse.
-* @param textLength The length of text, or -1 if null-terminated.
-* @param parsePos 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 outBuf A (char *) buffer to receive the parsed number as a string. The output string
-* will be nul-terminated if there is sufficient space.
-* @param outBufLength The size of the output buffer. May be zero, in which case
-* the outBuf pointer may be NULL, and the function will return the
-* size of the output string.
-* @param status A pointer to an UErrorCode to receive any errors
-* @return the length of the output string, not including any terminating nul.
-* @see unum_parse
-* @see unum_parseInt64
-* @see unum_format
-* @see unum_formatInt64
-* @see unum_formatDouble
-* @stable ICU 4.4
-*/
-U_STABLE int32_t U_EXPORT2
-unum_parseDecimal(const UNumberFormat* fmt,
- const UChar* text,
- int32_t textLength,
- int32_t *parsePos /* 0 = start */,
- char *outBuf,
- int32_t outBufLength,
- UErrorCode *status);
-
-/**
- * Parse a string into a double and a currency using a UNumberFormat.
- * The string will be parsed according to the UNumberFormat's locale.
- * @param fmt the formatter to use
- * @param text the text to parse
- * @param textLength the length of text, or -1 if null-terminated
- * @param parsePos a pointer to an offset index into text at which to
- * begin parsing. On output, *parsePos will point after the last
- * parsed character. This parameter may be 0, in which case parsing
- * begins at offset 0.
- * @param currency a pointer to the buffer to receive the parsed null-
- * terminated currency. This buffer must have a capacity of at least
- * 4 UChars.
- * @param status a pointer to an input-output UErrorCode
- * @return the parsed double
- * @see unum_parseDouble
- * @see unum_formatDoubleCurrency
- * @stable ICU 3.0
- */
-U_STABLE double U_EXPORT2
-unum_parseDoubleCurrency(const UNumberFormat* fmt,
- const UChar* text,
- int32_t textLength,
- int32_t* parsePos, /* 0 = start */
- UChar* currency,
- UErrorCode* status);
-
-/**
- * Set the pattern used by a UNumberFormat. This can only be used
- * on a DecimalFormat, other formats return U_ILLEGAL_ARGUMENT_ERROR
- * in the status.
- * @param format The formatter to set.
- * @param localized TRUE if the pattern is localized, FALSE otherwise.
- * @param pattern The new pattern
- * @param patternLength The length of pattern, or -1 if null-terminated.
- * @param parseError A pointer to UParseError to recieve information
- * about errors occurred during parsing, or NULL if no parse error
- * information is desired.
- * @param status A pointer to an input-output UErrorCode.
- * @see unum_toPattern
- * @see DecimalFormat
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2
-unum_applyPattern( UNumberFormat *format,
- UBool localized,
- const UChar *pattern,
- int32_t patternLength,
- UParseError *parseError,
- UErrorCode *status
- );
-
-/**
-* Get a locale for which decimal formatting patterns are available.
-* A UNumberFormat 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.
-* @param localeIndex The index of the desired locale.
-* @return A locale for which number formatting patterns are available, or 0 if none.
-* @see unum_countAvailable
-* @stable ICU 2.0
-*/
-U_STABLE const char* U_EXPORT2
-unum_getAvailable(int32_t localeIndex);
-
-/**
-* Determine how many locales have decimal formatting patterns available. 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 {@link #unum_getAvailable }.
-* @return The number of locales for which decimal formatting patterns are available.
-* @see unum_getAvailable
-* @stable ICU 2.0
-*/
-U_STABLE int32_t U_EXPORT2
-unum_countAvailable(void);
-
-/** The possible UNumberFormat numeric attributes @stable ICU 2.0 */
-typedef enum UNumberFormatAttribute {
- /** Parse integers only */
- UNUM_PARSE_INT_ONLY,
- /** Use grouping separator */
- UNUM_GROUPING_USED,
- /** Always show decimal point */
- UNUM_DECIMAL_ALWAYS_SHOWN,
- /** Maximum integer digits */
- UNUM_MAX_INTEGER_DIGITS,
- /** Minimum integer digits */
- UNUM_MIN_INTEGER_DIGITS,
- /** Integer digits */
- UNUM_INTEGER_DIGITS,
- /** Maximum fraction digits */
- UNUM_MAX_FRACTION_DIGITS,
- /** Minimum fraction digits */
- UNUM_MIN_FRACTION_DIGITS,
- /** Fraction digits */
- UNUM_FRACTION_DIGITS,
- /** Multiplier */
- UNUM_MULTIPLIER,
- /** Grouping size */
- UNUM_GROUPING_SIZE,
- /** Rounding Mode */
- UNUM_ROUNDING_MODE,
- /** Rounding increment */
- UNUM_ROUNDING_INCREMENT,
- /** The width to which the output of <code>format()</code> is padded. */
- UNUM_FORMAT_WIDTH,
- /** The position at which padding will take place. */
- UNUM_PADDING_POSITION,
- /** Secondary grouping size */
- UNUM_SECONDARY_GROUPING_SIZE,
- /** Use significant digits
- * @stable ICU 3.0 */
- UNUM_SIGNIFICANT_DIGITS_USED,
- /** Minimum significant digits
- * @stable ICU 3.0 */
- UNUM_MIN_SIGNIFICANT_DIGITS,
- /** Maximum significant digits
- * @stable ICU 3.0 */
- UNUM_MAX_SIGNIFICANT_DIGITS,
- /** Lenient parse mode used by rule-based formats.
- * @stable ICU 3.0
- */
- UNUM_LENIENT_PARSE
-} UNumberFormatAttribute;
-
-/**
-* Get a numeric attribute associated with a UNumberFormat.
-* An example of a numeric attribute is the number of integer digits a formatter will produce.
-* @param fmt The formatter to query.
-* @param attr The attribute to query; one of UNUM_PARSE_INT_ONLY, UNUM_GROUPING_USED,
-* UNUM_DECIMAL_ALWAYS_SHOWN, UNUM_MAX_INTEGER_DIGITS, UNUM_MIN_INTEGER_DIGITS, UNUM_INTEGER_DIGITS,
-* UNUM_MAX_FRACTION_DIGITS, UNUM_MIN_FRACTION_DIGITS, UNUM_FRACTION_DIGITS, UNUM_MULTIPLIER,
-* UNUM_GROUPING_SIZE, UNUM_ROUNDING_MODE, UNUM_FORMAT_WIDTH, UNUM_PADDING_POSITION, UNUM_SECONDARY_GROUPING_SIZE.
-* @return The value of attr.
-* @see unum_setAttribute
-* @see unum_getDoubleAttribute
-* @see unum_setDoubleAttribute
-* @see unum_getTextAttribute
-* @see unum_setTextAttribute
-* @stable ICU 2.0
-*/
-U_STABLE int32_t U_EXPORT2
-unum_getAttribute(const UNumberFormat* fmt,
- UNumberFormatAttribute attr);
-
-/**
-* Set a numeric attribute associated with a UNumberFormat.
-* 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.
-* @param fmt The formatter to set.
-* @param attr The attribute to set; one of UNUM_PARSE_INT_ONLY, UNUM_GROUPING_USED,
-* UNUM_DECIMAL_ALWAYS_SHOWN, UNUM_MAX_INTEGER_DIGITS, UNUM_MIN_INTEGER_DIGITS, UNUM_INTEGER_DIGITS,
-* UNUM_MAX_FRACTION_DIGITS, UNUM_MIN_FRACTION_DIGITS, UNUM_FRACTION_DIGITS, UNUM_MULTIPLIER,
-* UNUM_GROUPING_SIZE, UNUM_ROUNDING_MODE, UNUM_FORMAT_WIDTH, UNUM_PADDING_POSITION, UNUM_SECONDARY_GROUPING_SIZE,
-* or UNUM_LENIENT_PARSE.
-* @param newValue The new value of attr.
-* @see unum_getAttribute
-* @see unum_getDoubleAttribute
-* @see unum_setDoubleAttribute
-* @see unum_getTextAttribute
-* @see unum_setTextAttribute
-* @stable ICU 2.0
-*/
-U_STABLE void U_EXPORT2
-unum_setAttribute( UNumberFormat* fmt,
- UNumberFormatAttribute attr,
- int32_t newValue);
-
-
-/**
-* Get a numeric attribute associated with a UNumberFormat.
-* 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.
-* @param fmt The formatter to query.
-* @param attr The attribute to query; e.g. UNUM_ROUNDING_INCREMENT.
-* @return The value of attr.
-* @see unum_getAttribute
-* @see unum_setAttribute
-* @see unum_setDoubleAttribute
-* @see unum_getTextAttribute
-* @see unum_setTextAttribute
-* @stable ICU 2.0
-*/
-U_STABLE double U_EXPORT2
-unum_getDoubleAttribute(const UNumberFormat* fmt,
- UNumberFormatAttribute attr);
-
-/**
-* Set a numeric attribute associated with a UNumberFormat.
-* 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.
-* @param fmt The formatter to set.
-* @param attr The attribute to set; e.g. UNUM_ROUNDING_INCREMENT.
-* @param newValue The new value of attr.
-* @see unum_getAttribute
-* @see unum_setAttribute
-* @see unum_getDoubleAttribute
-* @see unum_getTextAttribute
-* @see unum_setTextAttribute
-* @stable ICU 2.0
-*/
-U_STABLE void U_EXPORT2
-unum_setDoubleAttribute( UNumberFormat* fmt,
- UNumberFormatAttribute attr,
- double newValue);
-
-/** The possible UNumberFormat text attributes @stable ICU 2.0*/
-typedef enum UNumberFormatTextAttribute {
- /** Positive prefix */
- UNUM_POSITIVE_PREFIX,
- /** Positive suffix */
- UNUM_POSITIVE_SUFFIX,
- /** Negative prefix */
- UNUM_NEGATIVE_PREFIX,
- /** Negative suffix */
- UNUM_NEGATIVE_SUFFIX,
- /** The character used to pad to the format width. */
- UNUM_PADDING_CHARACTER,
- /** The ISO currency code */
- UNUM_CURRENCY_CODE,
- /**
- * The default rule set. This is only available with rule-based formatters.
- * @stable ICU 3.0
- */
- UNUM_DEFAULT_RULESET,
- /**
- * 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).
- * @stable ICU 3.0
- */
- UNUM_PUBLIC_RULESETS
-} UNumberFormatTextAttribute;
-
-/**
-* Get a text attribute associated with a UNumberFormat.
-* An example of a text attribute is the suffix for positive numbers. If the formatter
-* does not understand the attributre, U_UNSUPPORTED_ERROR is returned as the status.
-* Rule-based formatters only understand UNUM_DEFAULT_RULESET and UNUM_PUBLIC_RULESETS.
-* @param fmt The formatter to query.
-* @param tag The attribute to query; one of UNUM_POSITIVE_PREFIX, UNUM_POSITIVE_SUFFIX,
-* UNUM_NEGATIVE_PREFIX, UNUM_NEGATIVE_SUFFIX, UNUM_PADDING_CHARACTER, UNUM_CURRENCY_CODE,
-* UNUM_DEFAULT_RULESET, or UNUM_PUBLIC_RULESETS.
-* @param result A pointer to a buffer to receive the attribute.
-* @param resultLength The maximum size of result.
-* @param status A pointer to an UErrorCode to receive any errors
-* @return The total buffer size needed; if greater than resultLength, the output was truncated.
-* @see unum_setTextAttribute
-* @see unum_getAttribute
-* @see unum_setAttribute
-* @stable ICU 2.0
-*/
-U_STABLE int32_t U_EXPORT2
-unum_getTextAttribute( const UNumberFormat* fmt,
- UNumberFormatTextAttribute tag,
- UChar* result,
- int32_t resultLength,
- UErrorCode* status);
-
-/**
-* Set a text attribute associated with a UNumberFormat.
-* An example of a text attribute is the suffix for positive numbers. Rule-based formatters
-* only understand UNUM_DEFAULT_RULESET.
-* @param fmt The formatter to set.
-* @param tag The attribute to set; one of UNUM_POSITIVE_PREFIX, UNUM_POSITIVE_SUFFIX,
-* UNUM_NEGATIVE_PREFIX, UNUM_NEGATIVE_SUFFIX, UNUM_PADDING_CHARACTER, UNUM_CURRENCY_CODE,
-* or UNUM_DEFAULT_RULESET.
-* @param newValue The new value of attr.
-* @param newValueLength The length of newValue, or -1 if null-terminated.
-* @param status A pointer to an UErrorCode to receive any errors
-* @see unum_getTextAttribute
-* @see unum_getAttribute
-* @see unum_setAttribute
-* @stable ICU 2.0
-*/
-U_STABLE void U_EXPORT2
-unum_setTextAttribute( UNumberFormat* fmt,
- UNumberFormatTextAttribute tag,
- const UChar* newValue,
- int32_t newValueLength,
- UErrorCode *status);
-
-/**
- * Extract the pattern from a UNumberFormat. The pattern will follow
- * the DecimalFormat pattern syntax.
- * @param fmt The formatter to query.
- * @param isPatternLocalized TRUE if the pattern should be localized,
- * FALSE otherwise. This is ignored if the formatter is a rule-based
- * formatter.
- * @param result A pointer to a buffer to receive the pattern.
- * @param resultLength The maximum size of result.
- * @param status A pointer to an input-output UErrorCode.
- * @return The total buffer size needed; if greater than resultLength,
- * the output was truncated.
- * @see unum_applyPattern
- * @see DecimalFormat
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-unum_toPattern( const UNumberFormat* fmt,
- UBool isPatternLocalized,
- UChar* result,
- int32_t resultLength,
- UErrorCode* status);
-
-
-/**
- * Constants for specifying a number format symbol.
- * @stable ICU 2.0
- */
-typedef enum UNumberFormatSymbol {
- /** The decimal separator */
- UNUM_DECIMAL_SEPARATOR_SYMBOL = 0,
- /** The grouping separator */
- UNUM_GROUPING_SEPARATOR_SYMBOL = 1,
- /** The pattern separator */
- UNUM_PATTERN_SEPARATOR_SYMBOL = 2,
- /** The percent sign */
- UNUM_PERCENT_SYMBOL = 3,
- /** Zero*/
- UNUM_ZERO_DIGIT_SYMBOL = 4,
- /** Character representing a digit in the pattern */
- UNUM_DIGIT_SYMBOL = 5,
- /** The minus sign */
- UNUM_MINUS_SIGN_SYMBOL = 6,
- /** The plus sign */
- UNUM_PLUS_SIGN_SYMBOL = 7,
- /** The currency symbol */
- UNUM_CURRENCY_SYMBOL = 8,
- /** The international currency symbol */
- UNUM_INTL_CURRENCY_SYMBOL = 9,
- /** The monetary separator */
- UNUM_MONETARY_SEPARATOR_SYMBOL = 10,
- /** The exponential symbol */
- UNUM_EXPONENTIAL_SYMBOL = 11,
- /** Per mill symbol */
- UNUM_PERMILL_SYMBOL = 12,
- /** Escape padding character */
- UNUM_PAD_ESCAPE_SYMBOL = 13,
- /** Infinity symbol */
- UNUM_INFINITY_SYMBOL = 14,
- /** Nan symbol */
- UNUM_NAN_SYMBOL = 15,
- /** Significant digit symbol
- * @stable ICU 3.0 */
- UNUM_SIGNIFICANT_DIGIT_SYMBOL = 16,
- /** The monetary grouping separator
- * @stable ICU 3.6
- */
- UNUM_MONETARY_GROUPING_SEPARATOR_SYMBOL = 17,
- /** One
- * @draft ICU 4.6
- */
- UNUM_ONE_DIGIT_SYMBOL = 18,
- /** Two
- * @draft ICU 4.6
- */
- UNUM_TWO_DIGIT_SYMBOL = 19,
- /** Three
- * @draft ICU 4.6
- */
- UNUM_THREE_DIGIT_SYMBOL = 20,
- /** Four
- * @draft ICU 4.6
- */
- UNUM_FOUR_DIGIT_SYMBOL = 21,
- /** Five
- * @draft ICU 4.6
- */
- UNUM_FIVE_DIGIT_SYMBOL = 22,
- /** Six
- * @draft ICU 4.6
- */
- UNUM_SIX_DIGIT_SYMBOL = 23,
- /** Seven
- * @draft ICU 4.6
- */
- UNUM_SEVEN_DIGIT_SYMBOL = 24,
- /** Eight
- * @draft ICU 4.6
- */
- UNUM_EIGHT_DIGIT_SYMBOL = 25,
- /** Nine
- * @draft ICU 4.6
- */
- UNUM_NINE_DIGIT_SYMBOL = 26,
- /** count symbol constants */
- UNUM_FORMAT_SYMBOL_COUNT = 27
-} UNumberFormatSymbol;
-
-/**
-* Get a symbol associated with a UNumberFormat.
-* A UNumberFormat 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.
-* @param fmt The formatter to query.
-* @param symbol The UNumberFormatSymbol constant for the symbol to get
-* @param buffer The string buffer that will receive the symbol string;
-* if it is NULL, then only the length of the symbol is returned
-* @param size The size of the string buffer
-* @param status A pointer to an UErrorCode to receive any errors
-* @return The length of the symbol; the buffer is not modified if
-* <code>length&gt;=size</code>
-* @see unum_setSymbol
-* @stable ICU 2.0
-*/
-U_STABLE int32_t U_EXPORT2
-unum_getSymbol(const UNumberFormat *fmt,
- UNumberFormatSymbol symbol,
- UChar *buffer,
- int32_t size,
- UErrorCode *status);
-
-/**
-* Set a symbol associated with a UNumberFormat.
-* A UNumberFormat 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.
-* @param fmt The formatter to set.
-* @param symbol The UNumberFormatSymbol constant for the symbol to set
-* @param value The string to set the symbol to
-* @param length The length of the string, or -1 for a zero-terminated string
-* @param status A pointer to an UErrorCode to receive any errors.
-* @see unum_getSymbol
-* @stable ICU 2.0
-*/
-U_STABLE void U_EXPORT2
-unum_setSymbol(UNumberFormat *fmt,
- UNumberFormatSymbol symbol,
- const UChar *value,
- int32_t length,
- UErrorCode *status);
-
-
-/**
- * Get the locale for this number format object.
- * You can choose between valid and actual locale.
- * @param fmt The formatter to get the locale from
- * @param type type of the locale we're looking for (valid or actual)
- * @param status error code for the operation
- * @return the locale name
- * @stable ICU 2.8
- */
-U_STABLE const char* U_EXPORT2
-unum_getLocaleByType(const UNumberFormat *fmt,
- ULocDataLocaleType type,
- UErrorCode* status);
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
-
-#endif
« no previous file with comments | « public/i18n/unicode/unirepl.h ('k') | public/i18n/unicode/uregex.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698