Mercurial > octave-nkf
comparison src/interp-core/procstream.h @ 15096:909a2797935b
maint: Move interp source code without DEFUNs to interp-core/ dir.
* src/Makefile.am, interpfcn/module.mk, operators/module.mk,
parse-tree/module.mk: Update build system by moving source lists and rules
to the correct directory.
* Cell.cc, Cell.h, c-file-ptr-stream.cc, c-file-ptr-stream.h, comment-list.cc,
comment-list.h, cutils.c, cutils.h, defun-dld.h, defun-int.h, display.cc,
display.h, dynamic-ld.cc, dynamic-ld.h, gl-render.cc, gl-render.h,
gl2ps-renderer.cc, gl2ps-renderer.h, gl2ps.c, gl2ps.h, gripes.cc, gripes.h,
jit-ir.cc, jit-ir.h, jit-typeinfo.cc, jit-typeinfo.h, jit-util.cc, jit-util.h,
ls-ascii-helper.cc, ls-ascii-helper.h, ls-hdf5.cc, ls-hdf5.h, ls-mat-ascii.cc,
ls-mat-ascii.h, ls-mat4.cc, ls-mat4.h, ls-mat5.cc, ls-mat5.h, ls-oct-binary.cc,
ls-oct-binary.h, ls-utils.cc, ls-utils.h, matherr.c, mex.cc, mex.h, mexproto.h,
module.mk, mxarray.in.h, oct-errno.h, oct-errno.in.cc, oct-fstrm.cc,
oct-fstrm.h, oct-hdf5.h, oct-iostrm.cc, oct-iostrm.h, oct-lvalue.cc,
oct-lvalue.h, oct-map.cc, oct-map.h, oct-obj.cc, oct-obj.h, oct-prcstrm.cc,
oct-prcstrm.h, oct-procbuf.cc, oct-procbuf.h, oct-stdstrm.h, oct-stream.cc,
oct-stream.h, oct-strstrm.cc, oct-strstrm.h, oct.h, procstream.cc,
procstream.h, pt-jit.cc, pt-jit.h, siglist.c, siglist.h, sparse-xdiv.cc,
sparse-xdiv.h, sparse-xpow.cc, sparse-xpow.h, txt-eng-ft.cc, txt-eng-ft.h,
txt-eng.h, unwind-prot.cc, unwind-prot.h, xdiv.cc, xdiv.h, xgl2ps.c, xnorm.cc,
xnorm.h, xpow.cc, xpow.h, zfstream.cc, zfstream.h: Move from src/ dir to
src/interp-core dir.
* ops.h: Move to operators/ directory.
* octave.gperf, token.cc, token.h: Move to parse-tree directory.
author | Rik <rik@octave.org> |
---|---|
date | Fri, 03 Aug 2012 13:18:21 -0700 |
parents | src/procstream.h@f7afecdd87ef |
children |
comparison
equal
deleted
inserted
replaced
15095:9df70a18aa27 | 15096:909a2797935b |
---|---|
1 /* | |
2 | |
3 Copyright (C) 1993-2012 John W. Eaton | |
4 | |
5 This file is part of Octave. | |
6 | |
7 Octave is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
9 Free Software Foundation; either version 3 of the License, or (at your | |
10 option) any later version. | |
11 | |
12 Octave is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with Octave; see the file COPYING. If not, see | |
19 <http://www.gnu.org/licenses/>. | |
20 | |
21 */ | |
22 | |
23 #if !defined (octave_procstream_h) | |
24 #define octave_procstream_h 1 | |
25 | |
26 #include <iosfwd> | |
27 #include <string> | |
28 | |
29 #include <sys/types.h> | |
30 | |
31 #include "oct-procbuf.h" | |
32 | |
33 class | |
34 OCTINTERP_API | |
35 procstreambase : virtual public std::ios | |
36 { | |
37 public: | |
38 | |
39 procstreambase (void) : pb () { pb_init (); } | |
40 | |
41 procstreambase (const std::string& name, int mode); | |
42 | |
43 procstreambase (const char *name, int mode); | |
44 | |
45 ~procstreambase (void) { close (); } | |
46 | |
47 void open (const std::string& name, int mode) | |
48 { open (name.c_str (), mode); } | |
49 | |
50 void open (const char *name, int mode); | |
51 | |
52 int is_open (void) const { return pb.is_open (); } | |
53 | |
54 int close (void); | |
55 | |
56 pid_t pid (void) const { return pb.pid (); } | |
57 | |
58 int file_number (void) const { return pb.file_number (); } | |
59 | |
60 private: | |
61 | |
62 octave_procbuf pb; | |
63 | |
64 void pb_init (void) { init (&pb); } | |
65 | |
66 procstreambase (const procstreambase&); | |
67 | |
68 procstreambase& operator = (const procstreambase&); | |
69 }; | |
70 | |
71 class | |
72 OCTINTERP_API | |
73 iprocstream : public std::istream, public procstreambase | |
74 // iprocstream : public procstreambase, public std::istream | |
75 { | |
76 public: | |
77 | |
78 iprocstream (void) : std::istream (0), procstreambase () { } | |
79 | |
80 iprocstream (const std::string& name, int mode = std::ios::in) | |
81 : std::istream (0), procstreambase (name, mode) { } | |
82 | |
83 iprocstream (const char *name, int mode = std::ios::in) | |
84 : std::istream (0), procstreambase (name, mode) { } | |
85 | |
86 ~iprocstream (void) { } | |
87 | |
88 void open (const std::string& name, int mode = std::ios::in) | |
89 { procstreambase::open (name, mode); } | |
90 | |
91 void open (const char *name, int mode = std::ios::in) | |
92 { procstreambase::open (name, mode); } | |
93 | |
94 private: | |
95 | |
96 iprocstream (const iprocstream&); | |
97 | |
98 iprocstream& operator = (const iprocstream&); | |
99 }; | |
100 | |
101 class | |
102 OCTINTERP_API | |
103 oprocstream : public std::ostream, public procstreambase | |
104 // oprocstream : public procstreambase, public std::ostream | |
105 { | |
106 public: | |
107 | |
108 oprocstream (void) : std::ostream (0), procstreambase () { } | |
109 | |
110 oprocstream (const std::string& name, int mode = std::ios::out) | |
111 : std::ostream (0), procstreambase (name, mode) { } | |
112 | |
113 oprocstream (const char *name, int mode = std::ios::out) | |
114 : std::ostream (0), procstreambase (name, mode) { } | |
115 | |
116 ~oprocstream (void) { } | |
117 | |
118 void open (const std::string& name, int mode = std::ios::out) | |
119 { procstreambase::open (name, mode); } | |
120 | |
121 void open (const char *name, int mode = std::ios::out) | |
122 { procstreambase::open (name, mode); } | |
123 | |
124 private: | |
125 | |
126 oprocstream (const oprocstream&); | |
127 | |
128 oprocstream& operator = (const oprocstream&); | |
129 }; | |
130 | |
131 class | |
132 OCTINTERP_API | |
133 procstream : public std::iostream, public procstreambase | |
134 // procstream : public procstreambase, public std::iostream | |
135 { | |
136 public: | |
137 | |
138 procstream (void) : std::iostream (0), procstreambase () { } | |
139 | |
140 procstream (const std::string& name, int mode) | |
141 : std::iostream (0), procstreambase (name, mode) { } | |
142 | |
143 procstream (const char *name, int mode) | |
144 : std::iostream (0), procstreambase (name, mode) { } | |
145 | |
146 ~procstream (void) { } | |
147 | |
148 void open (const std::string& name, int mode) | |
149 { procstreambase::open (name, mode); } | |
150 | |
151 void open (const char *name, int mode) | |
152 { procstreambase::open (name, mode); } | |
153 | |
154 private: | |
155 | |
156 procstream (const procstream&); | |
157 | |
158 procstream& operator = (const procstream&); | |
159 }; | |
160 | |
161 #endif |