GNU Octave
3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
libinterp
corefcn
procstream.h
Go to the documentation of this file.
1
/*
2
3
Copyright (C) 1993-2013 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
Generated on Mon Dec 30 2013 03:04:28 for GNU Octave by
1.8.1.2