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

Side by Side Diff: source/i18n/unicode/numfmt.h

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 years, 11 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 unified diff | Download patch
« no previous file with comments | « source/i18n/unicode/measure.h ('k') | source/i18n/unicode/numsys.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 ******************************************************************************** 2 ********************************************************************************
3 * Copyright (C) 1997-2013, International Business Machines Corporation and other s. 3 * Copyright (C) 1997-2014, International Business Machines Corporation and other s.
4 * All Rights Reserved. 4 * All Rights Reserved.
5 ******************************************************************************** 5 ********************************************************************************
6 * 6 *
7 * File NUMFMT.H 7 * File NUMFMT.H
8 * 8 *
9 * Modification History: 9 * Modification History:
10 * 10 *
11 * Date Name Description 11 * Date Name Description
12 * 02/19/97 aliu Converted from java. 12 * 02/19/97 aliu Converted from java.
13 * 03/18/97 clhuang Updated per C++ implementation. 13 * 03/18/97 clhuang Updated per C++ implementation.
(...skipping 16 matching lines...) Expand all
30 */ 30 */
31 31
32 #if !UCONFIG_NO_FORMATTING 32 #if !UCONFIG_NO_FORMATTING
33 33
34 #include "unicode/unistr.h" 34 #include "unicode/unistr.h"
35 #include "unicode/format.h" 35 #include "unicode/format.h"
36 #include "unicode/unum.h" // UNumberFormatStyle 36 #include "unicode/unum.h" // UNumberFormatStyle
37 #include "unicode/locid.h" 37 #include "unicode/locid.h"
38 #include "unicode/stringpiece.h" 38 #include "unicode/stringpiece.h"
39 #include "unicode/curramt.h" 39 #include "unicode/curramt.h"
40 #include "unicode/udisplaycontext.h"
40 41
41 class NumberFormatTest; 42 class NumberFormatTest;
42 43
43 U_NAMESPACE_BEGIN 44 U_NAMESPACE_BEGIN
44 45
46 class SharedNumberFormat;
47
45 #if !UCONFIG_NO_SERVICE 48 #if !UCONFIG_NO_SERVICE
46 class NumberFormatFactory; 49 class NumberFormatFactory;
47 class StringEnumeration; 50 class StringEnumeration;
48 #endif 51 #endif
49 52
50 /** 53 /**
51 * 54 *
52 * Abstract base class for all number formats. Provides interface for 55 * Abstract base class for all number formats. Provides interface for
53 * formatting and parsing a number. Also provides methods for 56 * formatting and parsing a number. Also provides methods for
54 * determining which locales have number formats, and what their names 57 * determining which locales have number formats, and what their names
(...skipping 643 matching lines...) Expand 10 before | Expand all | Expand 10 after
698 * @param desiredLocale the given locale. 701 * @param desiredLocale the given locale.
699 * @param style the given style. 702 * @param style the given style.
700 * @param errorCode Output param filled with success/failure status. 703 * @param errorCode Output param filled with success/failure status.
701 * @return A new NumberFormat instance. 704 * @return A new NumberFormat instance.
702 * @stable ICU 4.8 705 * @stable ICU 4.8
703 */ 706 */
704 static NumberFormat* U_EXPORT2 createInstance(const Locale& desiredLocale, 707 static NumberFormat* U_EXPORT2 createInstance(const Locale& desiredLocale,
705 UNumberFormatStyle style, 708 UNumberFormatStyle style,
706 UErrorCode& errorCode); 709 UErrorCode& errorCode);
707 710
711 #ifndef U_HIDE_INTERNAL_API
712
713 /**
714 * ICU use only.
715 * Creates NumberFormat instance without using the cache.
716 * @internal
717 */
718 static NumberFormat* internalCreateInstance(
719 const Locale& desiredLocale,
720 UNumberFormatStyle style,
721 UErrorCode& errorCode);
722
723 /**
724 * ICU use only.
725 * Returns handle to the shared, cached NumberFormat instance for given
726 * locale. On success, caller must call removeRef() on returned value
727 * once it is done with the shared instance.
728 * @internal
729 */
730 static const SharedNumberFormat* U_EXPORT2 createSharedInstance(
731 const Locale& inLocale, UNumberFormatStyle style, UErrorCode& status );
732
733 #endif /* U_HIDE_INTERNAL_API */
734
708 /** 735 /**
709 * Returns a currency format for the current default locale. 736 * Returns a currency format for the current default locale.
710 * @stable ICU 2.0 737 * @stable ICU 2.0
711 */ 738 */
712 static NumberFormat* U_EXPORT2 createCurrencyInstance(UErrorCode&); 739 static NumberFormat* U_EXPORT2 createCurrencyInstance(UErrorCode&);
713 740
714 /** 741 /**
715 * Returns a currency format for the specified locale. 742 * Returns a currency format for the specified locale.
716 * @param inLocale the given locale. 743 * @param inLocale the given locale.
717 * @stable ICU 2.0 744 * @stable ICU 2.0
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 /** 777 /**
751 * Get the set of Locales for which NumberFormats are installed. 778 * Get the set of Locales for which NumberFormats are installed.
752 * @param count Output param to receive the size of the locales 779 * @param count Output param to receive the size of the locales
753 * @stable ICU 2.0 780 * @stable ICU 2.0
754 */ 781 */
755 static const Locale* U_EXPORT2 getAvailableLocales(int32_t& count); 782 static const Locale* U_EXPORT2 getAvailableLocales(int32_t& count);
756 783
757 #if !UCONFIG_NO_SERVICE 784 #if !UCONFIG_NO_SERVICE
758 /** 785 /**
759 * Register a new NumberFormatFactory. The factory will be adopted. 786 * Register a new NumberFormatFactory. The factory will be adopted.
787 * Because ICU may choose to cache NumberFormat objects internally,
788 * this must be called at application startup, prior to any calls to
789 * NumberFormat::createInstance to avoid undefined behavior.
760 * @param toAdopt the NumberFormatFactory instance to be adopted 790 * @param toAdopt the NumberFormatFactory instance to be adopted
761 * @param status the in/out status code, no special meanings are assigned 791 * @param status the in/out status code, no special meanings are assigned
762 * @return a registry key that can be used to unregister this factory 792 * @return a registry key that can be used to unregister this factory
763 * @stable ICU 2.6 793 * @stable ICU 2.6
764 */ 794 */
765 static URegistryKey U_EXPORT2 registerFactory(NumberFormatFactory* toAdopt, UErrorCode& status); 795 static URegistryKey U_EXPORT2 registerFactory(NumberFormatFactory* toAdopt, UErrorCode& status);
766 796
767 /** 797 /**
768 * Unregister a previously-registered NumberFormatFactory using the key retu rned from the 798 * Unregister a previously-registered NumberFormatFactory using the key retu rned from the
769 * register call. Key becomes invalid after a successful call and should no t be used again. 799 * register call. Key becomes invalid after a successful call and should no t be used again.
770 * The NumberFormatFactory corresponding to the key will be deleted. 800 * The NumberFormatFactory corresponding to the key will be deleted.
801 * Because ICU may choose to cache NumberFormat objects internally,
802 * this should be called during application shutdown, after all calls to
803 * NumberFormat::createInstance to avoid undefined behavior.
771 * @param key the registry key returned by a previous call to registerFactor y 804 * @param key the registry key returned by a previous call to registerFactor y
772 * @param status the in/out status code, no special meanings are assigned 805 * @param status the in/out status code, no special meanings are assigned
773 * @return TRUE if the factory for the key was successfully unregistered 806 * @return TRUE if the factory for the key was successfully unregistered
774 * @stable ICU 2.6 807 * @stable ICU 2.6
775 */ 808 */
776 static UBool U_EXPORT2 unregister(URegistryKey key, UErrorCode& status); 809 static UBool U_EXPORT2 unregister(URegistryKey key, UErrorCode& status);
777 810
778 /** 811 /**
779 * Return a StringEnumeration over the locales available at the time of the call, 812 * Return a StringEnumeration over the locales available at the time of the call,
780 * including registered locales. 813 * including registered locales.
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 virtual void setCurrency(const UChar* theCurrency, UErrorCode& ec); 941 virtual void setCurrency(const UChar* theCurrency, UErrorCode& ec);
909 942
910 /** 943 /**
911 * Gets the currency used to display currency 944 * Gets the currency used to display currency
912 * amounts. This may be an empty string for some subclasses. 945 * amounts. This may be an empty string for some subclasses.
913 * @return a 3-letter null-terminated ISO code indicating 946 * @return a 3-letter null-terminated ISO code indicating
914 * the currency in use, or a pointer to the empty string. 947 * the currency in use, or a pointer to the empty string.
915 * @stable ICU 2.6 948 * @stable ICU 2.6
916 */ 949 */
917 const UChar* getCurrency() const; 950 const UChar* getCurrency() const;
951
952 /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual */
953 /**
954 * Set a particular UDisplayContext value in the formatter, such as
955 * UDISPCTX_CAPITALIZATION_FOR_STANDALONE.
956 * @param value The UDisplayContext value to set.
957 * @param status Input/output status. If at entry this indicates a failure
958 * status, the function will do nothing; otherwise this will b e
959 * updated with any new status from the function.
960 * @draft ICU 53
961 */
962 virtual void setContext(UDisplayContext value, UErrorCode& status);
963
964 /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual */
965 /**
966 * Get the formatter's UDisplayContext value for the specified UDisplayConte xtType,
967 * such as UDISPCTX_TYPE_CAPITALIZATION.
968 * @param type The UDisplayContextType whose value to return
969 * @param status Input/output status. If at entry this indicates a failure
970 * status, the function will do nothing; otherwise this will b e
971 * updated with any new status from the function.
972 * @return The UDisplayContextValue for the specified type.
973 * @draft ICU 53
974 */
975 virtual UDisplayContext getContext(UDisplayContextType type, UErrorCode& sta tus) const;
918 976
919 public: 977 public:
920 978
921 /** 979 /**
922 * Return the class ID for this class. This is useful for 980 * Return the class ID for this class. This is useful for
923 * comparing to a return value from getDynamicClassID(). Note that, 981 * comparing to a return value from getDynamicClassID(). Note that,
924 * because NumberFormat is an abstract base class, no fully constructed obje ct 982 * because NumberFormat is an abstract base class, no fully constructed obje ct
925 * will have the class ID returned by NumberFormat::getStaticClassID(). 983 * will have the class ID returned by NumberFormat::getStaticClassID().
926 * @return The class ID for all objects of this class. 984 * @return The class ID for all objects of this class.
927 * @stable ICU 2.0 985 * @stable ICU 2.0
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
992 * Creates the specified decimal format style of the desired locale. 1050 * Creates the specified decimal format style of the desired locale.
993 * @param desiredLocale the given locale. 1051 * @param desiredLocale the given locale.
994 * @param style the given style. 1052 * @param style the given style.
995 * @param errorCode Output param filled with success/failure status. 1053 * @param errorCode Output param filled with success/failure status.
996 * @return A new NumberFormat instance. 1054 * @return A new NumberFormat instance.
997 */ 1055 */
998 static NumberFormat* makeInstance(const Locale& desiredLocale, 1056 static NumberFormat* makeInstance(const Locale& desiredLocale,
999 UNumberFormatStyle style, 1057 UNumberFormatStyle style,
1000 UErrorCode& errorCode); 1058 UErrorCode& errorCode);
1001 1059
1002 UBool fGroupingUsed; 1060 UBool fGroupingUsed;
1003 int32_t fMaxIntegerDigits; 1061 int32_t fMaxIntegerDigits;
1004 int32_t fMinIntegerDigits; 1062 int32_t fMinIntegerDigits;
1005 int32_t fMaxFractionDigits; 1063 int32_t fMaxFractionDigits;
1006 int32_t fMinFractionDigits; 1064 int32_t fMinFractionDigits;
1007 1065
1008 protected: 1066 protected:
1009 static const int32_t gDefaultMaxIntegerDigits; 1067 static const int32_t gDefaultMaxIntegerDigits;
1010 static const int32_t gDefaultMinIntegerDigits; 1068 static const int32_t gDefaultMinIntegerDigits;
1011 1069
1012 private: 1070 private:
1013 UBool fParseIntegerOnly; 1071 UBool fParseIntegerOnly;
1014 UBool fLenient; // TRUE => lenient parse is enabled 1072 UBool fLenient; // TRUE => lenient parse is enabled
1015 1073
1016 // ISO currency code 1074 // ISO currency code
1017 UChar fCurrency[4]; 1075 UChar fCurrency[4];
1018 1076
1077 UDisplayContext fCapitalizationContext;
1078
1019 friend class ICUNumberFormatFactory; // access to makeInstance 1079 friend class ICUNumberFormatFactory; // access to makeInstance
1020 friend class ICUNumberFormatService; 1080 friend class ICUNumberFormatService;
1021 friend class ::NumberFormatTest; // access to isStyleSupported() 1081 friend class ::NumberFormatTest; // access to isStyleSupported()
1022 }; 1082 };
1023 1083
1024 #if !UCONFIG_NO_SERVICE 1084 #if !UCONFIG_NO_SERVICE
1025 /** 1085 /**
1026 * A NumberFormatFactory is used to register new number formats. The factory 1086 * A NumberFormatFactory is used to register new number formats. The factory
1027 * should be able to create any of the predefined formats for each locale it 1087 * should be able to create any of the predefined formats for each locale it
1028 * supports. When registered, the locales it supports extend or override the 1088 * supports. When registered, the locales it supports extend or override the
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
1118 { 1178 {
1119 return fLenient; 1179 return fLenient;
1120 } 1180 }
1121 1181
1122 U_NAMESPACE_END 1182 U_NAMESPACE_END
1123 1183
1124 #endif /* #if !UCONFIG_NO_FORMATTING */ 1184 #endif /* #if !UCONFIG_NO_FORMATTING */
1125 1185
1126 #endif // _NUMFMT 1186 #endif // _NUMFMT
1127 //eof 1187 //eof
OLDNEW
« no previous file with comments | « source/i18n/unicode/measure.h ('k') | source/i18n/unicode/numsys.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698