NAME ^

classes/parrotclass.pmc - Parrot Class

DESCRIPTION ^

The structure of a parrot class is reasonably straightforward. The PMC's cached integer value is the number of attribute slots that an object of this type requires. The data pointer holds a pointer to an array of PMCs. That array has:

0, PCD_PARENTS

An array of immediate parents.

1, PCD_CLASS_NAME

The class name PMC.

2, PCD_ALL_PARENTS

A pruned array of all parents, in search order.

3, PCD_ATTRIB_OFFS

A hash, keys are the class names, values are the offsets to their attributes.

4, PCD_ATTRIBUTES

A hash, the keys are the classname/attrib name pair (separated by a NULL), while the value is the offset to the attribute.

5, PCD_CLASS_ATTRIBUTES

Array of attribute of this class.

6, PCD_OBJECT_VTABLE

Vtable PMC that holds the vtable for objects of this class.

Methods ^

void init()

Initializes the class.

INTVAL isa(STRING *classname)

Returns whether the class is or inherits from *classname.

PMC *find_method(STRING *name)

Figure out which method PMC we need. By default we just defer to the system method lookup code.

INTVAL can(STRING *method)

Returns whether the class can perform *method.

PMC *get_class()

Return SELF.


parrot