src/pmc/key.pmc - Key PMC


These are the vtable functions for the Key PMC class.

Methods ^

void init()

Initializes the key.

PMC *clone()

Creates and returns a clone of the key.

void mark()

Marks the key as live.

INTVAL get_integer()

Returns the integer value of the key.

FLOATVAL get_number()

Returns the floating-point number value of the key.

STRING *get_string()

Returns the Parrot string value of the key.

PMC *get_pmc()

Returns the PMC value of the key.

void set_integer_native(INTVAL value)

void set_number_native(FLOATVAL value)

Sets the value of the key to value.

void set_string_native(STRING *value)

void set_pmc(PMC *value)

Sets the value of the key to *value.

void push_pmc(PMC *value)

Appends *value to the key.

PMC *shift_pmc()

Returns the next key.

Actually doesn't remove the entry but might be useful to traverse a key chain.

Iterator Interface ^

PMC *get_pmc_keyed(PMC *key)

Returns the key itself.

PMC *nextkey_keyed(PMC *key, INTVAL what)

Returns the next key relative to the location specified in what. PMC_int_val(-1) means end of iteration.

void visit(visit_info *info)

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

void freeze(visit_info *info)

Archives the Key.

void thaw(visit_info *info)

Unarchives the Key.

void thawfinish(visit_info *info)

Called after the Key has been thawed: convert last PMC_NULL key to NULL.