class Poco::TextBufferIterator

Overview

An unidirectional iterator for iterating over characters in a buffer. Moreā€¦

#include <TextBufferIterator.h>

class TextBufferIterator
{
public:
    // construction

    TextBufferIterator();

    TextBufferIterator(
        const char* begin,
        const TextEncoding& encoding
        );

    TextBufferIterator(
        const char* begin,
        std::size_t size,
        const TextEncoding& encoding
        );

    TextBufferIterator(
        const char* begin,
        const char* end,
        const TextEncoding& encoding
        );

    TextBufferIterator(const char* end);
    TextBufferIterator(const TextBufferIterator& it);

    // methods

    TextBufferIterator&
    operator=(const TextBufferIterator& it);

    void
    swap(TextBufferIterator& it);

    int
    operator*() const;

    TextBufferIterator&
    operator++();

    TextBufferIterator
    operator++(int);

    bool
    operator==(const TextBufferIterator& it) const;

    bool
    operator!=(const TextBufferIterator& it) const;

    TextBufferIterator
    end() const;
};

Detailed Documentation

An unidirectional iterator for iterating over characters in a buffer.

The TextBufferIterator uses a TextEncoding object to work with multi-byte character encodings like UTF-8. Characters are reported in Unicode.

Example: Count the number of UTF-8 characters in a buffer.

UTF8Encoding utf8Encoding;
char buffer[] = "...";
TextBufferIterator it(buffer, utf8Encoding);
TextBufferIterator end(it.end());
int n = 0;
while (it != end) { ++n; ++it; }

NOTE: When an UTF-16 encoding is used, surrogate pairs will be reported as two separate characters, due to restrictions of the TextEncoding class.

For iterating over the characters in a std::string, see the TextIterator class.

Construction

TextBufferIterator()

Creates an uninitialized TextBufferIterator.

TextBufferIterator(
    const char* begin,
    const TextEncoding& encoding
    )

Creates a TextBufferIterator for the given buffer, which must be 0-terminated.

The encoding object must not be deleted as long as the iterator is in use.

TextBufferIterator(
    const char* begin,
    std::size_t size,
    const TextEncoding& encoding
    )

Creates a TextBufferIterator for the given buffer with the given size.

The encoding object must not be deleted as long as the iterator is in use.

TextBufferIterator(
    const char* begin,
    const char* end,
    const TextEncoding& encoding
    )

Creates a TextBufferIterator for the given range.

The encoding object must not be deleted as long as the iterator is in use.

TextBufferIterator(const char* end)

Creates an end TextBufferIterator for the given buffer.

TextBufferIterator(const TextBufferIterator& it)

Copy constructor.

Methods

TextBufferIterator&
operator=(const TextBufferIterator& it)

Assignment operator.

void
swap(TextBufferIterator& it)

Swaps the iterator with another one.

int
operator*() const

Returns the Unicode value of the current character.

If there is no valid character at the current position, -1 is returned.

TextBufferIterator&
operator++()

Prefix increment operator.

TextBufferIterator
operator++(int)

Postfix increment operator.

bool
operator==(const TextBufferIterator& it) const

Compares two iterators for equality.

bool
operator!=(const TextBufferIterator& it) const

Compares two iterators for inequality.

TextBufferIterator
end() const

Returns the end iterator for the range handled by the iterator.