]> git.saurik.com Git - apple/icu.git/blame - icuSources/test/intltest/sfwdchit.h
ICU-511.25.tar.gz
[apple/icu.git] / icuSources / test / intltest / sfwdchit.h
CommitLineData
b75a7d8f
A
1/********************************************************************
2 * COPYRIGHT:
374ca955 3 * Copyright (c) 1997-2003, International Business Machines Corporation and
b75a7d8f
A
4 * others. All Rights Reserved.
5 ********************************************************************/
6
7#ifndef SFDWCHIT_H
8#define SFDWCHIT_H
9
10#include "unicode/chariter.h"
11#include "intltest.h"
12
13class SimpleFwdCharIterator : public ForwardCharacterIterator {
14public:
374ca955 15 // not used -- SimpleFwdCharIterator(const UnicodeString& s);
b75a7d8f
A
16 SimpleFwdCharIterator(UChar *s, int32_t len, UBool adopt = FALSE);
17
18 virtual ~SimpleFwdCharIterator();
19
20 /**
21 * Returns true when both iterators refer to the same
22 * character in the same character-storage object.
23 */
374ca955 24 // not used -- virtual UBool operator==(const ForwardCharacterIterator& that) const;
b75a7d8f
A
25
26 /**
27 * Generates a hash code for this iterator.
28 */
29 virtual int32_t hashCode(void) const;
30
31 /**
32 * Returns a UClassID for this ForwardCharacterIterator ("poor man's
33 * RTTI").<P> Despite the fact that this function is public,
34 * DO NOT CONSIDER IT PART OF CHARACTERITERATOR'S API!
35 */
36 virtual UClassID getDynamicClassID(void) const;
37
38 /**
39 * Gets the current code unit for returning and advances to the next code unit
40 * in the iteration range
41 * (toward endIndex()). If there are
42 * no more code units to return, returns DONE.
43 */
44 virtual UChar nextPostInc(void);
45
46 /**
47 * Gets the current code point for returning and advances to the next code point
48 * in the iteration range
49 * (toward endIndex()). If there are
50 * no more code points to return, returns DONE.
51 */
52 virtual UChar32 next32PostInc(void);
53
54 /**
55 * Returns FALSE if there are no more code units or code points
56 * at or after the current position in the iteration range.
57 * This is used with nextPostInc() or next32PostInc() in forward
58 * iteration.
59 */
60 virtual UBool hasNext();
61
62protected:
63 SimpleFwdCharIterator() {}
64 SimpleFwdCharIterator(const SimpleFwdCharIterator &other)
65 : ForwardCharacterIterator(other) {}
66 SimpleFwdCharIterator &operator=(const SimpleFwdCharIterator&) { return *this; }
67private:
68 static const int32_t kInvalidHashCode;
69 static const int32_t kEmptyHashCode;
70
71 UChar *fStart, *fEnd, *fCurrent;
72 int32_t fLen;
73 UBool fBogus;
74 int32_t fHashCode;
75};
76
77#endif