SILENT KILLERPanel

Current Path: > > opt > alt > > libicu > > usr > include > unicode


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/alt//libicu//usr/include/unicode

NameTypeSizeLast ModifiedActions
alphaindex.h File 27055 bytes November 07 2019 06:58:02.
appendable.h File 8632 bytes November 07 2019 06:58:02.
basictz.h File 9055 bytes November 07 2019 06:58:02.
brkiter.h File 28303 bytes November 07 2019 06:58:02.
bytestream.h File 9767 bytes November 07 2019 06:58:02.
bytestrie.h File 19718 bytes November 07 2019 06:58:02.
bytestriebuilder.h File 7186 bytes November 07 2019 06:58:02.
calendar.h File 107581 bytes November 07 2019 06:58:02.
caniter.h File 7550 bytes November 07 2019 06:58:02.
casemap.h File 25871 bytes November 07 2019 06:58:02.
char16ptr.h File 7331 bytes November 07 2019 06:58:02.
chariter.h File 24573 bytes November 07 2019 06:58:02.
choicfmt.h File 24418 bytes November 07 2019 06:58:02.
coleitr.h File 14033 bytes November 07 2019 06:58:02.
coll.h File 56928 bytes November 07 2019 06:58:02.
compactdecimalformat.h File 6971 bytes November 07 2019 06:58:02.
curramt.h File 3782 bytes November 07 2019 06:58:02.
currpinf.h File 7412 bytes November 07 2019 06:58:02.
currunit.h File 4082 bytes November 07 2019 06:58:02.
datefmt.h File 41334 bytes November 07 2019 06:58:02.
dbbi.h File 1133 bytes November 07 2019 06:58:02.
dcfmtsym.h File 20584 bytes November 07 2019 06:58:02.
decimfmt.h File 89926 bytes November 07 2019 06:58:02.
docmain.h File 7123 bytes November 07 2019 06:58:02.
dtfmtsym.h File 38548 bytes November 07 2019 06:58:02.
dtintrv.h File 3869 bytes November 07 2019 06:58:02.
dtitvfmt.h File 47676 bytes November 07 2019 06:58:02.
dtitvinf.h File 18902 bytes November 07 2019 06:58:02.
dtptngen.h File 25681 bytes November 07 2019 06:58:02.
dtrule.h File 8831 bytes November 07 2019 06:58:02.
edits.h File 21169 bytes November 07 2019 06:58:02.
enumset.h File 2130 bytes November 07 2019 06:58:02.
errorcode.h File 4894 bytes November 07 2019 06:58:02.
fieldpos.h File 8838 bytes November 07 2019 06:58:02.
filteredbrk.h File 5364 bytes November 07 2019 06:58:02.
fmtable.h File 24946 bytes November 07 2019 06:58:02.
format.h File 12741 bytes November 07 2019 06:58:02.
formattedvalue.h File 9963 bytes November 07 2019 06:58:02.
fpositer.h File 3047 bytes November 07 2019 06:58:02.
gender.h File 3347 bytes November 07 2019 06:58:02.
gregocal.h File 32331 bytes November 07 2019 06:58:02.
icudataver.h File 1051 bytes November 07 2019 06:58:02.
icuplug.h File 12166 bytes November 07 2019 06:58:02.
idna.h File 12938 bytes November 07 2019 06:58:02.
listformatter.h File 9644 bytes November 07 2019 06:58:02.
localebuilder.h File 10792 bytes November 07 2019 06:58:02.
localpointer.h File 20159 bytes November 07 2019 06:58:02.
locdspnm.h File 7231 bytes November 07 2019 06:58:02.
locid.h File 46015 bytes November 07 2019 06:58:02.
measfmt.h File 11710 bytes November 07 2019 06:58:02.
measunit.h File 90283 bytes November 07 2019 06:58:02.
measure.h File 4361 bytes November 07 2019 06:58:02.
messagepattern.h File 34460 bytes November 07 2019 06:58:02.
msgfmt.h File 45099 bytes November 07 2019 06:58:02.
normalizer2.h File 34789 bytes November 07 2019 06:58:02.
normlzr.h File 31476 bytes November 07 2019 06:58:02.
nounit.h File 2693 bytes November 07 2019 06:58:02.
numberformatter.h File 86654 bytes November 07 2019 06:58:02.
numberrangeformatter.h File 30653 bytes November 07 2019 06:58:02.
numfmt.h File 50530 bytes November 07 2019 06:58:02.
numsys.h File 7303 bytes November 07 2019 06:58:02.
parseerr.h File 3155 bytes November 07 2019 06:58:02.
parsepos.h File 5630 bytes November 07 2019 06:58:02.
platform.h File 27754 bytes November 07 2019 06:58:02.
plurfmt.h File 25786 bytes November 07 2019 06:58:02.
plurrule.h File 18774 bytes November 07 2019 06:58:02.
ptypes.h File 3577 bytes November 07 2019 06:58:02.
putil.h File 6487 bytes November 07 2019 06:58:02.
rbbi.h File 27053 bytes November 07 2019 06:58:02.
rbnf.h File 50984 bytes November 07 2019 06:58:02.
rbtz.h File 15838 bytes November 07 2019 06:58:02.
regex.h File 86320 bytes November 07 2019 06:58:02.
region.h File 9342 bytes November 07 2019 06:58:02.
reldatefmt.h File 22910 bytes November 07 2019 06:58:02.
rep.h File 9726 bytes November 07 2019 06:58:02.
resbund.h File 18440 bytes November 07 2019 06:58:02.
schriter.h File 6410 bytes November 07 2019 06:58:02.
scientificnumberformatter.h File 6474 bytes November 07 2019 06:58:02.
search.h File 22742 bytes November 07 2019 06:58:02.
selfmt.h File 14579 bytes November 07 2019 06:58:02.
simpleformatter.h File 12826 bytes November 07 2019 06:58:02.
simpletz.h File 46389 bytes November 07 2019 06:58:02.
smpdtfmt.h File 72597 bytes November 07 2019 06:58:02.
sortkey.h File 11383 bytes November 07 2019 06:58:02.
std_string.h File 1015 bytes November 07 2019 06:58:02.
strenum.h File 10279 bytes November 07 2019 06:58:02.
stringoptions.h File 5926 bytes November 07 2019 06:58:02.
stringpiece.h File 6610 bytes November 07 2019 06:58:02.
stringtriebuilder.h File 15636 bytes November 07 2019 06:58:02.
stsearch.h File 21801 bytes November 07 2019 06:58:02.
symtable.h File 4312 bytes November 07 2019 06:58:02.
tblcoll.h File 37272 bytes November 07 2019 06:58:02.
timezone.h File 42189 bytes November 07 2019 06:58:02.
tmunit.h File 3371 bytes November 07 2019 06:58:02.
tmutamt.h File 4918 bytes November 07 2019 06:58:02.
tmutfmt.h File 7977 bytes November 07 2019 06:58:02.
translit.h File 67339 bytes November 07 2019 06:58:02.
tzfmt.h File 43846 bytes November 07 2019 06:58:02.
tznames.h File 17190 bytes November 07 2019 06:58:02.
tzrule.h File 36170 bytes November 07 2019 06:58:02.
tztrans.h File 6214 bytes November 07 2019 06:58:02.
ubidi.h File 91711 bytes November 07 2019 06:58:02.
ubiditransform.h File 12950 bytes November 07 2019 06:58:02.
ubrk.h File 24547 bytes November 07 2019 06:58:02.
ucal.h File 56876 bytes November 07 2019 06:58:02.
ucasemap.h File 15546 bytes November 07 2019 06:58:02.
ucat.h File 5484 bytes November 07 2019 06:58:02.
uchar.h File 144035 bytes November 07 2019 06:58:02.
ucharstrie.h File 21569 bytes November 07 2019 06:58:02.
ucharstriebuilder.h File 7316 bytes November 07 2019 06:58:02.
uchriter.h File 13457 bytes November 07 2019 06:58:02.
uclean.h File 11474 bytes November 07 2019 06:58:02.
ucnv.h File 85085 bytes November 07 2019 06:58:02.
ucnv_cb.h File 6748 bytes November 07 2019 06:58:02.
ucnv_err.h File 21492 bytes November 07 2019 06:58:02.
ucnvsel.h File 6283 bytes November 07 2019 06:58:02.
ucol.h File 62864 bytes November 07 2019 06:58:02.
ucoleitr.h File 9684 bytes November 07 2019 06:58:02.
uconfig.h File 12338 bytes November 07 2019 06:58:02.
ucpmap.h File 5709 bytes November 07 2019 06:58:02.
ucptrie.h File 22824 bytes November 07 2019 06:58:02.
ucsdet.h File 15018 bytes November 07 2019 06:58:02.
ucurr.h File 16536 bytes November 07 2019 06:58:02.
udat.h File 62267 bytes November 07 2019 06:58:02.
udata.h File 15905 bytes November 07 2019 06:58:02.
udateintervalformat.h File 10272 bytes November 07 2019 06:58:02.
udatpg.h File 26564 bytes November 07 2019 06:58:02.
udisplaycontext.h File 6029 bytes November 07 2019 06:58:02.
uenum.h File 7970 bytes November 07 2019 06:58:02.
ufieldpositer.h File 4461 bytes November 07 2019 06:58:02.
uformattable.h File 11198 bytes November 07 2019 06:58:02.
uformattedvalue.h File 12430 bytes November 07 2019 06:58:02.
ugender.h File 2052 bytes November 07 2019 06:58:02.
uidna.h File 34169 bytes November 07 2019 06:58:02.
uiter.h File 23319 bytes November 07 2019 06:58:02.
uldnames.h File 10702 bytes November 07 2019 06:58:02.
ulistformatter.h File 9043 bytes November 07 2019 06:58:02.
uloc.h File 51971 bytes November 07 2019 06:58:02.
ulocdata.h File 11533 bytes November 07 2019 06:58:02.
umachine.h File 13509 bytes November 07 2019 06:58:02.
umisc.h File 1365 bytes November 07 2019 06:58:02.
umsg.h File 24812 bytes November 07 2019 06:58:02.
umutablecptrie.h File 8477 bytes November 07 2019 06:58:02.
unifilt.h File 3716 bytes November 07 2019 06:58:02.
unifunct.h File 4079 bytes November 07 2019 06:58:02.
unimatch.h File 6184 bytes November 07 2019 06:58:02.
unirepl.h File 3403 bytes November 07 2019 06:58:02.
uniset.h File 66440 bytes November 07 2019 06:58:02.
unistr.h File 174477 bytes November 07 2019 06:58:02.
unorm.h File 20938 bytes November 07 2019 06:58:02.
unorm2.h File 25254 bytes November 07 2019 06:58:02.
unum.h File 54832 bytes November 07 2019 06:58:02.
unumberformatter.h File 25795 bytes November 07 2019 06:58:02.
unumsys.h File 7387 bytes November 07 2019 06:58:02.
uobject.h File 11106 bytes November 07 2019 06:58:02.
upluralrules.h File 8068 bytes November 07 2019 06:58:02.
uregex.h File 73784 bytes November 07 2019 06:58:02.
uregion.h File 10073 bytes November 07 2019 06:58:02.
ureldatefmt.h File 17670 bytes November 07 2019 06:58:02.
urename.h File 134551 bytes November 07 2019 06:58:02.
urep.h File 5507 bytes November 07 2019 06:58:02.
ures.h File 37415 bytes November 07 2019 06:58:02.
uscript.h File 27510 bytes November 07 2019 06:58:02.
usearch.h File 39038 bytes November 07 2019 06:58:02.
uset.h File 40958 bytes November 07 2019 06:58:02.
usetiter.h File 9719 bytes November 07 2019 06:58:02.
ushape.h File 18432 bytes November 07 2019 06:58:02.
uspoof.h File 67613 bytes November 07 2019 06:58:02.
usprep.h File 8331 bytes November 07 2019 06:58:02.
ustdio.h File 39469 bytes November 07 2019 06:58:02.
ustream.h File 1844 bytes November 07 2019 06:58:02.
ustring.h File 74211 bytes November 07 2019 06:58:02.
ustringtrie.h File 3224 bytes November 07 2019 06:58:02.
utext.h File 59505 bytes November 07 2019 06:58:02.
utf.h File 8046 bytes November 07 2019 06:58:02.
utf16.h File 22866 bytes November 07 2019 06:58:02.
utf32.h File 763 bytes November 07 2019 06:58:02.
utf8.h File 30682 bytes November 07 2019 06:58:02.
utf_old.h File 44827 bytes November 07 2019 06:58:02.
utmscale.h File 14113 bytes November 07 2019 06:58:02.
utrace.h File 14219 bytes November 07 2019 06:58:02.
utrans.h File 26157 bytes November 07 2019 06:58:02.
utypes.h File 31108 bytes November 07 2019 06:58:02.
uvernum.h File 6832 bytes November 07 2019 06:58:02.
uversion.h File 6865 bytes November 07 2019 06:58:02.
vtzone.h File 20651 bytes November 07 2019 06:58:02.

Reading File: //opt/alt//libicu//usr/include/unicode/measfmt.h

// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
* Copyright (c) 2004-2016, International Business Machines
* Corporation and others.  All Rights Reserved.
**********************************************************************
* Author: Alan Liu
* Created: April 20, 2004
* Since: ICU 3.0
**********************************************************************
*/
#ifndef MEASUREFORMAT_H
#define MEASUREFORMAT_H

#include "unicode/utypes.h"

#if !UCONFIG_NO_FORMATTING

#include "unicode/format.h"
#include "unicode/udat.h"

/**
 * \file 
 * \brief C++ API: Compatibility APIs for measure formatting.
 */

/**
 * Constants for various widths.
 * There are 4 widths: Wide, Short, Narrow, Numeric.
 * For example, for English, when formatting "3 hours"
 * Wide is "3 hours"; short is "3 hrs"; narrow is "3h";
 * formatting "3 hours 17 minutes" as numeric give "3:17"
 * @stable ICU 53
 */
enum UMeasureFormatWidth {

    // Wide, short, and narrow must be first and in this order.
    /**
     * Spell out measure units.
     * @stable ICU 53 
     */
    UMEASFMT_WIDTH_WIDE,
 
    /**
     * Abbreviate measure units.
     * @stable ICU 53
     */
    UMEASFMT_WIDTH_SHORT,

    /**
     * Use symbols for measure units when possible.
     * @stable ICU 53
     */
    UMEASFMT_WIDTH_NARROW,

    /**
     * Completely omit measure units when possible. For example, format
     * '5 hours, 37 minutes' as '5:37'
     * @stable ICU 53
     */
    UMEASFMT_WIDTH_NUMERIC,

#ifndef U_HIDE_DEPRECATED_API
    /**
     * One more than the highest normal UMeasureFormatWidth value.
     * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
     */
    UMEASFMT_WIDTH_COUNT = 4
#endif  // U_HIDE_DEPRECATED_API
};
/** @stable ICU 53 */
typedef enum UMeasureFormatWidth UMeasureFormatWidth; 

U_NAMESPACE_BEGIN

class Measure;
class MeasureUnit;
class NumberFormat;
class PluralRules;
class MeasureFormatCacheData;
class SharedNumberFormat;
class SharedPluralRules;
class QuantityFormatter;
class SimpleFormatter;
class ListFormatter;
class DateFormat;

/**
 * <p><strong>IMPORTANT:</strong> New users are strongly encouraged to see if
 * numberformatter.h fits their use case.  Although not deprecated, this header
 * is provided for backwards compatibility only.
 *
 * @see Format
 * @author Alan Liu
 * @stable ICU 3.0
 */
class U_I18N_API MeasureFormat : public Format {
 public:
    using Format::parseObject;
    using Format::format;

    /**
     * Constructor.
     * <p>
     * <strong>NOTE:</strong> New users are strongly encouraged to use
     * {@link icu::number::NumberFormatter} instead of NumberFormat.
     * @stable ICU 53
     */
    MeasureFormat(
            const Locale &locale, UMeasureFormatWidth width, UErrorCode &status);

    /**
     * Constructor.
     * <p>
     * <strong>NOTE:</strong> New users are strongly encouraged to use
     * {@link icu::number::NumberFormatter} instead of NumberFormat.
     * @stable ICU 53
     */
    MeasureFormat(
            const Locale &locale,
            UMeasureFormatWidth width,
            NumberFormat *nfToAdopt,
            UErrorCode &status);

    /**
     * Copy constructor.
     * @stable ICU 3.0
     */
    MeasureFormat(const MeasureFormat &other);

    /**
     * Assignment operator.
     * @stable ICU 3.0
     */
    MeasureFormat &operator=(const MeasureFormat &rhs);

    /**
     * Destructor.
     * @stable ICU 3.0
     */
    virtual ~MeasureFormat();

    /**
     * Return true if given Format objects are semantically equal.
     * @stable ICU 53
     */
    virtual UBool operator==(const Format &other) const;

    /**
     * Clones this object polymorphically.
     * @stable ICU 53
     */
    virtual Format *clone() const;

    /**
     * Formats object to produce a string.
     * @stable ICU 53
     */
    virtual UnicodeString &format(
            const Formattable &obj,
            UnicodeString &appendTo,
            FieldPosition &pos,
            UErrorCode &status) const;

    /**
     * Parse a string to produce an object. This implementation sets
     * status to U_UNSUPPORTED_ERROR.
     *
     * @draft ICU 53
     */
    virtual void parseObject(
            const UnicodeString &source,
            Formattable &reslt,
            ParsePosition &pos) const;

    /**
     * Formats measure objects to produce a string. An example of such a
     * formatted string is 3 meters, 3.5 centimeters. Measure objects appear
     * in the formatted string in the same order they appear in the "measures"
     * array. The NumberFormat of this object is used only to format the amount
     * of the very last measure. The other amounts are formatted with zero
     * decimal places while rounding toward zero.
     * @param measures array of measure objects.
     * @param measureCount the number of measure objects.
     * @param appendTo formatted string appended here.
     * @param pos the field position.
     * @param status the error.
     * @return appendTo reference
     *
     * @stable ICU 53
     */
    UnicodeString &formatMeasures(
            const Measure *measures,
            int32_t measureCount,
            UnicodeString &appendTo,
            FieldPosition &pos,
            UErrorCode &status) const;

    /**
     * Formats a single measure per unit. An example of such a
     * formatted string is 3.5 meters per second.
     * @param measure The measure object. In above example, 3.5 meters.
     * @param perUnit The per unit. In above example, it is
     *        `*%MeasureUnit::createSecond(status)`.
     * @param appendTo formatted string appended here.
     * @param pos the field position.
     * @param status the error.
     * @return appendTo reference
     *
     * @stable ICU 55
     */
    UnicodeString &formatMeasurePerUnit(
            const Measure &measure,
            const MeasureUnit &perUnit,
            UnicodeString &appendTo,
            FieldPosition &pos,
            UErrorCode &status) const;

    /**
     * Gets the display name of the specified {@link MeasureUnit} corresponding to the current
     * locale and format width.
     * @param unit  The unit for which to get a display name.
     * @param status the error.
     * @return  The display name in the locale and width specified in
     *          the MeasureFormat constructor, or null if there is no display name available
     *          for the specified unit.
     *
     * @stable ICU 58
     */
    UnicodeString getUnitDisplayName(const MeasureUnit& unit, UErrorCode &status) const;


    /**
     * Return a formatter for CurrencyAmount objects in the given
     * locale.
     * <p>
     * <strong>NOTE:</strong> New users are strongly encouraged to use
     * {@link icu::number::NumberFormatter} instead of NumberFormat.
     * @param locale desired locale
     * @param ec input-output error code
     * @return a formatter object, or NULL upon error
     * @stable ICU 3.0
     */
    static MeasureFormat* U_EXPORT2 createCurrencyFormat(const Locale& locale,
                                               UErrorCode& ec);

    /**
     * Return a formatter for CurrencyAmount objects in the default
     * locale.
     * <p>
     * <strong>NOTE:</strong> New users are strongly encouraged to use
     * {@link icu::number::NumberFormatter} instead of NumberFormat.
     * @param ec input-output error code
     * @return a formatter object, or NULL upon error
     * @stable ICU 3.0
     */
    static MeasureFormat* U_EXPORT2 createCurrencyFormat(UErrorCode& ec);

    /**
     * Return the class ID for this class. This is useful only for comparing to
     * a return value from getDynamicClassID(). For example:
     * <pre>
     * .   Base* polymorphic_pointer = createPolymorphicObject();
     * .   if (polymorphic_pointer->getDynamicClassID() ==
     * .       erived::getStaticClassID()) ...
     * </pre>
     * @return          The class ID for all objects of this class.
     * @stable ICU 53
     */
    static UClassID U_EXPORT2 getStaticClassID(void);

    /**
     * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This
     * method is to implement a simple version of RTTI, since not all C++
     * compilers support genuine RTTI. Polymorphic operator==() and clone()
     * methods call this method.
     *
     * @return          The class ID for this object. All objects of a
     *                  given class have the same class ID.  Objects of
     *                  other classes have different class IDs.
     * @stable ICU 53
     */
    virtual UClassID getDynamicClassID(void) const;

 protected:
    /**
     * Default constructor.
     * @stable ICU 3.0
     */
    MeasureFormat();

#ifndef U_HIDE_INTERNAL_API 

    /**
     * ICU use only.
     * Initialize or change MeasureFormat class from subclass.
     * @internal.
     */
    void initMeasureFormat(
            const Locale &locale,
            UMeasureFormatWidth width,
            NumberFormat *nfToAdopt,
            UErrorCode &status);
    /**
     * ICU use only.
     * Allows subclass to change locale. Note that this method also changes
     * the NumberFormat object. Returns TRUE if locale changed; FALSE if no
     * change was made.
     * @internal.
     */
    UBool setMeasureFormatLocale(const Locale &locale, UErrorCode &status);

    /**
     * ICU use only.
     * Let subclass change NumberFormat.
     * @internal.
     */
    void adoptNumberFormat(NumberFormat *nfToAdopt, UErrorCode &status);

    /**
     * ICU use only.
     * @internal.
     */
    const NumberFormat &getNumberFormatInternal() const;

    /**
     * ICU use only.
     * Always returns the short form currency formatter.
     * @internal.
     */
    const NumberFormat& getCurrencyFormatInternal() const;

    /**
     * ICU use only.
     * @internal.
     */
    const PluralRules &getPluralRules() const;

    /**
     * ICU use only.
     * @internal.
     */
    Locale getLocale(UErrorCode &status) const;

    /**
     * ICU use only.
     * @internal.
     */
    const char *getLocaleID(UErrorCode &status) const;

#endif /* U_HIDE_INTERNAL_API */

 private:
    const MeasureFormatCacheData *cache;
    const SharedNumberFormat *numberFormat;
    const SharedPluralRules *pluralRules;
    UMeasureFormatWidth fWidth;    

    // Declared outside of MeasureFormatSharedData because ListFormatter
    // objects are relatively cheap to copy; therefore, they don't need to be
    // shared across instances.
    ListFormatter *listFormatter;

    UnicodeString &formatMeasure(
        const Measure &measure,
        const NumberFormat &nf,
        UnicodeString &appendTo,
        FieldPosition &pos,
        UErrorCode &status) const;

    UnicodeString &formatMeasuresSlowTrack(
        const Measure *measures,
        int32_t measureCount,
        UnicodeString& appendTo,
        FieldPosition& pos,
        UErrorCode& status) const;

    UnicodeString &formatNumeric(
        const Formattable *hms,  // always length 3: [0] is hour; [1] is
                                 // minute; [2] is second.
        int32_t bitMap,   // 1=hour set, 2=minute set, 4=second set
        UnicodeString &appendTo,
        UErrorCode &status) const;

    UnicodeString &formatNumeric(
        UDate date,
        const DateFormat &dateFmt,
        UDateFormatField smallestField,
        const Formattable &smallestAmount,
        UnicodeString &appendTo,
        UErrorCode &status) const;
};

U_NAMESPACE_END

#endif // #if !UCONFIG_NO_FORMATTING
#endif // #ifndef MEASUREFORMAT_H

SILENT KILLER Tool