Mercurial > octave
diff src/c-file-ptr-stream.h @ 3644:9add655e8b8c
[project @ 2000-03-24 11:58:50 by jwe]
author | jwe |
---|---|
date | Fri, 24 Mar 2000 11:58:50 +0000 |
parents | 168c4d71dc63 |
children | 25e84fcef38a |
line wrap: on
line diff
--- a/src/c-file-ptr-stream.h Fri Mar 24 10:53:21 2000 +0000 +++ b/src/c-file-ptr-stream.h Fri Mar 24 11:58:50 2000 +0000 @@ -33,10 +33,6 @@ class c_file_ptr_buf : public std::streambuf { -protected: - - FILE *f; - public: FILE* stdiofile (void) const { return f; } @@ -64,36 +60,44 @@ std::ios::openmode = std::ios::in | std::ios::out); int sync (void); + +protected: + + FILE *f; }; class i_c_file_ptr_stream : public std::istream { +public: + + i_c_file_ptr_stream (FILE* f) + : std::istream (), buf (new c_file_ptr_buf (f)) { init (buf); } + + ~i_c_file_ptr_stream (void) { delete buf; buf = 0; } + + c_file_ptr_buf *rdbuf (void) { return buf; } + private: - c_file_ptr_buf f; - -public: - - i_c_file_ptr_stream (FILE* f_arg) - : std::istream (), f (f_arg) { init (&f); } - - c_file_ptr_buf *rdbuf (void) { return &f; } + c_file_ptr_buf *buf; }; class o_c_file_ptr_stream : public std::ostream { +public: + + o_c_file_ptr_stream (FILE* f) + : std::ostream (), buf (new c_file_ptr_buf (f)) { init (buf); } + + ~o_c_file_ptr_stream (void) { delete buf; buf = 0; } + + c_file_ptr_buf *rdbuf (void) { return buf; } + private: - c_file_ptr_buf f; - -public: - - o_c_file_ptr_stream (FILE* f_arg) - : std::ostream (), f (f_arg) { init (&f); } - - c_file_ptr_buf *rdbuf (void) { return &f; } + c_file_ptr_buf *buf; }; #endif