00001 // © 2016 and later: Unicode, Inc. and others. 00002 // License & terms of use: http://www.unicode.org/copyright.html 00003 /* 00004 ******************************************************************************** 00005 * Copyright (C) 2010-2012, International Business Machines 00006 * Corporation and others. All Rights Reserved. 00007 ******************************************************************************** 00008 * 00009 * File attiter.h 00010 * 00011 * Modification History: 00012 * 00013 * Date Name Description 00014 * 12/15/2009 dougfelt Created 00015 ******************************************************************************** 00016 */ 00017 00018 #ifndef FPOSITER_H 00019 #define FPOSITER_H 00020 00021 #include "unicode/utypes.h" 00022 #include "unicode/uobject.h" 00023 00029 #if UCONFIG_NO_FORMATTING 00030 00031 U_NAMESPACE_BEGIN 00032 00033 /* 00034 * Allow the declaration of APIs with pointers to FieldPositionIterator 00035 * even when formatting is removed from the build. 00036 */ 00037 class FieldPositionIterator; 00038 00039 U_NAMESPACE_END 00040 00041 #else 00042 00043 #include "unicode/fieldpos.h" 00044 #include "unicode/umisc.h" 00045 00046 U_NAMESPACE_BEGIN 00047 00048 class UVector32; 00049 00050 // Forward declaration for number formatting: 00051 namespace number { 00052 namespace impl { 00053 class NumberStringBuilder; 00054 } 00055 } 00056 00062 class U_I18N_API FieldPositionIterator : public UObject { 00063 public: 00068 ~FieldPositionIterator(); 00069 00074 FieldPositionIterator(void); 00075 00081 FieldPositionIterator(const FieldPositionIterator&); 00082 00091 UBool operator==(const FieldPositionIterator&) const; 00092 00099 UBool operator!=(const FieldPositionIterator& rhs) const { return !operator==(rhs); } 00100 00106 UBool next(FieldPosition& fp); 00107 00108 private: 00114 void setData(UVector32 *adopt, UErrorCode& status); 00115 00116 friend class FieldPositionIteratorHandler; 00117 friend class number::impl::NumberStringBuilder; 00118 00119 UVector32 *data; 00120 int32_t pos; 00121 }; 00122 00123 U_NAMESPACE_END 00124 00125 #endif /* #if !UCONFIG_NO_FORMATTING */ 00126 00127 #endif // FPOSITER_H
1.6.1