~alinuxninja/nginx-edge/trunk

« back to all changes in this revision

Viewing changes to debian/modules/ngx_pagespeed/psol/include/third_party/icu/source/i18n/unicode/fpositer.h

  • Committer: Vivian
  • Date: 2015-12-04 18:20:11 UTC
  • Revision ID: git-v1:a36f2bc32e884f7473b3a47040e5411306144d7d
* Do not extract psol.tar.gz

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
********************************************************************************
3
 
*   Copyright (C) 2010, 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
 
*/
15
 
 
16
 
#ifndef FPOSITER_H
17
 
#define FPOSITER_H
18
 
 
19
 
#include "unicode/utypes.h"
20
 
#include "unicode/uobject.h"
21
 
 
22
 
/**
23
 
 * \file
24
 
 * \brief C++ API: FieldPosition Iterator.
25
 
 */
26
 
 
27
 
#if UCONFIG_NO_FORMATTING
28
 
 
29
 
U_NAMESPACE_BEGIN
30
 
 
31
 
/*
32
 
 * Allow the declaration of APIs with pointers to FieldPositionIterator
33
 
 * even when formatting is removed from the build.
34
 
 */
35
 
class FieldPositionIterator;
36
 
 
37
 
U_NAMESPACE_END
38
 
 
39
 
#else
40
 
 
41
 
#include "unicode/fieldpos.h"
42
 
#include "unicode/umisc.h"
43
 
 
44
 
U_NAMESPACE_BEGIN
45
 
 
46
 
class UVector32;
47
 
 
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();
60
 
 
61
 
    /**
62
 
     * Constructs a new, empty iterator.
63
 
     * @stable ICU 4.4
64
 
     */
65
 
    FieldPositionIterator(void);
66
 
 
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&);
73
 
 
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;
83
 
 
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); }
91
 
 
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);
98
 
 
99
 
private:
100
 
    friend class FieldPositionIteratorHandler;
101
 
 
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);
108
 
 
109
 
    UVector32 *data;
110
 
    int32_t pos;
111
 
 
112
 
    // No ICU "poor man's RTTI" for this class nor its subclasses.
113
 
    virtual UClassID getDynamicClassID() const;
114
 
};
115
 
 
116
 
U_NAMESPACE_END
117
 
 
118
 
#endif /* #if !UCONFIG_NO_FORMATTING */
119
 
 
120
 
#endif // FPOSITER_H