NAME
src/pmc/object.pmc - An instance of a class
DESCRIPTION
Implements an instance of a class.
Functions
- static INTVAL get_attrib_index(PARROT_INTERP, PMC *self, STRING *name)
- static INTVAL get_attrib_index_keyed(PARROT_INTERP, PMC *self, PMC *key, STRING *name)This variation bypasses the cache and finds the index of a particular parent's attribute in an object's attribute store and returns it.
Returns
- static PMC * find_cached(PARROT_INTERP, PMC *_class, STRING *name)
- static void cache_method(PARROT_INTERP, PMC *_class, STRING *name, PMC *method)
- void init()Raises an exception; you can only instantiate objects from a class.
- void init_pmc(PMC *class)Raises an exception; you can only instantiate objects from a class.
- void destroy()Just to avoid the automatic generation of one.
- STRING *name()Returns the fully qualified name of the object's class.
- void mark()Mark any referenced strings and PMCs.
- PMC *get_attr_str(STRING *name)Gets the value of an attribute for this object.
Will find the first attribute of the given name walking up the inheritance tree.
- PMC *get_attr_keyed(PMC *key, STRING *name)Gets the value of an attribute for this object.
Will only look for attributes defined in the parent identified by the given key.
- void set_attr_str(STRING *name, PMC *value)Sets the value of an attribute for this object.
Will set the first attribute of the given name walking up the inheritance tree.
- void set_attr_keyed(PMC *key, STRING *name, PMC *value)Sets the value of an attribute for this object.
Will only set attributes defined in the parent identified by the given key.
- PMC *find_method(STRING *name)Queries this object's class to find the method with the given name.
- INTVAL get_integer()Invoke the PIR-defined vtable override,
or call the default get_integer.
- PMC *get_class()Get the class PMC representing the class that this object is an instance of.
- PMC *get_namespace()Get the namespace PMC associated with the class that this object is an instance of.
- INTVAL can(STRING *method_name)Returns 0 if the class does not have a method with the given name and a non-zero value if it does.
- INTVAL isa_pmc(PMC *classname)Returns whether the object's class is or inherits from
- INTVAL isa(STRING *classname)Returns whether the class is or inherits from
- INTVAL does(STRING *role_name)Returns whether the object's class does the role with name
- INTVAL does_pmc(PMC *role)Returns whether the object's class does
- opcode_t *invoke(void *next)Invokes the object (if this vtable function is overridden).
- INTVAL type()Returns the integer type of the object's class.
- PMC * clone()Creates a clone of the object.
- void visit(PMC *info)This is used by freeze/thaw to visit the contents of the object.
- void freeze(PMC *info)
- void thaw(PMC *info)Realias magically generated methods so they don't wreak havoc.
- void thawfinish(PMC *info)Called after the object has been thawed.
- PMC * share_ro()Used to mark a PMC as read-only shared.
- void morph(PMC* type)Changes the PMC to a PMC of a new type
-1 if the attribute does not exist.
*classname.
*classname.
*role_name.
*role.
*info is the visit info,
(see include/parrot/pmc_freeze.h).
