NAME

IPC::PrettyPipe::Stream - An I/O stream for an IPC::PrettyPipe pipline or command

SYNOPSIS

use IPC::PrettyPipe::Stream;

# standard constructor
$stream = IPC::PrettyPipe::Stream->new( spec => $spec, %attr );
$stream = IPC::PrettyPipe::Stream->new( spec => $spec, file => $file, %attr );

# concise constructors
$stream = IPC::PrettyPipe::Stream->new( $spec );
$stream = IPC::PrettyPipe::Stream->new( [ $spec, $file ] );

DESCRIPTION

IPC::PrettyPipe::Stream objects represent I/O streams attached to either IPC::PrettyPipe or IPC::PrettyPipe::Cmd objects.

METHODS

new
# named parameters; may provide additional attributes
$stream = IPC::PrettyPipe::Stream->new( spec => $spec, file => $file, %attr );
$stream = IPC::PrettyPipe::Stream->new( \%attr );

# concise interface
$stream = IPC::PrettyPipe::Stream->new( $spec );
$stream = IPC::PrettyPipe::Stream->new( [ $spec, $file ] );

The available attributes are:

spec

A stream specification. See IPC::PrettyPipe::Stream::Utils for more information.

file

The optional file attached to the stream. A file is not needed if the specification is for a redirection or a close.

strict

If true, die if the stream specification requires a file but one is not provided, or it does not require a file and one is provided.

spec
$spec = $stream->spec;

Retrieve the specification passed in to the constructor.

file
$file = $stream->file;

Return the file passed in to the constructor (if one was).

quoted_file
$file = $stream->quoted_file;

Return the file passed in to the constructor (if one was), appropriately quoted for passing as a single word to a Bourne compatible shell.

has_file
$bool = $stream->has_file;

Returns true if a file was passed to the constructor.

requires_file
$bool = $stream->requires_file;

Returns true if the stream specification requires a file.

Op
N
M
$Op = $stream->Op;
$N  = $stream->N;
$M  = $stream->M;

Retrieve the components of the specification.

has_N
has_M
$bool = $stream->has_N;
$bool = $stream->has_M;

Return true if the stream specification contained the associated component.

apply
( $sub, @fh ) = $stream->apply;

Returns a subroutine which will implement the stream operations and and a list of filehandles or descriptors which would be affected. This routine is used by backend wrappers in conjunction with IO::ReStoreFH to handle pipe level stream operations (rather than command stream operations, which are done by the actual backend modules).

COPYRIGHT & LICENSE

Copyright 2014 Smithsonian Astrophysical Observatory

This software is released under the GNU General Public License. You may find a copy at

http://www.fsf.org/copyleft/gpl.html

AUTHOR

Diab Jerius <djerius@cfa.harvard.edu>