Mercurial > hg > octave-lyh
diff src/procstream.h @ 1965:01e3ed56c415
[project @ 1996-02-17 02:02:50 by jwe]
author | jwe |
---|---|
date | Sat, 17 Feb 1996 02:03:11 +0000 |
parents | e62277bf5fe0 |
children | 003570e69c7b |
line wrap: on
line diff
--- a/src/procstream.h +++ b/src/procstream.h @@ -28,51 +28,109 @@ #pragma interface #endif -#include <fstream.h> - -class procbuf; +#include <iostream.h> +#include <procbuf.h> class -iprocstream : public ifstream +procstreambase : virtual public ios { public: - iprocstream (void) { pbuf = 0; } - iprocstream (const char *command, int mode=ios::in); + + procstreambase (void) { pb_init (); } + + procstreambase (const char *name, int mode); - ~iprocstream (void); + ~procstreambase (void) { close (); } - void open (const char *command, int mode=ios::in); + void open (const char *name, int mode); - int is_open (void); + int is_open (void) const { return pb.is_open (); } int close (void); private: - procbuf *pbuf; + + procbuf pb; + + void pb_init (void) { init (&pb); } + + procstreambase (const procstreambase&); + + procstreambase& operator = (const procstreambase&); }; -extern void cleanup_iprocstream (void *); +class +iprocstream : public procstreambase, public istream +{ +public: + + iprocstream (void) : procstreambase () { } + + iprocstream (const char *name, int mode=ios::in) + : procstreambase(name, mode) { } + + ~iprocstream (void) { } + + void open (const char *name, int mode=ios::in) + { + procstreambase::open (name, mode); + } + +private: + + iprocstream (const iprocstream&); + + iprocstream& operator = (const iprocstream&); +}; class -oprocstream : public ofstream +oprocstream : public procstreambase, public ostream { public: - oprocstream (void) { pbuf = 0; } - oprocstream (const char *command, int mode=ios::out); + + oprocstream (void) : procstreambase () { } - ~oprocstream (void); + oprocstream (const char *name, int mode=ios::out) + : procstreambase(name, mode) { } - void open (const char *command, int mode=ios::out); + ~oprocstream (void) { } - int is_open (void); - - int close (void); + void open (const char *name, int mode=ios::out) + { + procstreambase::open(name, mode); + } private: - procbuf *pbuf; + + oprocstream (const oprocstream&); + + oprocstream& operator = (const oprocstream&); }; -extern void cleanup_oprocstream (void *); +class +procstream : public procstreambase, public iostream +{ +public: + + procstream (void) : procstreambase () { } + + procstream (const char *name, int mode) + : procstreambase(name, mode) { } + + + ~procstream (void) { } + + void open (const char *name, int mode) + { + procstreambase::open(name, mode); + } + +private: + + procstream (const procstream&); + + procstream& operator = (const procstream&); +}; #endif