Mercurial > octave
annotate libinterp/corefcn/oct-iostrm.h @ 23795:980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
* Backend.cc, BaseControl.h, ButtonGroup.cc, CheckBoxControl.cc,
Container.cc, ContextMenu.cc, ContextMenu.h, EditControl.cc, Figure.cc,
FigureWindow.cc, ListBoxControl.cc, Menu.cc, Menu.h, MouseModeActionGroup.cc,
Object.cc, ObjectProxy.cc, Panel.cc, PopupMenuControl.cc, PushButtonControl.cc,
PushTool.cc, RadioButtonControl.cc, SliderControl.cc, TextControl.cc,
ToggleButtonControl.cc, ToggleTool.cc, ToolBar.cc, ToolBar.h, ToolBarButton.cc,
ToolBarButton.h, QTerminal.h, BlockArray.cpp, Emulation.cpp, Filter.cpp,
Filter.h, History.cpp, KeyboardTranslator.cpp, QUnixTerminalImpl.h, Screen.cpp,
ScreenWindow.cpp, ScreenWindow.h, SelfListener.h, TerminalCharacterDecoder.cpp,
TerminalModel.cpp, TerminalView.cpp, TerminalView.h, kpty.cpp, dialog.cc,
dialog.h, files-dock-widget.cc, find-files-model.h, file-editor-tab.cc,
file-editor.cc, main-window.cc, octave-dock-widget.cc, octave-gui.cc,
parser.cc, resource-manager.cc, resource-manager.h, shortcut-manager.cc,
shortcut-manager.h, workspace-model.cc, workspace-view.cc, __magick_read__.cc,
c-file-ptr-stream.cc, c-file-ptr-stream.h, call-stack.cc, call-stack.h,
daspk.cc, dasrt.cc, dassl.cc, det.cc, display.h, error.cc, ft-text-renderer.cc,
gl-render.cc, gl2ps-print.cc, graphics.in.h, help.cc, input.cc, interpreter.cc,
load-path.cc, load-save.cc, ls-hdf5.cc, ls-hdf5.h, ls-mat5.cc, lsode.cc,
mex.cc, mxarray.in.h, oct-errno.h, oct-hist.cc, oct-iostrm.h, oct-procbuf.cc,
oct-procbuf.h, oct-stdstrm.h, oct-stream.cc, oct-stream.h, oct-strstrm.h,
oct-tex-parser.in.yy, octave-link.h, pager.cc, pager.h, pr-output.cc,
procstream.h, qz.cc, sighandlers.cc, svd.cc, symtab.cc, symtab.h,
text-renderer.cc, txt-eng.h, utils.cc, variables.cc, zfstream.cc, zfstream.h,
__glpk__.cc, __init_fltk__.cc, __ode15__.cc, audiodevinfo.cc, ccolamd.cc,
colamd.cc, dmperm.cc, gzip.cc, symbfact.cc, ov-base-int.cc, ov-base-int.h,
ov-base-mat.h, ov-base.cc, ov-base.h, ov-bool-mat.cc, ov-bool-sparse.cc,
ov-bool.cc, ov-builtin.h, ov-cell.cc, ov-class.cc, ov-complex.cc, ov-cx-mat.cc,
ov-cx-sparse.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov-fcn.cc, ov-fcn.h,
ov-float.cc, ov-flt-complex.cc, ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-java.cc,
ov-java.h, ov-mex-fcn.cc, ov-oncleanup.cc, ov-range.cc, ov-range.h,
ov-re-mat.cc, ov-re-sparse.cc, ov-scalar.cc, ov-str-mat.cc, ov-typeinfo.cc,
ov-typeinfo.h, ov-usr-fcn.cc, ov-usr-fcn.h, ov.cc, octave.cc, bp-table.cc,
bp-table.h, jit-ir.h, jit-typeinfo.cc, lex.h, profiler.cc, pt-arg-list.cc,
pt-array-list.cc, pt-assign.cc, pt-assign.h, pt-binop.cc, pt-binop.h,
pt-cell.cc, pt-classdef.cc, pt-classdef.h, pt-colon.cc, pt-colon.h, pt-decl.cc,
pt-decl.h, pt-eval.cc, pt-eval.h, pt-except.h, pt-fcn-handle.cc,
pt-fcn-handle.h, pt-idx.cc, pt-jit.cc, pt-loop.h, pt-mat.cc, pt-select.h,
pt-stmt.h, pt-tm-const.h, pt-unop.cc, pt-unop.h, pt.cc, Array-C.cc, Array-d.cc,
Array-f.cc, Array-fC.cc, Array-util.cc, Array.cc, Array.h, CMatrix.cc,
CSparse.cc, DiagArray2.h, MArray.h, MDiagArray2.h, MatrixType.cc, Sparse.cc,
Sparse.h, dMatrix.cc, dSparse.cc, fMatrix.cc, idx-vector.cc, idx-vector.h,
DAEFunc.h, DAERTFunc.h, ODEFunc.h, ODESFunc.h, eigs-base.cc, oct-fftw.cc,
oct-fftw.h, oct-rand.h, oct-spparms.h, schur.cc, sparse-chol.cc,
sparse-dmsolve.cc, sparse-lu.cc, sparse-qr.cc, child-list.h, dir-ops.cc,
dir-ops.h, file-ops.cc, lo-sysdep.cc, oct-env.h, oct-time.cc, cmd-edit.cc,
cmd-edit.h, cmd-hist.h, lo-regexp.cc, lo-regexp.h, lo-utils.cc, oct-shlib.cc,
oct-shlib.h, oct-sort.cc, oct-sort.h, quit.cc, singleton-cleanup.h, str-vec.cc:
Use C++11 nullptr rather than 0 in code (bug #51565).
author | Rik <rik@octave.org> |
---|---|
date | Tue, 25 Jul 2017 14:54:10 -0700 |
parents | 21baad6b35c4 |
children | 194eb4bd202b |
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 | |
23457
21baad6b35c4
maint: Use C++11 nullptr rather than 0 or NULL when possible.
Rik <rik@octave.org>
parents:
23446
diff
changeset
|
87 octave_istream (std::istream *arg = nullptr, 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 |
23457
21baad6b35c4
maint: Use C++11 nullptr rather than 0 or NULL when possible.
Rik <rik@octave.org>
parents:
23446
diff
changeset
|
94 create (std::istream *arg = nullptr, 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 |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23457
diff
changeset
|
102 std::ostream * output_stream (void) { return nullptr; } |
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 | |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23457
diff
changeset
|
139 std::istream * input_stream (void) { return nullptr; } |
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 |