annotate liboctave/system/file-stat.h @ 30564:796f54d4ddbf stable

update Octave Project Developers copyright for the new year In files that have the "Octave Project Developers" copyright notice, update for 2021. In all .txi and .texi files except gpl.txi and gpl.texi in the doc/liboctave and doc/interpreter directories, change the copyright to "Octave Project Developers", the same as used for other source files. Update copyright notices for 2022 (not done since 2019). For gpl.txi and gpl.texi, change the copyright notice to be "Free Software Foundation, Inc." and leave the date at 2007 only because this file only contains the text of the GPL, not anything created by the Octave Project Developers. Add Paul Thomas to contributors.in.
author John W. Eaton <jwe@octave.org>
date Tue, 28 Dec 2021 18:22:40 -0500
parents 5ea53078eb8b
children e88a07dec498
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ////////////////////////////////////////////////////////////////////////
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 //
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 30081
diff changeset
3 // Copyright (C) 1996-2022 The Octave Project Developers
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
4 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 // distribution or <https://octave.org/copyright/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
7 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
8 // This file is part of Octave.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
9 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
11 // under the terms of the GNU General Public License as published by
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
13 // (at your option) any later version.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
14 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
18 // GNU General Public License for more details.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
19 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
20 // You should have received a copy of the GNU General Public License
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
21 // along with Octave; see the file COPYING. If not, see
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
22 // <https://www.gnu.org/licenses/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ////////////////////////////////////////////////////////////////////////
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
25
20791
f7084eae3318 maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents: 19697
diff changeset
26 #if ! defined (octave_file_stat_h)
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
27 #define octave_file_stat_h 1
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
28
21244
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 21017
diff changeset
29 #include "octave-config.h"
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 21017
diff changeset
30
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
31 #include <string>
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
32
3260
cd454a6fa1a4 [project @ 1999-08-02 21:55:15 by jwe]
jwe
parents: 3145
diff changeset
33 #include "oct-time.h"
cd454a6fa1a4 [project @ 1999-08-02 21:55:15 by jwe]
jwe
parents: 3145
diff changeset
34
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
35 #include <sys/types.h>
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
36
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
37 namespace octave
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
38 {
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
39 namespace sys
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
40 {
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
41 class
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
42 OCTAVE_API
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
43 base_file_stat
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
44 {
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
45 public:
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
46
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
47 base_file_stat (void)
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
48 : m_initialized (false), m_fail (false), m_errmsg (), m_mode (),
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
49 m_ino (), m_dev (), m_nlink (), m_uid (), m_gid (),
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
50 m_size (), m_atime (), m_mtime (), m_ctime (), m_rdev (),
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
51 m_blksize (), m_blocks () { }
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
52
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
53 base_file_stat (const base_file_stat& fs)
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
54 : m_initialized (fs.m_initialized), m_fail (fs.m_fail),
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
55 m_errmsg (fs.m_errmsg), m_mode (fs.m_mode), m_ino (fs.m_ino),
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
56 m_dev (fs.m_dev), m_nlink (fs.m_nlink), m_uid (fs.m_uid),
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
57 m_gid (fs.m_gid), m_size (fs.m_size), m_atime (fs.m_atime),
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
58 m_mtime (fs.m_mtime), m_ctime (fs.m_ctime), m_rdev (fs.m_rdev),
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
59 m_blksize (fs.m_blksize), m_blocks (fs.m_blocks) { }
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
60
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
61 base_file_stat& operator = (const base_file_stat& fs)
22402
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
62 {
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
63 if (this != &fs)
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
64 {
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
65 m_initialized = fs.m_initialized;
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
66 m_fail = fs.m_fail;
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
67 m_errmsg = fs.m_errmsg;
22402
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
68 m_mode = fs.m_mode;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
69 m_ino = fs.m_ino;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
70 m_dev = fs.m_dev;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
71 m_nlink = fs.m_nlink;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
72 m_uid = fs.m_uid;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
73 m_gid = fs.m_gid;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
74 m_size = fs.m_size;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
75 m_atime = fs.m_atime;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
76 m_mtime = fs.m_mtime;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
77 m_ctime = fs.m_ctime;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
78 m_rdev = fs.m_rdev;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
79 m_blksize = fs.m_blksize;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
80 m_blocks = fs.m_blocks;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
81 }
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
82
22402
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
83 return *this;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
84 }
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
85
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
86 // The minimum difference in file time stamp values.
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
87 // FIXME: This value should come from the filesystem itself.
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
88 // How can we get that info?
23696
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
89 sys::time time_resolution (void) const
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
90 {
23696
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
91 static sys::time resolution (1.0);
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
92 return resolution;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
93 }
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
94
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
95 // File status and info. The is_XXX functions will return false for
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
96 // file_stat objects that are not properly initialized. The others
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
97 // should all return 0 (or the equivalent, for the given object)
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
98 // which is likely not meaningful.
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
99
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
100 bool is_blk (void) const;
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
101 bool is_chr (void) const;
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
102 bool is_dir (void) const;
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
103 bool is_fifo (void) const;
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
104 bool is_lnk (void) const;
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
105 bool is_reg (void) const;
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
106 bool is_sock (void) const;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
107
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
108 static bool is_blk (mode_t mode);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
109 static bool is_chr (mode_t mode);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
110 static bool is_dir (mode_t mode);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
111 static bool is_fifo (mode_t mode);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
112 static bool is_lnk (mode_t mode);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
113 static bool is_reg (mode_t mode);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
114 static bool is_sock (mode_t mode);
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
115
21935
2f33052c68ff hide sys/stat.h header
John W. Eaton <jwe@octave.org>
parents: 21752
diff changeset
116 static bool have_struct_stat_st_rdev (void);
2f33052c68ff hide sys/stat.h header
John W. Eaton <jwe@octave.org>
parents: 21752
diff changeset
117 static bool have_struct_stat_st_blksize (void);
2f33052c68ff hide sys/stat.h header
John W. Eaton <jwe@octave.org>
parents: 21752
diff changeset
118 static bool have_struct_stat_st_blocks (void);
2f33052c68ff hide sys/stat.h header
John W. Eaton <jwe@octave.org>
parents: 21752
diff changeset
119
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
120 ino_t ino (void) const { return m_ino; }
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
121 dev_t dev (void) const { return m_dev; }
5476
941f0fc6b596 [project @ 2005-09-29 22:46:07 by jwe]
jwe
parents: 5307
diff changeset
122
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
123 nlink_t nlink (void) const { return m_nlink; }
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
124
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
125 uid_t uid (void) const { return m_uid; }
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
126 gid_t gid (void) const { return m_gid; }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
127
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
128 off_t size (void) const { return m_size; }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
129
23696
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
130 sys::time atime (void) const { return m_atime; }
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
131 sys::time mtime (void) const { return m_mtime; }
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
132 sys::time ctime (void) const { return m_ctime; }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
133
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
134 dev_t rdev (void) const { return m_rdev; }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
135
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
136 long blksize (void) const { return m_blksize; }
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
137 long blocks (void) const { return m_blocks; }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
138
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
139 mode_t mode (void) const { return m_mode; }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
140
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
141 std::string mode_as_string (void) const;
5476
941f0fc6b596 [project @ 2005-09-29 22:46:07 by jwe]
jwe
parents: 5307
diff changeset
142
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
143 bool ok (void) const { return m_initialized && ! m_fail; }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
144
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
145 operator bool () const { return ok (); }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
146
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
147 bool exists (void) const { return ok (); }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
148
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
149 std::string error (void) const { return ok () ? "" : m_errmsg; }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
150
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
151 // Has the file referenced by this object been modified since TIME?
23696
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
152 bool is_newer (const sys::time& time) const { return m_mtime > time; }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
153
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
154 // It's nice to be able to hide the file_stat object if we don't
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
155 // really care about it.
23696
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
156 static int is_newer (const std::string&, const sys::time&);
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
157
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
158 protected:
11506
964b7fd379f1 more constructor/destructor fixes
John W. Eaton <jwe@octave.org>
parents: 10312
diff changeset
159
22868
87e3163f6c87 use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents: 22755
diff changeset
160 virtual ~base_file_stat (void) = default;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
161
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
162 // TRUE means we have already called stat.
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
163 bool m_initialized;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
164
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
165 // TRUE means the stat for this file failed.
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
166 bool m_fail;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
167
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
168 // If a failure occurs, this contains the system error text.
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
169 std::string m_errmsg;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
170
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
171 // file type and permissions
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
172 mode_t m_mode;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
173
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
174 // serial number
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
175 ino_t m_ino;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
176
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
177 // device number
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
178 dev_t m_dev;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
179
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
180 // number of links
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
181 nlink_t m_nlink;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
182
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
183 // user ID of owner
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
184 uid_t m_uid;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
185
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
186 // group ID of owner
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
187 gid_t m_gid;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
188
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
189 // size in bytes, for regular files
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
190 off_t m_size;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
191
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
192 // time of last access
23696
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
193 sys::time m_atime;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
194
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
195 // time of last modification
23696
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
196 sys::time m_mtime;
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
197
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
198 // time of last file status change
23696
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
199 sys::time m_ctime;
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
200
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
201 // device number for special files
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
202 dev_t m_rdev;
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
203
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
204 // best I/O block size
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
205 long m_blksize;
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
206
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
207 // number of 512-byte blocks allocated
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
208 long m_blocks;
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
209 };
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
210
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
211 class
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
212 OCTAVE_API
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
213 file_stat : public base_file_stat
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
214 {
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
215 public:
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
216
23206
525c36d5f985 Workaround segfault in file_stat (bug #50234).
Rik <rik@octave.org>
parents: 23083
diff changeset
217 // This constructor must remain defined in the cpp file rather than in
525c36d5f985 Workaround segfault in file_stat (bug #50234).
Rik <rik@octave.org>
parents: 23083
diff changeset
218 // the header file (bug #50234).
525c36d5f985 Workaround segfault in file_stat (bug #50234).
Rik <rik@octave.org>
parents: 23083
diff changeset
219 file_stat (const std::string& n = "", bool fl = true);
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
220
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
221 file_stat (const file_stat& fs)
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
222 : base_file_stat (fs), m_file_name (fs.m_file_name),
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
223 m_follow_links (fs.m_follow_links) { }
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
224
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
225 file_stat& operator = (const file_stat& fs)
22402
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
226 {
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
227 if (this != &fs)
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
228 {
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
229 base_file_stat::operator = (fs);
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
230
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
231 m_file_name = fs.m_file_name;
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
232 m_follow_links = fs.m_follow_links;
22402
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
233 }
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
234
22402
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
235 return *this;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
236 }
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
237
23206
525c36d5f985 Workaround segfault in file_stat (bug #50234).
Rik <rik@octave.org>
parents: 23083
diff changeset
238 // This destructor must remain as an empty destructor defined in the
525c36d5f985 Workaround segfault in file_stat (bug #50234).
Rik <rik@octave.org>
parents: 23083
diff changeset
239 // cpp file rather than in the header file (bug #50234).
525c36d5f985 Workaround segfault in file_stat (bug #50234).
Rik <rik@octave.org>
parents: 23083
diff changeset
240 ~file_stat (void);
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
241
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
242 void get_stats (bool force = false)
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
243 {
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
244 if (! m_initialized || force)
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
245 update_internal (force);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
246 }
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
247
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
248 void get_stats (const std::string& n, bool force = false)
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
249 {
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
250 if (n != m_file_name || ! m_initialized || force)
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
251 {
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
252 m_initialized = false;
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
253
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
254 m_file_name = n;
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
255
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
256 update_internal (force);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
257 }
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
258 }
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
259
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
260 private:
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
261
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
262 // Name of the file.
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
263 std::string m_file_name;
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
264
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
265 // TRUE means follow symbolic links to the ultimate file (stat).
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
266 // FALSE means get information about the link itself (lstat).
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
267 bool m_follow_links;
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
268
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
269 void update_internal (bool force = false);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
270 };
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
271
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
272 class
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
273 OCTAVE_API
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
274 file_fstat : public base_file_stat
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
275 {
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
276 public:
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
277
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
278 file_fstat (int n) : base_file_stat (), m_fid (n)
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
279 {
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
280 update_internal ();
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
281 }
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
282
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
283 file_fstat (const file_fstat& fs)
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
284 : base_file_stat (fs), m_fid (fs.m_fid) { }
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
285
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
286 file_fstat& operator = (const file_fstat& fs)
22402
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
287 {
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
288 if (this != &fs)
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
289 {
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
290 base_file_stat::operator = (fs);
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
291
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
292 m_fid = fs.m_fid;
22402
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
293 }
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
294
22402
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
295 return *this;
4caa7b28d183 maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents: 22323
diff changeset
296 }
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
297
22868
87e3163f6c87 use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents: 22755
diff changeset
298 ~file_fstat (void) = default;
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
299
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
300 void get_stats (bool force = false)
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
301 {
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
302 if (! m_initialized || force)
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
303 update_internal (force);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
304 }
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
305
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
306 void get_stats (int n, bool force = false)
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
307 {
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
308 if (n != m_fid || ! m_initialized || force)
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
309 {
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
310 m_initialized = false;
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
311
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
312 m_fid = n;
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
313
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
314 update_internal (force);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
315 }
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
316 }
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
317
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
318 private:
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
319
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
320 // Open file descriptor.
30081
5ea53078eb8b maint: use "m_" prefix for member variables in file 'file-stat.h'.
Rik <rik@octave.org>
parents: 29358
diff changeset
321 int m_fid;
8549
424ba638d8f1 [mq]: fstat
file-io.cc (Ffstat): new function
parents: 7017
diff changeset
322
21736
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
323 void update_internal (bool force = false);
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
324 };
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
325 }
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
326 }
0504351a45e6 use namespace for file_stat classes
John W. Eaton <jwe@octave.org>
parents: 21730
diff changeset
327
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents:
diff changeset
328 #endif