parrotcode: IO Layer Handling | |
Contents | C |
io/io_layers.c - IO Layer Handling
The Parrot IO subsystem uses a per-interpreter stack to provide a layer-based approach to IO.
Each layer implements a subset of the ParrotIOLayerAPI
vtable.
To find an IO function the layer stack is searched downwards until a non-NULL
function pointer is found for that particular slot.
*/
/*
ParrotIOLayer *PIO_base_new_layer(ParrotIOLayer *proto)
ParrotIOLayer
.
If a prototype *proto
is supplied then it's values will be copied to the new instance.void PIO_base_delete_layer(ParrotIOLayer *layer)
*layer
.INTVAL PIO_push_layer(theINTERP, PMC *pmc, ParrotIOLayer *layer)
*pmc
) or the default stack.void PIO_push_layer_str(theINTERP, PMC *pmc, STRING *layer_name)
*pmc
).ParrotIOLayer *PIO_pop_layer(theINTERP, PMC *pmc)
*pmc
) or the default stack.STRING *PIO_pop_layer_str(theINTERP, PMC *pmc)
*pmc
) and return the name of the popped layer.
The layer gets freed.ParrotIOLayer *PIO_copy_stack(ParrotIOLayer *stack)
|