classes/parrotclass.pmc - Parrot Class
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:
- An array of immediate parents.
- The class name PMC.
- A hash,
keys are the class names,
values are the offsets to their attributes.
- A hash,
the keys are the classname/attrib name pair (separated by a
while the value is the offset to the attribute.
- Array of attribute of this class.
- Vtable PMC that holds the vtable for objects of this class.
- ex 2,
- Is now class->vtable->mro and contains the class itself too.
- Initializes the class.
INTVAL isa(STRING *classname)
- Returns whether the class is or inherits from
- Return SELF.
- Return the name of the namespace,
which is the classname of ParrotClass classes.
void visit(visit_info *info)
- This is used by freeze/thaw to visit the contents of the class.
*info is the visit info,
void freeze(visit_info *info)
- Used to archive the class.
void thaw(visit_info *info)
- Used to unarchive the class.
void thawfinish(visit_info *info)
- Create the class from the thawed parents and attributes array.