| parrotcode parrotio PMC | |
| Docs | FAQ | Download | Examples | Talks | Resources | Perl 6 | Languages | Who's Who | Donors | Cage Cleaners | Wiki | |
src/pmc/parrotio.pmc - Parrot IO
These are the vtable functions for Parrot IO.
METHOD say(STRING *s)Print the string with an appended newline to SELF or to stdout if used as a class method.
METHOD open(STRING *file,
STRING *mode,
STRING *layer)Opens the file with the given mode, using the given IO layer.
METHOD isatty()
METHOD set_readline_interactive(INTVAL)Sets readline interactive mode to the given value, if PARROT_HAS_READLINE is defined, that is, if the readline library is available. The return values are:
readline isn't configured
The file is not open/not input or not a tty, if turning on interactive.
old interactive setting
METHOD readline(STRING *prompt)Reads a line from the given PIO.
If readline is interactive and a prompt is not empty,
it will be displayed.
The interactive feature is not available with the readline opcode (which will be removed anyway).
Interactive mode adds non-empty lines to the readline history.
Returns the line without the newline in a String PMC. If ^D/eof occurred, this will return a Null PMC.
SYNOPSIS
pio = getstdin
$I0 = pio.'set_readline_interactive'(1)
if $I0 >= 0 goto loop
printerr "set_readline_interactive failed: "
...
loop:
$P1 = pio.'readline'('hello polly> ')
if null $P1 goto ex
..
goto loop
ex:
Slurp an (existing, disc) file named name into a STRING result.
Please note that this method isn't catching any failures yet.
Usage as class method:
.local pmc cl
cl = get_class 'ParrotIO'
$S0 = cl.'slurp'('the_file')
The file will be opened, read, and closed.
Or with an openend file:
pio = open 'the_file', '<'
$S0 = pio.'slurp'('')
This does not close the file.
void class_init()Class initialization.
METHOD eof()Returns true or false according to the end of file state of the object.
METHOD flush()Flushes pending writes.
METHOD setbuf(INTVAL)RT#46087 TBD
METHOD setlinebuf()RT#46089 TBD
void init()Initializes the IO PMC.
void destroy()Destroys the IO PMC, flushing and closing as necessary.
PMC *clone()Clones the IO PMC.
For now, both PMCs refer to the same ParrotIO object. If we have different IO layers, we might copy data and struct_val.
void assign_pmc(PMC *other)Set SELF to the data in other.
INTVAL get_bool()Returns whether at EOF or not.
STRING *get_string_keyed_int(INTVAL n)Returns the name of the nth layer. n >= 0 returns layer names up from the bottom. If n is negative, returns layer names from top down. For non-existent layers, returns an empty string.
void push_string(STRING *value)Pushes the layer name value onto the PIO's layer stack.
STRING *pop_string()Pops a layer off the PIO's layer stack and returns its name.
|
Perl.org sites
: bugs
| dev
| history
| jobs
| learn
| lists
| use
Site Information and Contacts |
|