intl/icu/source/i18n/unicode/fpositer.h

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /*
     2 ********************************************************************************
     3 *   Copyright (C) 2010-2012, International Business Machines
     4 *   Corporation and others.  All Rights Reserved.
     5 ********************************************************************************
     6 *
     7 * File attiter.h
     8 *
     9 * Modification History:
    10 *
    11 *   Date        Name        Description
    12 *   12/15/2009  dougfelt    Created
    13 ********************************************************************************
    14 */
    16 #ifndef FPOSITER_H
    17 #define FPOSITER_H
    19 #include "unicode/utypes.h"
    20 #include "unicode/uobject.h"
    22 /**
    23  * \file
    24  * \brief C++ API: FieldPosition Iterator.
    25  */
    27 #if UCONFIG_NO_FORMATTING
    29 U_NAMESPACE_BEGIN
    31 /*
    32  * Allow the declaration of APIs with pointers to FieldPositionIterator
    33  * even when formatting is removed from the build.
    34  */
    35 class FieldPositionIterator;
    37 U_NAMESPACE_END
    39 #else
    41 #include "unicode/fieldpos.h"
    42 #include "unicode/umisc.h"
    44 U_NAMESPACE_BEGIN
    46 class UVector32;
    48 /**
    49  * FieldPositionIterator returns the field ids and their start/limit positions generated
    50  * by a call to Format::format.  See Format, NumberFormat, DecimalFormat.
    51  * @stable ICU 4.4
    52  */
    53 class U_I18N_API FieldPositionIterator : public UObject {
    54 public:
    55     /**
    56      * Destructor.
    57      * @stable ICU 4.4
    58      */
    59     ~FieldPositionIterator();
    61     /**
    62      * Constructs a new, empty iterator.
    63      * @stable ICU 4.4
    64      */
    65     FieldPositionIterator(void);
    67     /**
    68      * Copy constructor.  If the copy failed for some reason, the new iterator will
    69      * be empty.
    70      * @stable ICU 4.4
    71      */
    72     FieldPositionIterator(const FieldPositionIterator&);
    74     /**
    75      * Return true if another object is semantically equal to this
    76      * one.
    77      * <p>
    78      * Return true if this FieldPositionIterator is at the same position in an
    79      * equal array of run values.
    80      * @stable ICU 4.4
    81      */
    82     UBool operator==(const FieldPositionIterator&) const;
    84     /**
    85      * Returns the complement of the result of operator==
    86      * @param rhs The FieldPositionIterator to be compared for inequality
    87      * @return the complement of the result of operator==
    88      * @stable ICU 4.4
    89      */
    90     UBool operator!=(const FieldPositionIterator& rhs) const { return !operator==(rhs); }
    92     /**
    93      * If the current position is valid, updates the FieldPosition values, advances the iterator,
    94      * and returns TRUE, otherwise returns FALSE.
    95      * @stable ICU 4.4
    96      */
    97     UBool next(FieldPosition& fp);
    99 private:
   100     friend class FieldPositionIteratorHandler;
   102     /**
   103      * Sets the data used by the iterator, and resets the position.
   104      * Returns U_ILLEGAL_ARGUMENT_ERROR in status if the data is not valid 
   105      * (length is not a multiple of 3, or start >= limit for any run).
   106      */
   107     void setData(UVector32 *adopt, UErrorCode& status);
   109     UVector32 *data;
   110     int32_t pos;
   111 };
   113 U_NAMESPACE_END
   115 #endif /* #if !UCONFIG_NO_FORMATTING */
   117 #endif // FPOSITER_H

mercurial