Mercurial > octave
annotate libinterp/corefcn/oct-iostrm.h @ 23446:cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
* make_int.cc, dialog.h, file-editor-interface.h, file-editor-tab.h,
file-editor.h, octave-txt-lexer.h, main-window.h, octave-dock-widget.h,
parser.h, webinfo.h, resource-manager.h, thread-manager.h, c-file-ptr-stream.h,
call-stack.h, comment-list.h, ft-text-renderer.h, gl-render.cc, input.h,
mex.cc, mexproto.h, mxarray.in.h, oct-fstrm.h, oct-iostrm.h, oct-procbuf.h,
oct-stdstrm.h, oct-stream.cc, oct-stream.h, oct-strstrm.h, octave-link.h,
sighandlers.cc, symtab.h, sysdep.h, utils.h, audiodevinfo.cc, ov-base-diag.h,
ov-base-int.h, ov-base-scalar.h, ov-base-sparse.h, ov-base.h, ov-bool-mat.h,
ov-bool-sparse.h, ov-bool.h, ov-builtin.h, ov-cell.h, ov-ch-mat.h, ov-class.h,
ov-classdef.h, ov-colon.h, ov-complex.cc, ov-complex.h, ov-cs-list.h,
ov-cx-diag.h, ov-cx-mat.h, ov-cx-sparse.h, ov-fcn-handle.h, ov-fcn-inline.h,
ov-fcn.h, ov-float.h, ov-flt-complex.h, ov-flt-cx-diag.h, ov-flt-cx-mat.h,
ov-flt-re-diag.h, ov-flt-re-mat.h, ov-intx.h, ov-java.cc, ov-java.h,
ov-lazy-idx.h, ov-mex-fcn.h, ov-oncleanup.h, ov-perm.h, ov-range.h,
ov-re-diag.h, ov-re-mat.h, ov-re-sparse.h, ov-scalar.h, ov-str-mat.h,
ov-struct.h, ov-usr-fcn.h, ov.h, octave.h, bp-table.h, jit-ir.h,
jit-typeinfo.h, jit-util.h, lex.h, parse.h, pt-arg-list.h, pt-array-list.h,
pt-assign.h, pt-binop.h, pt-cell.h, pt-classdef.h, pt-cmd.h, pt-colon.h,
pt-const.h, pt-decl.h, pt-except.h, pt-exp.h, pt-fcn-handle.h, pt-funcall.h,
pt-id.h, pt-idx.h, pt-jit.h, pt-jump.h, pt-loop.h, pt-mat.h, pt-misc.h,
pt-select.h, pt-stmt.h, pt-unop.h, token.h, Array.cc, Array.h, DiagArray2.h,
Sparse.h, dim-vector.h, idx-vector.h, sparse-chol.cc, cmd-edit.cc, cmd-edit.h,
lo-array-errwarn.cc, lo-array-errwarn.h, lo-array-gripes.cc, lo-utils.h,
oct-inttypes.h, oct-locbuf.h, oct-refcount.h, oct-rl-edit.h, oct-rl-hist.h,
oct-shlib.cc, oct-shlib.h, str-vec.h, canonicalize-file-name-wrapper.h,
dirent-wrappers.h, getopt-wrapper.h, glob-wrappers.h, localcharset-wrapper.h,
set-program-name-wrapper.h, signal-wrappers.h, strdup-wrapper.h,
tmpfile-wrapper.h, unistd-wrappers.h, display-available.h:
Use convention 'void * fcn ()' for functions which return pointers.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 27 Apr 2017 09:48:57 -0700 |
parents | 092078913d54 |
children | 21baad6b35c4 |
rev | line source |
---|---|
2081 | 1 /* |
2 | |
23219
3ac9f9ecfae5
maint: Update copyright dates.
John W. Eaton <jwe@octave.org>
parents:
23083
diff
changeset
|
3 Copyright (C) 1996-2017 John W. Eaton |
2081 | 4 |
5 This file is part of Octave. | |
6 | |
7 Octave is free software; you can redistribute it and/or modify it | |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
8 under the terms of the GNU General Public License as published by |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
9 the Free Software Foundation; either version 3 of the License, or |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
10 (at your option) any later version. |
2081 | 11 |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
12 Octave is distributed in the hope that it will be useful, but |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
13 WITHOUT ANY WARRANTY; without even the implied warranty of |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
15 GNU General Public License for more details. |
2081 | 16 |
17 You should have received a copy of the GNU General Public License | |
7016 | 18 along with Octave; see the file COPYING. If not, see |
19 <http://www.gnu.org/licenses/>. | |
2081 | 20 |
21 */ | |
22 | |
20791
f7084eae3318
maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
23 #if ! defined (octave_oct_iostrm_h) |
17822
ebb3ef964372
maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
24 #define octave_oct_iostrm_h 1 |
2081 | 25 |
21244
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
21017
diff
changeset
|
26 #include "octave-config.h" |
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
21017
diff
changeset
|
27 |
8950
d865363208d6
include <iosfwd> instead of <iostream> in header files
John W. Eaton <jwe@octave.org>
parents:
7017
diff
changeset
|
28 #include <iosfwd> |
2877 | 29 |
2081 | 30 #include "oct-stream.h" |
31 | |
32 class | |
23059
b98ebcd7f11c
move some octave stream classes into octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
33 octave_base_iostream : public octave::base_stream |
2081 | 34 { |
35 public: | |
36 | |
21017
93748bcaec17
maint: Replace emtpy 'std::string ()' calls with "".
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
37 octave_base_iostream (const std::string& n = "", |
21662
5b9868c2e212
maint: Octave coding convention cleanups.
Rik <rik@octave.org>
parents:
21244
diff
changeset
|
38 std::ios::openmode m = std::ios::in | std::ios::out, |
21739
c4ab2e54f100
use namespace for oct_mach_info class
John W. Eaton <jwe@octave.org>
parents:
21662
diff
changeset
|
39 octave::mach_info::float_format ff |
c4ab2e54f100
use namespace for oct_mach_info class
John W. Eaton <jwe@octave.org>
parents:
21662
diff
changeset
|
40 = octave::mach_info::native_float_format ()) |
23059
b98ebcd7f11c
move some octave stream classes into octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
41 : octave::base_stream (m, ff), nm (n) { } |
2081 | 42 |
22869
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
43 // No copying! |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
44 |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
45 octave_base_iostream (const octave_base_iostream&) = delete; |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
46 |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
47 octave_base_iostream& operator = (const octave_base_iostream&) = delete; |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
48 |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
49 protected: |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
50 |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
51 ~octave_base_iostream (void) = default; |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
52 |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
53 public: |
2081 | 54 |
55 // Position a stream at OFFSET relative to ORIGIN. | |
56 | |
16011
8122286c69a9
initial large file support for 32-bit systems
John W. Eaton <jwe@octave.org>
parents:
15195
diff
changeset
|
57 int seek (off_t offset, int origin); |
2081 | 58 |
59 // Return current stream position. | |
60 | |
16011
8122286c69a9
initial large file support for 32-bit systems
John W. Eaton <jwe@octave.org>
parents:
15195
diff
changeset
|
61 off_t tell (void); |
2081 | 62 |
18812
9ac2357f19bc
doc: Replace "non-zero" with "nonzero" to match existing usage.
Rik <rik@octave.org>
parents:
17822
diff
changeset
|
63 // Return nonzero if EOF has been reached on this stream. |
2081 | 64 |
65 bool eof (void) const; | |
66 | |
67 // The name of the file. | |
68 | |
3523 | 69 std::string name (void) const { return nm; } |
2081 | 70 |
71 protected: | |
72 | |
73 void invalid_operation (void) const; | |
74 | |
75 private: | |
76 | |
3523 | 77 std::string nm; |
2081 | 78 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
79 virtual const char * stream_type (void) const = 0; |
2081 | 80 }; |
81 | |
82 class | |
83 octave_istream : public octave_base_iostream | |
84 { | |
85 public: | |
86 | |
21017
93748bcaec17
maint: Replace emtpy 'std::string ()' calls with "".
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
87 octave_istream (std::istream *arg = 0, const std::string& n = "") |
5015 | 88 : octave_base_iostream (n, std::ios::in, |
21739
c4ab2e54f100
use namespace for oct_mach_info class
John W. Eaton <jwe@octave.org>
parents:
21662
diff
changeset
|
89 octave::mach_info::native_float_format ()), |
5015 | 90 is (arg) |
91 { } | |
2081 | 92 |
23059
b98ebcd7f11c
move some octave stream classes into octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
93 static octave::stream |
21017
93748bcaec17
maint: Replace emtpy 'std::string ()' calls with "".
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
94 create (std::istream *arg = 0, const std::string& n = ""); |
2081 | 95 |
18812
9ac2357f19bc
doc: Replace "non-zero" with "nonzero" to match existing usage.
Rik <rik@octave.org>
parents:
17822
diff
changeset
|
96 // Return nonzero if EOF has been reached on this stream. |
3342 | 97 |
98 bool eof (void) const; | |
99 | |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
100 std::istream * input_stream (void) { return is; } |
2081 | 101 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
102 std::ostream * output_stream (void) { return 0; } |
2081 | 103 |
3340 | 104 protected: |
105 | |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
106 ~octave_istream (void) = default; |
3340 | 107 |
2081 | 108 private: |
109 | |
3523 | 110 std::istream *is; |
2081 | 111 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
112 const char * stream_type (void) const { return "octave_istream"; } |
2081 | 113 |
114 // No copying! | |
115 | |
22865
89756f2f085b
use c++11 style for deleting default copy constructor and assignment operator
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
116 octave_istream (const octave_istream&) = delete; |
2081 | 117 |
22865
89756f2f085b
use c++11 style for deleting default copy constructor and assignment operator
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
118 octave_istream& operator = (const octave_istream&) = delete; |
2081 | 119 }; |
120 | |
121 class | |
122 octave_ostream : public octave_base_iostream | |
123 { | |
124 public: | |
125 | |
21017
93748bcaec17
maint: Replace emtpy 'std::string ()' calls with "".
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
126 octave_ostream (std::ostream *arg, const std::string& n = "") |
5015 | 127 : octave_base_iostream (n, std::ios::out, |
21739
c4ab2e54f100
use namespace for oct_mach_info class
John W. Eaton <jwe@octave.org>
parents:
21662
diff
changeset
|
128 octave::mach_info::native_float_format ()), |
5015 | 129 os (arg) |
130 { } | |
2081 | 131 |
23059
b98ebcd7f11c
move some octave stream classes into octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
132 static octave::stream |
21017
93748bcaec17
maint: Replace emtpy 'std::string ()' calls with "".
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
133 create (std::ostream *arg, const std::string& n = ""); |
2081 | 134 |
18812
9ac2357f19bc
doc: Replace "non-zero" with "nonzero" to match existing usage.
Rik <rik@octave.org>
parents:
17822
diff
changeset
|
135 // Return nonzero if EOF has been reached on this stream. |
3342 | 136 |
137 bool eof (void) const; | |
138 | |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
139 std::istream * input_stream (void) { return 0; } |
2081 | 140 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
141 std::ostream * output_stream (void) { return os; } |
2081 | 142 |
3340 | 143 protected: |
144 | |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
145 ~octave_ostream (void) = default; |
3340 | 146 |
2081 | 147 private: |
148 | |
3523 | 149 std::ostream *os; |
2081 | 150 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
151 const char * stream_type (void) const { return "octave_ostream"; } |
2081 | 152 |
153 // No copying! | |
154 | |
22865
89756f2f085b
use c++11 style for deleting default copy constructor and assignment operator
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
155 octave_ostream (const octave_ostream&) = delete; |
2081 | 156 |
22865
89756f2f085b
use c++11 style for deleting default copy constructor and assignment operator
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
157 octave_ostream& operator = (const octave_ostream&) = delete; |
2081 | 158 }; |
159 | |
160 #endif |