NAME
src/pmc/default.pmc - Abstract root class
DESCRIPTION
These are the vtable functions for the default PMC class.
All methods which are not defined here get a default implementation generated from src/vtable.tbl by tools/build/pmc2c.pl.
Functions
- static STRING * caller(PARROT_INTERP, PMC *pmc)Returns a C string for the name of
- static void cant_do_method(PARROT_INTERP, PMC *pmc, int index)Throws an exception "$methname() not implemented in class '$class'",
used by all unimplemented messages.
- static void cant_do_write_method(PARROT_INTERP, PMC *pmc, int index)Throws an exception "$methname() on read-only instance of '$class'",
used by all updating messages on read-only instances.
- static INTVAL check_set_std_props(PARROT_INTERP, PMC *pmc, const STRING *key, PMC *value)Called from
- static void propagate_std_props(PARROT_INTERP, PMC *self, PMC *prop_hash)Set pending standard properties in
- static INTVAL has_pending_std_props(const PMC *self)Returns true if propagate_std_props() would create a non-empty prophash.
- static PMC* check_get_std_props(PARROT_INTERP, const PMC *self, const STRING *key)Checks if we can infer the value of
- static PMC* make_prop_hash(PARROT_INTERP, PMC *self)Create a property hash for
*pmc.
setprop().Returns a true value if setprop() can avoid actually setting a property in the prophash.
If it returns true,
the property setting will be reflected in a future call to propagate_std_props()
prop_hash.
key property from self without looking at its prophash.
Returns PMCNULL if not,
returns the value otherwise.
self.
Returns the created hash.
Inferred properties will be added to the hash.Methods
- void init()Does nothing.
- void init_pmc(PMC *initializer)With a null
- void init_int(INTVAL initvalue)Calls
- void destroy()Does nothing.
- PMC *instantiate(PMC *init)Default fallback.
Creates a new PMC of the type of the class SELF and calls init().
- void mark()Panics with a "no custom mark routine defined" error message.
- PMC *getprop(STRING *key)Returns the property for
- void setprop(STRING *key, PMC *value)Sets the property for
- void delprop(STRING *key)Deletes the property for
- PMC *getprops()Returns the PMC's properties or the NULL PMC if no properties exist.
- INTVAL type()Returns the PMC's type.
- STRING *name()Returns the name of the PMC.
- void PMC *add_attribute(STRING *name, PMC *type)Throws an exception,
as you can only add an attribute to something Class-y or Role-y.
- PMC *get_namespaceReturn the namespace for this PMC.
- PMC *find_method(STRING *method_name)Looks up the method for
- void add_method(STRING *method_name, PMC *sub)Store the method as a global in the namespace of this class.
- INTVAL get_integer_keyed_int(INTVAL key)Converts
- FLOATVAL get_number_keyed_int(INTVAL key)Converts
- STRING *get_string_keyed_int(INTVAL key)Converts
- PMC *get_pmc_keyed_int(INTVAL key)Converts
- void *get_pointer()Returns the address of the PMC.
- INTVAL is_same(PMC *value)Returns whether the PMC is the same PMC as
- void assign_pmc(PMC *value)
- void assign_string_native(PMC *value)Defaults fall back to
- void morph(PMC* type)Changes the PMC to a PMC of a new type
- void set_integer_keyed_int(INTVAL key, INTVAL value)Converts
- void set_number_keyed_int(INTVAL key, FLOATVAL value)Converts
- void set_string_keyed_int(INTVAL key, STRING *string)Converts
- void set_pmc_keyed_int(INTVAL key, PMC *value)Converts
- INTVAL hashvalue()Calculate hashvalue for PMC.
Default behaviour stringify and use string.
- INTVAL is_equal(PMC *value)Default fallback.
Performs a multiple dispatch call for 'is_equal'.
- INTVAL is_equal_num(PMC *value)Default fallback.
Performs a multiple dispatch call for 'is_equal_num'.
- INTVAL is_equal_string(PMC *value)Default fallback.
Performs a multiple dispatch call for 'is_equal'.
- INTVAL exists_keyed_int(INTVAL key)Converts
- INTVAL defined()Returns true.
- INTVAL defined_keyed_int(INTVAL key)Converts
- void delete_keyed_int(INTVAL key)Converts
- INTVAL can(STRING *method)Reports whether the PMC "can" perform
- INTVAL does(STRING *interface_name)Reports whether the PMC "does" perform
- INTVAL does_pmc(PMC *role)Reports whether the PMC "does" the
- INTVAL isa_pmc(PMC *_class)Reports whether the PMC "isa"
- INTVAL isa(STRING *_class)Reports whether the PMC "isa"
- PMC *inspect_str(STRING *what)Provides introspection of a specific piece of information about the PMC.
- PMC *inspect()Returns a Hash describing the class,
with key/value pairs as described in inspect_str.
- PMC *get_class()Returns SELF.
A PMC is its own class.
- PMC *get_attr_keyed(PMC *key, STRING *name)Default version of keyed attribute lookups.
Discards the key and does a lookup by the string name passed in.
- void set_attr_keyed(PMC *key, STRING *name, PMC *value)Default version of keyed attribute set.
Discards the key and does a set by the string name passed in.
- void add_parent(PMC *parent)Add class
- void visit(PMC *info)Used by GC to mark the PMC.
- PMC* clone()Clones this PMC.
By default,
this just does a freeze and thaw.
- void freeze(PMC *info)Does nothing.
- void thaw(PMC *info)Initializes the PMC during unarchiving.
- void thawfinish(PMC *info)Does nothing.
- PMC *add(PMC *value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'add'.
- PMC *add_int(INTVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'add_int'.
- PMC *add_float(FLOATVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'add_float'.
- void i_add(PMC *value)Default fallback.
Performs a multiple dispatch call for 'i_add'.
- void i_add_int(INTVAL value)Default fallback.
Performs a multiple dispatch call for 'i_add_int'.
- void i_add_float(FLOATVAL value)Default fallback.
Performs a multiple dispatch call for 'i_add_float'.
- PMC *subtract(PMC *value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'subtract'.
- PMC *subtract_int(INTVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'subtract_int'.
- PMC *subtract_float(FLOATVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'subtract_float'.
- void i_subtract(PMC *value)Default fallback.
Performs a multiple dispatch call for 'i_subtract'.
- void i_subtract_int(INTVAL value)Default fallback.
Performs a multiple dispatch call for 'i_subtract_int'.
- void i_subtract_float(FLOATVAL value)Default fallback.
Performs a multiple dispatch call for 'i_subtract_float'.
- PMC *multiply(PMC *value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'multiply'.
- PMC *multiply_int(INTVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'multiply_int'.
- PMC *multiply_float(FLOATVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'multiply_float'.
- void i_multiply(PMC *value)Default fallback.
Performs a multiple dispatch call for 'i_multiply'.
- void i_multiply_int(INTVAL value)Default fallback.
Performs a multiple dispatch call for 'i_multiply_int'.
- void i_multiply_float(FLOATVAL value)Default fallback.
Performs a multiple dispatch call for 'i_multiply_float'.
- PMC *divide(PMC *value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'divide'.
- PMC *divide_int(INTVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'divide_int'.
- PMC *divide_float(FLOATVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'divide_float'.
- void i_divide(PMC *value)Default fallback.
Performs a multiple dispatch call for 'i_divide'.
- void i_divide_int(INTVAL value)Default fallback.
Performs a multiple dispatch call for 'i_divide_int'.
- void i_divide_float(FLOATVAL value)Default fallback.
Performs a multiple dispatch call for 'i_divide_float'.
- PMC *floor_divide(PMC *value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'floor_divide'.
- PMC *floor_divide_int(INTVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'floor_divide_int'.
- PMC *floor_divide_float(FLOATVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'floor_divide_float'.
- void i_floor_divide(PMC *value)Default fallback.
Performs a multiple dispatch call for 'i_floor_divide'.
- void i_floor_divide_int(INTVAL value)Default fallback.
Performs a multiple dispatch call for 'i_floor_divide_int'.
- void i_floor_divide_float(FLOATVAL value)Default fallback.
Performs a multiple dispatch call for 'i_floor_divide_float'.
- PMC *modulus(PMC *value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'modulus'.
- PMC *modulus_int(INTVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'modulus_int'.
- PMC *modulus_float(FLOATVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'modulus_float'.
- void i_modulus(PMC *value)Default fallback.
Performs a multiple dispatch call for 'i_modulus'.
- void i_modulus_int(INTVAL value)Default fallback.
Performs a multiple dispatch call for 'i_modulus_int'.
- void i_modulus_float(FLOATVAL value)Default fallback.
Performs a multiple dispatch call for 'i_modulus_float'.
- INTVAL cmp(PMC *value)Default fallback.
Performs a multiple dispatch call for 'cmp'.
- INTVAL cmp_num(PMC *value)Default fallback.
Performs a multiple dispatch call for 'cmp_num'.
- INTVAL cmp_string(PMC *value)Default fallback.
Performs a multiple dispatch call for 'cmp_string'.
- PMC *cmp_pmc(PMC *value)Default fallback.
Performs a multiple dispatch call for 'cmp_pmc'.
- PMC *concatenate(PMC *value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'concatenate'.
- PMC *concatenate_str(STRING *value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'concatenate_str'.
- void i_concatenate(PMC *value)Default fallback.
Performs a multiple dispatch call for 'i_concatenate'.
- void i_concatenate_str(STRING *value)Default fallback.
Performs a multiple dispatch call for 'i_concatenate_str'.
- PMC *repeat(PMC *value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'repeat'.
- PMC *repeat_int(INTVAL value, PMC *dest)Default fallback.
Performs a multiple dispatch call for 'repeat_int'.
- void i_repeat(PMC *value)Default fallback.
Performs a multiple dispatch call for 'i_repeat'.
- void i_repeat_int(INTVAL value)Default fallback.
Performs a multiple dispatch call for 'i_repeat_int'.
initializer,
calls init(),
else throws an exception.
init() and set_integer_native(initvalue).
Default implementation to allow more usages of init_int without having to implement it everywhere.
*key.
If no property is defined then the NULL PMC is returned.
*key to *value.
*key.
*method_name and returns it.
If no method is found then NULL is returned.
key to a PMC key and returns the result of calling get_integer_keyed() with it.
key to a PMC key and returns the result of calling get_number_keyed() with it.
key to a PMC key and returns the result of calling get_string_keyed() with it.
key to a PMC key and returns the result of calling get_pmc_keyed() with it.
value (whether they're the same pointer).
set_pmc and set_string_native.
key to a PMC key and calls set_integer_keyed() with it and value.
key to a PMC key and calls set_number_keyed() with it and value.
key to a PMC key and calls set_string_keyed() with it and value.
key to a PMC key and calls set_pmc_keyed() with it and value.
key to a PMC key and returns the result of calling exists_keyed() with it.
key to a PMC key and returns the result of calling defined_keyed() with it.
key to a PMC key and calls delete_keyed() with it.
method.
If the PMC implements the vtable function method,
true (1) is returned; otherwise,
false (0) is returned.
interface_name.
If the interface interface_name is found in the PMC's interface list,
true (1) is returned; otherwise,
false (0) is returned.
role.
_class.
If the class _class is found in the PMC's class hierarchy,
true (1) is returned; otherwise,
false (0) is returned.
_class.
If the class _class is found in the PMC's class hierarchy,
true (1) is returned; otherwise,
false (0) is returned.
parent to the list of our parents.
