NAME ^

src/pmc/fixedpmcarray.pmc - fixed size array for PMCs only

DESCRIPTION ^

This class, FixedPMCArray, implements an array of fixed size which stores PMCs. It puts things into Integer, Float, or String PMCs as appropriate

Note ^

The flag PObj_private0_FLAG is used in the NameSpace PMC and should never be set for user arrays.

Functions ^

METHOD void sort(PMC *cmp_func)

Sort this array, optionally using the provided cmp_func

Methods ^

void init()

Initializes the array.

void morph(INTVAL type)

Const PMCs must have a morph().

void destroy()

Destroys the array.

PMC *clone()

Creates and returns a copy of the array.

INTVAL get_bool()

Returns whether the array has any elements (meaning been initialized, for a fixed sized array).

INTVAL elements()

INTVAL get_integer()

Returns the number of elements in the array.

STRING *get_string()

Returns the number of elements in the array as a Parrot string. (??? -leo)

STRING *get_repr()

Returns a string representation of the array contents. TODO implement freeze/thaw and use that instead.

INTVAL get_integer_keyed_int(INTVAL key)

Returns the integer value of the element at index key.

INTVAL get_integer_keyed(PMC *key)

Returns the integer value of the element at index *key.

FLOATVAL get_number_keyed_int(INTVAL key)

Returns the floating-point value of the element at index key.

FLOATVAL get_number_keyed(PMC *key)

Returns the floating-point value of the element at index *key.

STRING *get_string_keyed_int(INTVAL key)

Returns the Parrot string value of the element at index key.

STRING *get_string_keyed(PMC *key)

Returns the Parrot string value of the element at index *key.

PMC *get_pmc_keyed_int(INTVAL key)

Returns the PMC value of the element at index key.

PMC *get_pmc_keyed(PMC *key)

Returns the PMC value of the element at index *key.

void set_integer_native(INTVAL size)

Sizes the array to size elements. Can't be used to resize an array.

void set_integer_keyed_int(INTVAL key, INTVAL value)

Sets the integer value of the element at index key to value.

void set_integer_keyed(PMC *key, INTVAL value)

Sets the integer value of the element at index key to value.

void set_number_keyed_int(INTVAL key, FLOATVAL value)

Sets the floating-point value of the element at index key to value.

void set_number_keyed(PMC *key, FLOATVAL value)

Sets the floating-point value of the element at index key to value.

void set_string_keyed_int(INTVAL key, STRING *value)

Sets the Parrot string value of the element at index key to value.

void set_string_keyed(PMC *key, STRING *value)

Sets the string value of the element at index key to value.

void set_pmc_keyed_int(INTVAL key, PMC *src)

Sets the PMC value of the element at index key to *src.

void set_pmc_keyed(PMC *key, PMC *value)

Sets the PMC at index key to value.

INTVAL is_equal(PMC *value)

The == operation. Compares two array to hold equal elements.

PMC *slice(PMC *key, INTVAL f)

Return a new iterator for the slice PMC key if f == 0.

Return a new pythonic array slice if f == 1.

PMC *get_iter()

Return a new iterator for SELF.

INTVAL exists_keyed_int(INTVAL key)

INTVAL exists_keyed_int(PMC *key)

Returns TRUE is the element at key exists; otherwise returns false.

void visit(visit_info *info)

This is used by freeze/thaw to visit the contents of the array.

*info is the visit info, (see include/parrot/pmc_freeze.h).

void freeze(visit_info *info)

Used to archive the array.

void thaw(visit_info *info)

Used to unarchive the array.

INTVAL defined_keyed_int(INTVAL key)

Returns TRUE is the element at key is defined; otherwise returns false.

TODO ^

SEE ALSO ^

docs/pdds/pdd17_basic_types.pod.

HISTORY ^

Initial version 2004.06.11 by Matt Fowles


parrot