NAME
IO::Mux::Pipe::Write - write to an external command
INHERITANCE
IO::Mux::Pipe::Write
is a IO::Mux::Handler::Write
is a IO::Mux::Handler
SYNOPSIS
my $mux = IO::Mux::Select->new; # or ::Poll
use IO::Mux::Open '|-';
my $pipe = $mux->open('|-', $command, @cmd_options);
use IO::Mux::Pipe::Write;
my $pipe = IO::Mux::Pipe::Write->new
(command => [$command, @cmd_options]);
$mux->add($pipe);
$pipe->write($text);
$pipe->print($text);
write $pipe $text;
print $pipe $text;
DESCRIPTION
In an event driven program, you must be careful with every Operation System call, because it can block the event mechanism, hence the program as a whole. Often you can be lazy with writes, because its communication buffers are usually working quite asynchronous... but not always. You may skip the callbacks for small writes and prints.
METHODS
Constructors
- IO::Mux::Pipe::Write->bare(OPTIONS)
-
Creates a pipe, but does not start a process (yet). Used by IO::Mux::IPC, which needs three pipes for one process. Returned is not only a new pipe object, but also a read handle to be connected to the other side.
All OPTIONS which are available to IO::Mux::Handler::Write::new() can be used here as well.
-Option --Default read_size 4096
example:
my ($in, $in_rh) = IO::Mux::Pipe::Write->bare(name => 'stdin');
- IO::Mux::Pipe::Write->new(OPTIONS)
-
-Option --Defined in --Default command <required> fh IO::Mux::Handler <required> name IO::Mux::Handler '|$cmd' write_size IO::Mux::Handler::Write 4096
- IO::Mux::Pipe::Write->open(MODE, (CMD, CMDOPTS)|(CMDARRAY, OPTIONS))
-
Open the pipe to write. MODE is always
-|
. When you need to pass additional OPTIONS to the implied new(), then you must use an ARRAY for command name and its optional parameters.example:
my $mux = IO::Mux::Poll->new; $mux->open('|-', 'lpr', '-#4'); # no opts $mux->open('|-', ['lpr', '-#4'], %opts); $mux->open('|-', 'lpr'); # no opts $mux->open('|-', ['lpr'], %opts);
Accessors
- $obj->childPid
-
The process id of the child on the other side of the pipe.
- $obj->fh See "Accessors" in IO::Mux::Handler
- $obj->fileno See "Accessors" in IO::Mux::Handler
- $obj->mode
-
The bits of the open mode.
- $obj->mux See "Accessors" in IO::Mux::Handler
- $obj->name See "Accessors" in IO::Mux::Handler
- $obj->usesSSL See "Accessors" in IO::Mux::Handler
- $obj->writeSize([INTEGER]) See "Accessors" in IO::Mux::Handler::Write
User interface
Connection
- $obj->close([CALLBACK]) See "Connection" in IO::Mux::Handler
- $obj->timeout([TIMEOUT]) See "Connection" in IO::Mux::Handler
Writing
- $obj->print(STRING|SCALAR|LIST|ARRAY) See "Writing" in IO::Mux::Handler::Write
- $obj->printf(FORMAT, PARAMS) See "Writing" in IO::Mux::Handler::Write
- $obj->say(STRING|SCALAR|LIST|ARRAY) See "Writing" in IO::Mux::Handler::Write
- $obj->write(SCALAR, [MORE]) See "Writing" in IO::Mux::Handler::Write
Multiplexer
Connection
- $obj->mux_init(MUX, [HANDLER]) See "Connection" in IO::Mux::Handler
- $obj->mux_remove See "Connection" in IO::Mux::Handler
- $obj->mux_timeout See "Connection" in IO::Mux::Handler
Reading
- $obj->mux_except_flagged(FILENO) See "Reading" in IO::Mux::Handler
- $obj->mux_read_flagged(FILENO) See "Reading" in IO::Mux::Handler
Writing
- $obj->mux_outbuffer_empty See "Writing" in IO::Mux::Handler::Write
- $obj->mux_output_waiting See "Writing" in IO::Mux::Handler::Write
- $obj->mux_write_flagged(FILENO) See "Writing" in IO::Mux::Handler
Service
Helpers
- $obj->extractSocket(HASH)
- IO::Mux::Pipe::Write->extractSocket(HASH) See "Helpers" in IO::Mux::Handler
- $obj->fdset(STATE, READ, WRITE, ERROR) See "Helpers" in IO::Mux::Handler
- $obj->show See "Helpers" in IO::Mux::Handler
SEE ALSO
This module is part of IO-Mux distribution version 0.11, built on January 26, 2011. Website: http://perl.overmeer.net/ All modules in this suite: "Any::Daemon", "IO::Mux", and "IO::Mux::HTTP".
Please post questions or ideas to perl@overmeer.net
LICENSE
Copyrights 2011 by Mark Overmeer. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html