uchriter.h
Go to the documentation of this file.
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
* Copyright (C) 1998-2005, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
#ifndef UCHRITER_H
#define UCHRITER_H
#include "unicode/utypes.h"
#if U_SHOW_CPLUSPLUS_API
#include "unicode/chariter.h"
U_NAMESPACE_BEGIN
class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
public:
UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length);
UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length,
int32_t position);
UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length,
int32_t textBegin,
int32_t textEnd,
int32_t position);
UCharCharacterIterator(const UCharCharacterIterator& that);
virtual ~UCharCharacterIterator();
UCharCharacterIterator&
operator=(const UCharCharacterIterator& that);
virtual bool operator==(const ForwardCharacterIterator& that) const override;
virtual int32_t hashCode() const override;
virtual UCharCharacterIterator* clone() const override;
virtual char16_t first() override;
virtual char16_t firstPostInc() override;
virtual UChar32 first32() override;
virtual UChar32 first32PostInc() override;
virtual char16_t last() override;
virtual UChar32 last32() override;
virtual char16_t setIndex(int32_t position) override;
virtual UChar32 setIndex32(int32_t position) override;
virtual char16_t current() const override;
virtual UChar32 current32() const override;
virtual char16_t next() override;
virtual char16_t nextPostInc() override;
virtual UChar32 next32() override;
virtual UChar32 next32PostInc() override;
virtual UBool hasNext() override;
virtual char16_t previous() override;
virtual UChar32 previous32() override;
virtual UBool hasPrevious() override;
virtual int32_t move(int32_t delta, EOrigin origin) override;
#ifdef move32
// One of the system headers right now is sometimes defining a conflicting macro we don't use
#undef move32
#endif
virtual int32_t move32(int32_t delta, EOrigin origin) override;
void setText(ConstChar16Ptr newText, int32_t newTextLength);
virtual void getText(UnicodeString& result) override;
static UClassID U_EXPORT2 getStaticClassID();
virtual UClassID getDynamicClassID() const override;
protected:
UCharCharacterIterator();
const char16_t* text;
};
U_NAMESPACE_END
#endif /* U_SHOW_CPLUSPLUS_API */
#endif
chariter.h
C++ API: Character Iterator.
icu::CharacterIterator
Abstract class that defines an API for iteration on text objects.
Definition: chariter.h:361
icu::CharacterIterator::EOrigin
EOrigin
Origin enumeration for the move() and move32() functions.
Definition: chariter.h:367
icu::ConstChar16Ptr
const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
Definition: char16ptr.h:149
icu::ForwardCharacterIterator
Abstract class that defines an API for forward-only iteration on text objects.
Definition: chariter.h:94
icu::UCharCharacterIterator
A concrete subclass of CharacterIterator that iterates over the characters (code units or code points...
Definition: uchriter.h:38
icu::UCharCharacterIterator::nextPostInc
virtual char16_t nextPostInc() override
Gets the current code unit for returning and advances to the next code unit in the iteration range (t...
icu::UCharCharacterIterator::move
virtual int32_t move(int32_t delta, EOrigin origin) override
Moves the current position relative to the start or end of the iteration range, or relative to the cu...
icu::UCharCharacterIterator::UCharCharacterIterator
UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length, int32_t textBegin, int32_t textEnd, int32_t position)
Create an iterator over the char16_t array referred to by "textPtr".
icu::UCharCharacterIterator::UCharCharacterIterator
UCharCharacterIterator(const UCharCharacterIterator &that)
Copy constructor.
icu::UCharCharacterIterator::next
virtual char16_t next() override
Advances to the next code unit in the iteration range (toward endIndex()), and returns that code unit...
icu::UCharCharacterIterator::setText
void setText(ConstChar16Ptr newText, int32_t newTextLength)
Sets the iterator to iterate over a new range of text.
icu::UCharCharacterIterator::previous32
virtual UChar32 previous32() override
Advances to the previous code point in the iteration range (toward startIndex()), and returns that co...
icu::UCharCharacterIterator::setIndex32
virtual UChar32 setIndex32(int32_t position) override
Sets the iterator to refer to the beginning of the code point that contains the "position"-th code un...
icu::UCharCharacterIterator::last
virtual char16_t last() override
Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit.
icu::UCharCharacterIterator::first32
virtual UChar32 first32() override
Sets the iterator to refer to the first code point in its iteration range, and returns that code unit...
icu::UCharCharacterIterator::last32
virtual UChar32 last32() override
Sets the iterator to refer to the last code point in its iteration range, and returns that code unit.
icu::UCharCharacterIterator::first
virtual char16_t first() override
Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit.
icu::UCharCharacterIterator::previous
virtual char16_t previous() override
Advances to the previous code unit in the iteration range (toward startIndex()), and returns that cod...
icu::UCharCharacterIterator::UCharCharacterIterator
UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length, int32_t position)
Create an iterator over the char16_t array referred to by "textPtr".
icu::UCharCharacterIterator::hashCode
virtual int32_t hashCode() const override
Generates a hash code for this iterator.
icu::UCharCharacterIterator::getStaticClassID
static UClassID getStaticClassID()
Return a class ID for this class (not really public)
icu::UCharCharacterIterator::move32
virtual int32_t move32(int32_t delta, EOrigin origin) override
Moves the current position relative to the start or end of the iteration range, or relative to the cu...
icu::UCharCharacterIterator::next32
virtual UChar32 next32() override
Advances to the next code point in the iteration range (toward endIndex()), and returns that code poi...
icu::UCharCharacterIterator::clone
virtual UCharCharacterIterator * clone() const override
Returns a new UCharCharacterIterator referring to the same character in the same range of the same st...
icu::UCharCharacterIterator::getDynamicClassID
virtual UClassID getDynamicClassID() const override
Return a class ID for this object (not really public)
icu::UCharCharacterIterator::operator==
virtual bool operator==(const ForwardCharacterIterator &that) const override
Returns true if the iterators iterate over the same range of the same string and are pointing at the ...
icu::UCharCharacterIterator::getText
virtual void getText(UnicodeString &result) override
Copies the char16_t array under iteration into the UnicodeString referred to by "result".
icu::UCharCharacterIterator::firstPostInc
virtual char16_t firstPostInc() override
Sets the iterator to refer to the first code unit in its iteration range, returns that code unit,...
icu::UCharCharacterIterator::operator=
UCharCharacterIterator & operator=(const UCharCharacterIterator &that)
Assignment operator.
icu::UCharCharacterIterator::current32
virtual UChar32 current32() const override
Returns the code point the iterator currently refers to.
icu::UCharCharacterIterator::~UCharCharacterIterator
virtual ~UCharCharacterIterator()
Destructor.
icu::UCharCharacterIterator::current
virtual char16_t current() const override
Returns the code unit the iterator currently refers to.
icu::UCharCharacterIterator::hasPrevious
virtual UBool hasPrevious() override
Returns false if there are no more code units or code points before the current position in the itera...
icu::UCharCharacterIterator::first32PostInc
virtual UChar32 first32PostInc() override
Sets the iterator to refer to the first code point in its iteration range, returns that code point,...
icu::UCharCharacterIterator::UCharCharacterIterator
UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length)
Create an iterator over the char16_t array referred to by "textPtr".
icu::UCharCharacterIterator::next32PostInc
virtual UChar32 next32PostInc() override
Gets the current code point for returning and advances to the next code point in the iteration range ...
icu::UCharCharacterIterator::text
const char16_t * text
Protected member text.
Definition: uchriter.h:385
icu::UCharCharacterIterator::UCharCharacterIterator
UCharCharacterIterator()
Protected constructor.
icu::UCharCharacterIterator::hasNext
virtual UBool hasNext() override
Returns false if there are no more code units or code points at or after the current position in the ...
icu::UCharCharacterIterator::setIndex
virtual char16_t setIndex(int32_t position) override
Sets the iterator to refer to the "position"-th code unit in the text-storage object the iterator ref...
icu::UnicodeString
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:296
UChar32
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition: umachine.h:427
UBool
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition: umachine.h:247
UClassID
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:96
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
U_COMMON_API
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside.
Definition: utypes.h:300