src/pmc/packfiledirectory.pmc - PackfileDirectory PMC


This class implements a PackfileDirectory object, a segment of the .pbc data file used for listing the rest of the file's contents. Essentially this segment is a container for all other segments within a Packfile.

See packfile.pmc for the toplevel Packfile interface, see packfilesegment.pmc for the list of common methods every packfile segment pmc must implement; see PDD13 for the design spec.


void init()
Initialize PackfileDirectory.
void mark()
Marks the object as live.
void set_pointer(void *ptr)
Initialize PackfileDirectory from PackFile_Directory.
void *get_pointer()
Creates PackFile for given directory.
INTVAL elements()
Get the number of elements in the array.
PMC *get_iter()
Return a new iterator for the directory.
PMC *get_pmc_keyed_str(STRING *name)
Search the array for a segment with the given name, and return it if it exists.
PMC *get_pmc_keyed(PMC *key)
Fetch a keyed string value from the packfiledirectory object.
void set_pmc_keyed_str(STRING *name, PMC *segment)
Add a segment with the given name to the directory. If a segment with this name already existed, it will be replaced with the new segment.
PMC *set_pmc_keyed(PMC *key, PMC *segment)
Add a segment with the given name to the directory. Dispatches to set_pmc_keyed_str.
PMC *delete_keyed(PMC *key)
Delete the specified segment from the directory.