NAME

src/pmc/imageio.pmc - ImageIO PMC

DESCRIPTION

Freezes and thaws other PMCs.

FUNCTIONS

static opcode_t * GET_VISIT_CURSOR(const PMC *pmc)
static void SET_VISIT_CURSOR(PMC *pmc, const char *cursor)
static void INC_VISIT_CURSOR(PMC *pmc, UINTVAL inc)
static void create_buffer(PARROT_INTERP, PMC *pmc, PMC *info)
static void ensure_buffer_size(PARROT_INTERP, PMC *io, size_t len)
Checks the size of the buffer to see if it can accommodate len more bytes. If not, expands the buffer.
static INTVAL INFO_HAS_DATA(const PMC *io)
static PMC* id_list_get(PARROT_INTERP, const PMC *io, UINTVAL id)
static PMC * visit_todo_list_thaw(PARROT_INTERP, PMC* info)
static void visit_todo_list_freeze(PARROT_INTERP, PMC* pmc, PMC* info)

VTABLES

void init()
Initializes the PMC.
void destroy()
Destroys the PMC.
void mark()
Marks the PMC as alive.
STRING *get_string()
Returns the content of the image as a string.
VTABLE PMC *get_pmc()
Gets the result PMC after a thaw.
VTABLE PMC *get_iter()
Get the todo list for this freeze/thaw for iterating over.
VTABLE INTVAL get_integer()
Returns the flags describing the visit action.
VTABLE void push_integer(INTVAL v)
Pushes the integer v onto the end of the image.
VTABLE void push_float(FLOATVAL v)
Pushes the float v onto the end of the image.
VTABLE void push_string(STRING *v)
Pushes the string *v onto the end of the image.
VTABLE void push_pmc(PMC *v)
Pushes a reference to pmc *v onto the end of the image. If *v hasn't been seen yet, it is also pushed onto the todo list.
void set_pointer(void *value)
Sets the constant table of this ImageIO PMC.
VTABLE INTVAL shift_integer()
Removes and returns an integer from the start of the image.
VTABLE FLOATVAL shift_float()
Removes and returns an number from the start of the image.
VTABLE STRING* shift_string()
Removes and returns a string from the start of the image.
static PMC *shift_pmc()
Removes and returns a reference to a pmc from the start of the image.