GNU Octave
6.2.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
dir-ops.h
Go to the documentation of this file.
1
////////////////////////////////////////////////////////////////////////
2
//
3
// Copyright (C) 1996-2021 The Octave Project Developers
4
//
5
// See the file COPYRIGHT.md in the top-level directory of this
6
// distribution or <https://octave.org/copyright/>.
7
//
8
// This file is part of Octave.
9
//
10
// Octave is free software: you can redistribute it and/or modify it
11
// under the terms of the GNU General Public License as published by
12
// the Free Software Foundation, either version 3 of the License, or
13
// (at your option) any later version.
14
//
15
// Octave is distributed in the hope that it will be useful, but
16
// WITHOUT ANY WARRANTY; without even the implied warranty of
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
// GNU General Public License for more details.
19
//
20
// You should have received a copy of the GNU General Public License
21
// along with Octave; see the file COPYING. If not, see
22
// <https://www.gnu.org/licenses/>.
23
//
24
////////////////////////////////////////////////////////////////////////
25
26
#if ! defined (octave_dir_ops_h)
27
#define octave_dir_ops_h 1
28
29
#include "octave-config.h"
30
31
#include <string>
32
33
#include "
str-vec.h
"
34
35
namespace
octave
36
{
37
namespace
sys
38
{
39
class
40
OCTAVE_API
41
dir_entry
42
{
43
44
// NOTE: This class cannot be used safely cross-platform (Windows) with
45
// non-ASCII characters in paths.
46
// Consider replacing the implementation using std::filesystem (C++ 17).
47
// In the meantime, consider using octave::sys::get_dirlist instead.
48
49
public
:
50
51
dir_entry
(
const
std::string&
n
=
""
)
52
:
name
(
n
), dir (nullptr), fail (false), errmsg ()
53
{
54
if
(!
name
.empty ())
55
open ();
56
}
57
58
dir_entry
(
const
dir_entry
&
d
)
59
:
name
(
d
.
name
), dir (
d
.dir), fail (
d
.fail), errmsg (
d
.errmsg) { }
60
61
dir_entry
& operator = (
const
dir_entry
&
d
)
62
{
63
if
(
this
!= &
d
)
64
{
65
name
=
d
.name;
66
dir =
d
.dir;
67
fail =
d
.fail;
68
errmsg =
d
.errmsg;
69
}
70
71
return
*
this
;
72
}
73
74
~dir_entry
(
void
) { close (); }
75
76
bool
open (
const
std::string& =
""
);
77
78
string_vector
read (
void
);
79
80
bool
close (
void
);
81
82
bool
ok
(
void
)
const
{
return
dir && ! fail; }
83
84
operator
bool ()
const
{
return
ok (); }
85
86
std::string
error
(
void
)
const
{
return
ok () ?
""
: errmsg; }
87
88
static
unsigned
int
max_name_length (
void
);
89
90
private
:
91
92
// Name of the directory.
93
std::string
name
;
94
95
// A pointer to the contents of the directory. We use void here to
96
// avoid possible conflicts with the way some systems declare the
97
// type DIR.
98
void
*
dir
;
99
100
// TRUE means the open for this directory failed.
101
bool
fail
;
102
103
// If a failure occurs, this contains the system error text.
104
std::string
errmsg
;
105
};
106
}
107
}
108
109
#endif
octave::sys::dir_entry
Definition:
dir-ops.h:42
octave::sys::dir_entry::dir
void * dir
Definition:
dir-ops.h:98
octave::sys::dir_entry::dir_entry
dir_entry(const std::string &n="")
Definition:
dir-ops.h:51
octave::sys::dir_entry::fail
bool fail
Definition:
dir-ops.h:101
octave::sys::dir_entry::errmsg
std::string errmsg
Definition:
dir-ops.h:104
octave::sys::dir_entry::~dir_entry
~dir_entry(void)
Definition:
dir-ops.h:74
octave::sys::dir_entry::name
std::string name
Definition:
dir-ops.h:93
octave::sys::dir_entry::error
std::string error(void) const
Definition:
dir-ops.h:86
octave::sys::dir_entry::ok
bool ok(void) const
Definition:
dir-ops.h:82
octave::sys::dir_entry::dir_entry
dir_entry(const dir_entry &d)
Definition:
dir-ops.h:58
string_vector
Definition:
str-vec.h:40
name
QString name
Definition:
gui-preferences-dw.h:51
d
F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE * d
Definition:
lo-slatec-proto.h:39
n
octave_idx_type n
Definition:
mx-inlines.cc:753
octave
Definition:
aepbalance.cc:41
str-vec.h
liboctave
system
dir-ops.h
Generated on Tue Apr 13 2021 15:27:51 for GNU Octave by
1.9.1