redi::basic_opstream - Class template for Output PStreams
Contents
Constructor & Destructor Documentation
template<typenameCharT,typenameTraits=std::char_traits<CharT>>redi::basic_opstream<CharT,Traits>::basic_opstream(conststd::string&cmd,pmodemode=pstdin)[inline],[explicit]
Constructor that initialises the stream by starting a process. Initialises the stream buffer by calling
do_open() with the supplied arguments.
Parameterscmd a string containing a shell command.
mode the I/O mode to use when opening the pipe.
Seealsodo_open(conststd::string&,pmode)template<typenameCharT,typenameTraits=std::char_traits<CharT>>redi::basic_opstream<CharT,Traits>::basic_opstream(conststd::string&file,constargv_type&argv,pmodemode=pstdin)[inline]
Constructor that initialises the stream by starting a process. Initialises the stream buffer by calling
do_open() with the supplied arguments.
Parametersfile a string containing the pathname of a program to execute.
argv a vector of argument strings passed to the new program.
mode the I/O mode to use when opening the pipe.
Seealsodo_open(conststd::string&,constargv_type&,pmode)template<typenameCharT,typenameTraits=std::char_traits<CharT>>redi::basic_opstream<CharT,Traits>::basic_opstream(constargv_type&argv,pmodemode=pstdin)[inline],[explicit]
Constructor that initialises the stream by starting a process. Initialises the stream buffer by calling
do_open(argv[0],argv,mode|pstdin)
Parametersargv a vector of argument strings passed to the new program.
mode the I/O mode to use when opening the pipe.
Seealsodo_open(conststd::string&,constargv_type&,pmode)template<typenameCharT,typenameTraits=std::char_traits<CharT>>redi::basic_opstream<CharT,Traits>::~basic_opstream()[inline]
Destructor. Closes the stream and waits for the child to exit.
Detailed Description
template<typenameCharT,typenameTraits=std::char_traits<CharT>>
class redi::basic_opstream< CharT, Traits >" Class template for Output PStreams.
Writing to an open opstream writes to the standard input of the command; the command's standard output is
the same as that of the process that created the pstream object, unless altered by the command itself.
Member Function Documentation
intredi::pstream_common<C,T>::close[inline],[inherited]
Close the pipe, returning the program's exit status, as pclose(3) does.
Calls rdbuf->close() and sets failbit on error. Returns process's exit status, as pclose(3) does.
conststd::string&redi::pstream_common<C,T>::command[inline],[inherited]
Return the command used to initialise the stream.
Returns
a string containing the command used to initialise the stream.
voidredi::pstream_common<C,T>::do_open(conststd::string&cmd,pmodemode)[inline],[protected],[inherited]
Start a process. Calls rdbuf()->open( command , mode ) and sets failbit on error.
Parameterscmd a string containing a shell command.
mode the I/O mode to use when opening the pipe.
Seealsobasic_pstreambuf::open(conststd::string&,pmode)voidredi::pstream_common<C,T>::do_open(conststd::string&file,constargv_type&argv,pmodemode)[inline],[protected],[inherited]
Start a process. Calls rdbuf()->open( file, argv, mode ) and sets failbit on error.
Parametersfile a string containing the pathname of a program to execute.
argv a vector of argument strings passed to the new program.
mode the I/O mode to use when opening the pipe.
Seealsobasic_pstreambuf::open(conststd::string&,constargv_type&,pmode)boolredi::pstream_common<C,T>::is_open[inline],[inherited]
Report whether the stream's buffer has been initialised.
Returnsrdbuf()->is_open().
Seealsobasic_pstreambuf::is_open()template<typenameCharT,typenameTraits=std::char_traits<CharT>>voidredi::basic_opstream<CharT,Traits>::open(conststd::string&cmd,pmodemode=pstdin)[inline]
Start a process. Calls do_open( cmd , mode|pstdin ).
Parameterscmd a string containing a shell command.
mode the I/O mode to use when opening the pipe.
Seealsodo_open(conststd::string&,pmode)
References redi::pstream_common< CharT, std::char_traits< CharT > >::do_open(), and
redi::pstreams::pstdin.
template<typenameCharT,typenameTraits=std::char_traits<CharT>>voidredi::basic_opstream<CharT,Traits>::open(conststd::string&file,constargv_type&argv,pmodemode=pstdin)[inline]
Start a process. Calls do_open( file , argv , mode|pstdin ).
Parametersfile a string containing the pathname of a program to execute.
argv a vector of argument strings passed to the new program.
mode the I/O mode to use when opening the pipe.
Seealsodo_open(conststd::string&,constargv_type&,pmode)
References redi::pstream_common< CharT, std::char_traits< CharT > >::do_open(), and
redi::pstreams::pstdin.
pstream_common<C,T>::streambuf_type*redi::pstream_common<C,T>::rdbuf[inline],[inherited]
Return a pointer to the stream buffer.
Returns
a pointer to the private stream buffer member.
Name
redi::basic_opstream - Class template for Output PStreams
Synopsis
#include <pstream.h>
Inherits basic_ostream< CharT, std::char_traits< CharT > >, redi::pstream_common<CharT,std::char_traits<CharT>>, and redi::pstreams.
PublicTypes
typedef pbase_type::pmode pmode
Type used to specify how to connect to the process.
typedef pbase_type::argv_type argv_type
Type used to hold the arguments for a command.
typedef int fd_type
Type used for file descriptors.
typedef int fd_type
Type used for file descriptors.
PublicMemberFunctionsbasic_opstream ()
Default constructor, creates an uninitialised stream.
basic_opstream (const std::string &cmd, pmode mode=pstdin)
Constructor that initialises the stream by starting a process.
basic_opstream (const std::string &file, const argv_type &argv, pmode mode=pstdin)
Constructor that initialises the stream by starting a process.
basic_opstream (const argv_type &argv, pmode mode=pstdin)
Constructor that initialises the stream by starting a process.
~basic_opstream ()
Destructor.
void open (const std::string &cmd, pmode mode=pstdin)
Start a process.
void open (const std::string &file, const argv_type &argv, pmode mode=pstdin)
Start a process.
int close ()
bool is_open () const
Report whether the stream's buffer has been initialised.
const std::string & command () const
Return the command used to initialise the stream.
streambuf_type * rdbuf () const
Return a pointer to the stream buffer.
StaticPublicAttributes
static const pmodepstdin = std::ios_base::out
Write to stdin.
static const pmodepstdout = std::ios_base::in
Read from stdout.
static const pmodepstderr = std::ios_base::app
Read from stderr.
static const pmodenewpg = std::ios_base::trunc
Create a new process group for the child process.
static const pmodepstdin = std::ios_base::out
Write to stdin.
static const pmodepstdout = std::ios_base::in
Read from stdout.
static const pmodepstderr = std::ios_base::app
Read from stderr.
static const pmodenewpg = std::ios_base::trunc
Create a new process group for the child process.
ProtectedTypes
typedef basic_pstreambuf< CharT, std::char_traits< CharT > > streambuf_type
typedef std::basic_ios< CharT, std::char_traits< CharT > > ios_type
enum { bufsz = 32 }
enum { pbsz = 2 }
enum { bufsz = 32 }
enum { pbsz = 2 }
ProtectedMemberFunctions
void do_open (const std::string &cmd, pmode mode)
Start a process.
void do_open (const std::string &file, const argv_type &argv, pmode mode)
Start a process.
ProtectedAttributes
std::string command_
The command used to start the process.
RelatedFunctions
(Note that these are not member functions.)
template<typename C , typename T > std::basic_ostream< C, T > & peof (std::basic_ostream< C, T > &s)
Manipulator to close the pipe connected to the process' stdin.
