Mercurial > octave-libgccjit
diff src/procstream.cc @ 1380:79f80c6229be
[project @ 1995-09-12 07:03:33 by jwe]
author | jwe |
---|---|
date | Tue, 12 Sep 1995 07:06:14 +0000 |
parents | 611d403c7f3d |
children | 067f11a46742 |
line wrap: on
line diff
--- a/src/procstream.cc Tue Sep 12 00:41:58 1995 +0000 +++ b/src/procstream.cc Tue Sep 12 07:06:14 1995 +0000 @@ -29,34 +29,121 @@ #include <config.h> #endif +#include <fstream.h> +#include <procbuf.h> + #include "procstream.h" -procstreambase::procstreambase (void) +iprocstream::iprocstream (void) { - init (new procbuf ()); + pbuf = new procbuf (); + + init (pbuf); } -procstreambase::procstreambase (const char *command, int mode) +iprocstream::iprocstream (const char *command, int mode) { - init (new procbuf ()); - if (! rdbuf()->open (command, mode)) + pbuf = new procbuf (); + + init (pbuf); + + if (! pbuf->open (command, mode)) set (ios::badbit); } +iprocstream::~iprocstream (void) +{ + close (); +} + void -procstreambase::open (const char *command, int mode) +iprocstream::open (const char *command, int mode) { clear (); - if (! rdbuf()->open (command, mode)) + + if (! pbuf) + pbuf = new procbuf (); + + if (! pbuf->open (command, mode)) set (ios::badbit); } int -procstreambase::close (void) +iprocstream::is_open (void) +{ + return pbuf && pbuf->is_open (); +} + +int +iprocstream::close (void) +{ + int status = 0; + + if (is_open ()) + { + + status = pbuf->sys_close (); + + if (! pbuf->close ()) + set (ios::failbit); + } + + return status; +} + +oprocstream::oprocstream (void) +{ + pbuf = new procbuf (); + + init (pbuf); +} + +oprocstream::oprocstream (const char *command, int mode) { - int status = rdbuf()->sys_close (); - if (! rdbuf()->close ()) - set (ios::failbit); + pbuf = new procbuf (); + + init (pbuf); + + if (! pbuf->open (command, mode)) + set (ios::badbit); +} + +oprocstream::~oprocstream (void) +{ + close (); +} + +void +oprocstream::open (const char *command, int mode) +{ + clear (); + + if (! pbuf) + pbuf = new procbuf (); + + if (! pbuf->open (command, mode)) + set (ios::badbit); +} + +int +oprocstream::is_open (void) +{ + return pbuf && pbuf->is_open (); +} + +int +oprocstream::close (void) +{ + int status = 0; + + if (is_open ()) + { + status = pbuf->sys_close (); + + if (! pbuf->close ()) + set (ios::failbit); + } + return status; }