NAME ^

src/io/buffer.c - I/O buffering

DESCRIPTION ^

This file implements a collection of utility functions for I/O buffering.

Functions ^

INTVAL Parrot_io_init_buffer

Initialize buffering on STDOUT and STDIN.

void Parrot_io_setbuf

Set the buffering mode for the filehandle.

INTVAL Parrot_io_setlinebuf

Set the file handle to line buffering mode.

INTVAL Parrot_io_flush_buffer

Flush the I/O buffer for a given filehandle object.

size_t Parrot_io_fill_readbuf

The buffer layer's Fill function.

size_t Parrot_io_read_buffer

The buffer layer's Read function.

size_t Parrot_io_peek_buffer

Retrieve the next character in the buffer without modifying the stream.

size_t Parrot_io_readline_buffer

This is called from Parrot_io_read_buffer() to do line buffered reading if that is what is required.

size_t Parrot_io_write_buffer

The buffer layer's Write function.

PIOOFF_T Parrot_io_seek_buffer

The buffer layer's Seek function.

static INTVAL io_is_end_of_line

Determine if the current character is the end of the line.

Note that this is not a portable solution, but it is what the old architecture was doing, once you boil away the useless macros. This will need to change to support the Strings PDD, but is left as-is for now, for a smooth transition to the new architecture.

SEE ALSO ^

src/io/api.c, src/io/unix.c, src/io/win32.c, src/io/portable.c, src/io.c, src/io/io_private.h.


parrot