00001 /* 00002 00003 Copyright (C) 1996-2012 John W. Eaton 00004 00005 This file is part of Octave. 00006 00007 Octave is free software; you can redistribute it and/or modify it 00008 under the terms of the GNU General Public License as published by the 00009 Free Software Foundation; either version 3 of the License, or (at your 00010 option) any later version. 00011 00012 Octave is distributed in the hope that it will be useful, but WITHOUT 00013 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00015 for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with Octave; see the file COPYING. If not, see 00019 <http://www.gnu.org/licenses/>. 00020 00021 */ 00022 00023 #if !defined (octave_octave_procstream_h) 00024 #define octave_octave_procstream_h 1 00025 00026 #include "oct-stdstrm.h" 00027 00028 // FIXME -- why don't these classes use iprocstream and 00029 // oprocstream, which in turn use the octave_procbuf class? 00030 00031 class 00032 octave_iprocstream : public octave_stdiostream 00033 { 00034 public: 00035 00036 octave_iprocstream (const std::string& n, 00037 std::ios::openmode arg_md = std::ios::in, 00038 oct_mach_info::float_format flt_fmt 00039 = oct_mach_info::native_float_format ()); 00040 00041 static octave_stream 00042 create (const std::string& n, std::ios::openmode arg_md = std::ios::in, 00043 oct_mach_info::float_format flt_fmt 00044 = oct_mach_info::native_float_format ()); 00045 00046 protected: 00047 00048 ~octave_iprocstream (void); 00049 00050 private: 00051 00052 // No copying! 00053 00054 octave_iprocstream (const octave_iprocstream&); 00055 00056 octave_iprocstream& operator = (const octave_iprocstream&); 00057 }; 00058 00059 class 00060 octave_oprocstream : public octave_stdiostream 00061 { 00062 public: 00063 00064 octave_oprocstream (const std::string& n, 00065 std::ios::openmode arg_md = std::ios::out, 00066 oct_mach_info::float_format flt_fmt 00067 = oct_mach_info::native_float_format ()); 00068 00069 static octave_stream 00070 create (const std::string& n, std::ios::openmode arg_md = std::ios::out, 00071 oct_mach_info::float_format flt_fmt 00072 = oct_mach_info::native_float_format ()); 00073 00074 protected: 00075 00076 ~octave_oprocstream (void); 00077 00078 private: 00079 00080 // No copying! 00081 00082 octave_oprocstream (const octave_oprocstream&); 00083 00084 octave_oprocstream& operator = (const octave_oprocstream&); 00085 }; 00086 00087 #endif