ICU 66.0.1  66.0.1
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
icu::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 icu::RunArray:
icu::UObject icu::UMemory icu::FontRuns icu::LocaleRuns icu::ValueRuns

Public Member Functions

 RunArray (const le_int32 *limits, le_int32 count)
 Construct a RunArray object from a pre-existing array of limit indices. More...
 
 RunArray (le_int32 initialCapacity)
 Construct an empty RunArray object. More...
 
virtual ~RunArray ()
 The destructor; virtual so that subclass destructors are invoked as well. More...
 
le_int32 getCount () const
 Get the number of entries in the limit indices array. More...
 
void reset ()
 Reset the limit indices array. More...
 
le_int32 getLimit () const
 Get the last limit index. More...
 
le_int32 getLimit (le_int32 run) const
 Get the limit index for a particular run of text. More...
 
le_int32 add (le_int32 limit)
 Add a limit index to the limit indices array and return the run index where it was stored. More...
 
virtual UClassID getDynamicClassID () const
 ICU "poor man's RTTI", returns a UClassID for the actual class. More...
 
- Public Member Functions inherited from icu::UObject
virtual ~UObject ()
 Destructor. More...
 

Static Public Member Functions

static UClassID getStaticClassID ()
 ICU "poor man's RTTI", returns a UClassID for this class. More...
 

Protected Member Functions

virtual void init (le_int32 capacity)
 Create a data array with the given initial size. More...
 
virtual void grow (le_int32 capacity)
 Grow a data array to the given initial size. More...
 

Protected Attributes

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

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 50 of file RunArrays.h.

Constructor & Destructor Documentation

◆ RunArray() [1/2]

icu::RunArray::RunArray ( const le_int32 *  limits,
le_int32  count 
)
inline

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

Parameters
limitsis an array of limit indices. This array must remain valid until the RunArray object is destroyed.
countis the number of entries in the limit array.
Stable:
ICU 3.2

Definition at line 236 of file RunArrays.h.

◆ RunArray() [2/2]

icu::RunArray::RunArray ( le_int32  initialCapacity)

Construct an empty RunArray object.

Clients can add limit indices array using the add method.

Parameters
initialCapacityis 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

◆ ~RunArray()

virtual icu::RunArray::~RunArray ( )
virtual

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

Stable:
ICU 3.2

Member Function Documentation

◆ add()

le_int32 icu::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
limitis 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

◆ getCount()

le_int32 icu::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 242 of file RunArrays.h.

◆ getDynamicClassID()

virtual UClassID icu::RunArray::getDynamicClassID ( void  ) const
inlinevirtual

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

Stable:
ICU 3.2

Reimplemented from icu::UObject.

Reimplemented in icu::ValueRuns, icu::LocaleRuns, and icu::FontRuns.

Definition at line 164 of file RunArrays.h.

◆ getLimit() [1/2]

le_int32 icu::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 261 of file RunArrays.h.

◆ getLimit() [2/2]

le_int32 icu::RunArray::getLimit ( le_int32  run) const
inline

Get the limit index for a particular run of text.

Parameters
runis 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 252 of file RunArrays.h.

◆ getStaticClassID()

static UClassID icu::RunArray::getStaticClassID ( void  )
inlinestatic

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

Stable:
ICU 3.2

Definition at line 157 of file RunArrays.h.

Referenced by icu::FontRuns::getDynamicClassID().

◆ grow()

virtual void icu::RunArray::grow ( le_int32  capacity)
protectedvirtual

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
capacityis the initial size of the data array.
See also
add
Stable:
ICU 3.2

Reimplemented in icu::ValueRuns, icu::LocaleRuns, and icu::FontRuns.

Referenced by icu::FontRuns::getDynamicClassID().

◆ init()

virtual void icu::RunArray::init ( le_int32  capacity)
protectedvirtual

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
capacityis the initial size of the data array.
See also
add
Stable:
ICU 3.2

Reimplemented in icu::ValueRuns, icu::LocaleRuns, and icu::FontRuns.

Referenced by icu::FontRuns::getDynamicClassID().

◆ reset()

void icu::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 247 of file RunArrays.h.

Field Documentation

◆ fClientArrays

le_bool icu::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 204 of file RunArrays.h.


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