# RunArray Class Reference

The `RunArray` class is a base class for building classes which represent data that is associated with runs of text. More...

`#include <RunArrays.h>`

Inheritance diagram for RunArray:

## Public Member Functions
| RunArray (const le_int32 *limits, le_int32 count)
| Construct a `RunArray` object from a pre-existing array of limit indices.
| RunArray (le_int32 initialCapacity)
| Construct an empty `RunArray` object.
virtual | ~RunArray ()
| The destructor; virtual so that subclass destructors are invoked as well.
le_int32 | getCount () const
| Get the number of entries in the limit indices array.
void | reset ()
| Reset the limit indices array.
le_int32 | getLimit () const
| Get the last limit index.
le_int32 | getLimit (le_int32 run) const
| Get the limit index for a particular run of text.
le_int32 | add (le_int32 limit)
| Add a limit index to the limit indices array and return the run index where it was stored.
virtual UClassID | getDynamicClassID () const
| ICU "poor man's RTTI", returns a UClassID for the actual class.
## Static Public Member Functions
static UClassID | getStaticClassID ()
| ICU "poor man's RTTI", returns a UClassID for this class.
## Protected Member Functions
virtual void | init (le_int32 capacity)
| Create a data array with the given initial size.
virtual void | grow (le_int32 capacity)
| Grow a data array to the given initial size.
## Protected Attributes
le_bool | fClientArrays
| Set by the constructors to indicate whether or not the client supplied the data arrays.

## Detailed Description

The `RunArray` class is a base class for building classes which represent data that is associated with runs of text.

This class maintains an array of limit indices into the text, subclasses provide one or more arrays of data.

Stable:
  ICU 3.2

Definition at line 48 of file RunArrays.h.

## Constructor & Destructor Documentation

RunArray::RunArray | ( | const le_int32 * | limits,
|  | le_int32 | count |
| ) |  |  | `[inline]`

Construct a `RunArray` object from a pre-existing array of limit indices.

Parameters:

  | limits | is an array of limit indices. This array must remain valid until the `RunArray` object is destroyed.
  | count | is the number of entries in the limit array.

Stable:
  ICU 3.2

Definition at line 234 of file RunArrays.h.

References RunArray().

Referenced by RunArray().

RunArray::RunArray | ( | le_int32 | initialCapacity | ) |

Construct an empty `RunArray` object.

Clients can add limit indices array using the `add` method.

Parameters:

  | initialCapacity | is the initial size of the limit indices array. If this value is zero, no array will be allocated.

See also:
  add

Stable:
  ICU 3.2

virtual RunArray::~RunArray | ( |  | ) | `[virtual]`

The destructor; virtual so that subclass destructors are invoked as well.

Stable:
  ICU 3.2

## Member Function Documentation

le_int32 RunArray::add | ( | le_int32 | limit | ) |

Add a limit index to the limit indices array and return the run index where it was stored.

If the array does not exist, it will be created by calling the `init` method. If it is full, it will be grown by calling the `grow` method.

If the `RunArray` object was created with a client-supplied limit indices array, this method will return a run index of -1.

Subclasses should not override this method. Rather they should provide a new `add` method which takes a limit index along with whatever other data they implement. The new `add` method should first call this method to grow the data arrays, and use the return value to store the data in their own arrays.

Parameters:

  | limit | is the limit index to add to the array.

Returns:
  the run index where the limit index was stored, or -1 if the limit index cannt be stored.

See also:
  init
  grow

Stable:
  ICU 3.2

le_int32 RunArray::getCount | ( |  | ) | const`[inline]`

Get the number of entries in the limit indices array.

Returns:
  the number of entries in the limit indices array.

Stable:
  ICU 3.2

Definition at line 240 of file RunArrays.h.

virtual UClassID RunArray::getDynamicClassID | ( | void |  | ) | const`[inline, virtual]`

ICU "poor man's RTTI", returns a UClassID for the actual class.

Stable:
  ICU 3.2

Implements UObject.

Reimplemented in FontRuns, LocaleRuns, and ValueRuns.

Definition at line 162 of file RunArrays.h.

le_int32 RunArray::getLimit | ( | le_int32 | run | ) | const`[inline]`

Get the limit index for a particular run of text.

Parameters:

  | run | is the run. This is an index into the limit index array.

Returns:
  the limit index for the run, or -1 if `run` is out of bounds.

Stable:
  ICU 3.2

Definition at line 250 of file RunArrays.h.

le_int32 RunArray::getLimit | ( |  | ) | const`[inline]`

Get the last limit index.

This is the number of characters in the text.

Returns:
  the last limit index.

Stable:
  ICU 3.2

Definition at line 259 of file RunArrays.h.

static UClassID RunArray::getStaticClassID | ( | void |  | ) | `[inline, static]`

ICU "poor man's RTTI", returns a UClassID for this class.

Stable:
  ICU 3.2

Reimplemented in FontRuns, LocaleRuns, and ValueRuns.

Definition at line 155 of file RunArrays.h.

Referenced by ValueRuns::getDynamicClassID(), LocaleRuns::getDynamicClassID(), and FontRuns::getDynamicClassID().

virtual void RunArray::grow | ( | le_int32 | capacity | ) | `[protected, virtual]`

Grow a data array to the given initial size.

This method will be called by the `add` method if the limit indices array is full. Subclasses which override this method must also call it from the overriding method to grow the limit indices array.

Parameters:

  | capacity | is the initial size of the data array.

See also:
  add

Stable:
  ICU 3.2

Reimplemented in FontRuns, LocaleRuns, and ValueRuns.

virtual void RunArray::init | ( | le_int32 | capacity | ) | `[protected, virtual]`

Create a data array with the given initial size.

This method will be called by the `add` method if there is no limit indices array. Subclasses which override this method must also call it from the overriding method to create the limit indices array.

Parameters:

  | capacity | is the initial size of the data array.

See also:
  add

Stable:
  ICU 3.2

Reimplemented in FontRuns, LocaleRuns, and ValueRuns.

void RunArray::reset | ( | void |  | ) | `[inline]`

Reset the limit indices array.

This method sets the number of entries in the limit indices array to zero. It does not delete the array.

Note: Subclass arrays will also be reset and not deleted.

Stable:
  ICU 3.6

Definition at line 245 of file RunArrays.h.

## Field Documentation

le_bool RunArray::fClientArrays`[protected]`

Set by the constructors to indicate whether or not the client supplied the data arrays.

If they were supplied by the client, the `add` method won't change the arrays and the destructor won't delete them.

Stable:
  ICU 3.2

Definition at line 202 of file RunArrays.h.

The documentation for this class was generated from the following file:

- RunArrays.h

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines