NAME ^

src/io/io_passdown.c - IO layer handling

DESCRIPTION ^

This is a set of helper functions which search for the first implementation of a function in the layer-stack, call it with the appropriate arguments and return the value returned.

Functions ^

ParrotIO *PIO_open_down(theINTERP, ParrotIOLayer *layer, const char *name, INTVAL flags)

Looks for the implementation of Open and calls it if found, returning its return value.

Returns NULL if no implementation is found.

ParrotIO *PIO_open_async_down(theINTERP, ParrotIOLayer *layer, const char *name, const char *mode, DummyCodeRef *dummy)

Looks for the implementation of Open_ASync and calls it if found, returning its return value.

Returns NULL if no implementation is found.

ParrotIO *PIO_fdopen_down(theINTERP, ParrotIOLayer *layer, PIOHANDLE fd, INTVAL flags)

Looks for the implementation of FDOpen and calls it if found, returning its return value.

Returns NULL if no implementation is found.

INTVAL PIO_close_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io)

Looks for the implementation of Close and calls it if found, returning its return value.

Returns -1 if no implementation is found.

size_t PIO_write_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, STRING *)

Looks for the implementation of Write and calls it if found, returning its return value.

Returns 0 if no implementation is found.

size_t PIO_write_async_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, STRING *s, DummyCodeRef *dummy)

Looks for the implementation of WriteASync and calls it if found, returning its return value.

Returns 0 if no implementation is found.

size_t PIO_read_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, void *buf, size_t len)

Looks for the implementation of Read and calls it if found, returning its return value.

Returns 0 if no implementation is found.

size_t PIO_read_async_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, STRING ** buf, DummyCodeRef *dummy)

Looks for the implementation of Read_ASync and calls it if found, returning its return value.

Returns 0 if no implementation is found.

INTVAL PIO_flush_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io)

Looks for the implementation of Flush and calls it if found, returning its return value.

Returns 0 if no implementation is found.

PIOOFF_T PIO_seek_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, PIOOFF_T offset, INTVAL whence)

Looks for the implementation of Seek and calls it if found, returning its return value.

Returns -1 if no implementation is found.

PIOOFF_T PIO_tell_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io)

Looks for the implementation of Tell and calls it if found, returning its return value.

Returns 0 if no implementation is found.

INTVAL PIO_setbuf_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, size_t bufsize)

Looks for the implementation of SetBuf and calls it if found, returning its return value.

Returns -1 if no implementation is found.

INTVAL PIO_setlinebuf_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io)

Looks for the implementation of SetLineBuf and calls it if found, returning its return value.

Returns -1 if no implementation is found.

INTVAL PIO_eof_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io)

Looks for the implementation of Eof and calls it if found, returning its return value.

Returns -1 if no implementation is found.

INTVAL PIO_poll_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, INTVAL which, INTVAL sec, INTVAL usec)

Looks for the implementation of Poll and calls it if found, returning its return value.

Returns -1 if no implementation is found.

ParrotIO *PIO_socket_down(theINTERP, ParrotIOLayer *layer, INTVAL fam, INTVAL type, INTVAL proto)

Looks for the implementation of Socket and calls it if found, returning its return value.

Returns NULL if no implementation is found.

INTVAL PIO_recv_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, STRING **buf)

Looks for the implementation of Recv and calls it if found, returning its return value.

Returns -1 if no implementation is found.

INTVAL PIO_send_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, STRING *buf)

Looks for the implementation of Send and calls it if found, returning its return value.

Returns -1 if no implementation is found.

INTVAL PIO_connect_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, STRING *address)

Looks for the implementation of Connect and calls it if found, returning its return value.

Returns -1 if no implementation is found.

INTVAL PIO_bind_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, STRING *address)

Looks for the implementation of Bind and calls it if found, returning its return value.

Returns -1 if no implementation is found.

INTVAL PIO_listen_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, INTVAL backlog)

Looks for the implementation of listen and calls it if found, returning its return value.

Returns -1 if no implementation is found.

ParrotIO *PIO_accept_down(theINTERP, ParrotIOLayer *layer, ParrotIO *io, STRING *address)Y

Looks for the implementation of Accept and calls it if found, returning its return value.

Returns -1 if no implementation is found.

SEE ALSO ^

src/io/io_buf.c, src/io/io_passdown.c, src/io/io_stdio.c, src/io/io_unix.c, src/io/io_win32.c, src/io/io.c, src/io/io_private.h.

HISTORY ^

Initially written by Juergen Boemmels

Some ideas and goals from Perl5.7 and Nick Ing-Simmons' work.

POD ERRORS ^

Hey! The above document had some coding errors, which are explained below:

Around line 625:

Unterminated C<...> sequence


parrot