NAME
src/pmc/hash.pmc - Hash PMC
DESCRIPTION
Hash PMC wraps Parrot's _hash to provide a high-level API:
- Convert between various types to use as hash keys.
- Convert between various types to use as hash values.
- Handle compound Keys for nested Hash/Array lookups.
- Provide HashIteratorto iterate overHash.
By default Hash uses string keys and PMC values.
Methods set_key_type and set_value_type may be used to switch key and values type.
For PMC keys hash value is calculated using VTABLE get_hashvalue function.
These are the vtable functions for the Hash PMC.
Functions
- void init()Initializes the instance.
- void destroy()Free hash structure.
- void mark()Marks the hash as live.
- PMC *clone()Creates and returns a clone of the hash.
- void set_pointer(void *ptr)Use
- void set_integer(INTVAL type)
- void set_key_type(INTVAL type)Reset Hash to use different keys.
See enum
- METHOD get_key_type()Return type of keys in Hash.
- METHOD set_value_type(INTVAL type)Reset Hash to use different value-type for stored items.
If there is no previous _hash was set defaults to STRING* keys.NB: this method will destroy all old data!
- void *get_pointer()Get a pointer to this PMC's Hash*.
- INTVAL get_integer()
- FLOATVAL get_number()Returns the size of the hash.
- STRING *get_string()Returns a string representation of the hash,
showing its class name and memory address.
- STRING *get_repr()Return a representation of the hash contents.
- INTVAL get_integer_keyed_str(STRING *key)
- INTVAL get_integer_keyed_int(INTVAL key)
- INTVAL get_integer_keyed(PMC *key)Returns the integer value for the element at
- void set_integer_keyed(PMC *key, INTVAL value)
- void set_integer_keyed_str(STRING *key, INTVAL value)
- FLOATVAL get_number_keyed_str(STRING *key)
- FLOATVAL get_number_keyed_int(INTVAL key)
- FLOATVAL get_number_keyed(PMC *key)Returns the floating-point value for the element at
- STRING *get_string_keyed_str(STRING *key)
- STRING *get_string_keyed_int(INTVAL key)
- STRING *get_string_keyed(PMC *key)Returns the string value for the element at
- void set_string_keyed(PMC *key, STRING *value)
- void set_string_keyed_str(STRING *key, STRING *value)
- PMC *get_pmc_keyed(PMC *key)
- PMC *get_pmc_keyed_str(STRING *key)
- PMC *get_pmc_keyed_int(INTVAL key)Returns the PMC value for the element at
- void set_number_keyed(PMC *key, FLOATVAL value)
- void set_number_keyed_str(STRING *key, FLOATVAL value)Sets
- void set_pmc_keyed(PMC *dest_key, PMC *value)
- void set_pmc_keyed_str(STRING *key, PMC *value)Sets
- INTVAL exists_keyed_str(STRING *key)
- INTVAL exists_keyed(PMC *key)Returns whether a key
- INTVAL defined_keyed_str(STRING *key)
- INTVAL defined_keyed(PMC *key)Returns whether the value for
- void delete_keyed_str(STRING *key)
- void delete_keyed(PMC *key)Deletes the element associated with
- INTVAL get_bool()Returns true if the hash size is not zero.
- INTVAL elements()Returns the number of elements in the hash.
- PMC *get_iter()Return a new iterator.
- INTVAL is_same(const PMC *other)Returns whether the hash is the same as
- INTVAL is_equal(PMC *value)The
- PMC *slice(PMC *key)Return a new iterator for the slice PMC
- void visit(PMC *info)Used during archiving to visit the elements in the hash.
- void freeze(PMC *info)Used to archive the hash.
- void thaw(PMC *info)Used to unarchive the hash.
ptr as this PMC's Hash*.
Hash_key_type for possible values.NB: this method will destroy all old data!
*key.
*key.
*key.
*key.
value as the value for *key.
*value as the value for *key.
*key exists in the hash.
*key is defined.
*key.
*other.
== operation.Check if two hashes hold the same keys and values.
key
SEE ALSO
docs/pdds/pdd08_keys.pod.
