Mercurial > octave
annotate libinterp/corefcn/oct-errno.h @ 23084:ef4d915df748
maint: Merge stable to default.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 23 Jan 2017 14:27:48 -0500 |
parents | 87e3163f6c87 e9a0469dedd9 |
children | 092078913d54 |
rev | line source |
---|---|
5465 | 1 // oct-errno.h.in |
2 /* | |
3 | |
22323
bac0d6f07a3e
maint: Update copyright notices for 2016.
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
4 Copyright (C) 2005-2016 John W. Eaton |
5465 | 5 |
6 This file is part of Octave. | |
7 | |
8 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
|
9 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
|
10 the Free Software Foundation; either version 3 of the License, or |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
11 (at your option) any later version. |
5465 | 12 |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
13 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
|
14 WITHOUT ANY WARRANTY; without even the implied warranty of |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
16 GNU General Public License for more details. |
5465 | 17 |
18 You should have received a copy of the GNU General Public License | |
7016 | 19 along with Octave; see the file COPYING. If not, see |
20 <http://www.gnu.org/licenses/>. | |
5465 | 21 |
22 */ | |
23 | |
20791
f7084eae3318
maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
24 #if ! defined (octave_oct_errno_h) |
17822
ebb3ef964372
maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
25 #define octave_oct_errno_h 1 |
5465 | 26 |
21244
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
27 #include "octave-config.h" |
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
28 |
8020
1d2bcc163c4d
oct-errno.h: include <cerrno>
John W. Eaton <jwe@octave.org>
parents:
7017
diff
changeset
|
29 #include <cerrno> |
5465 | 30 #include <map> |
31 #include <string> | |
32 | |
33 #include "oct-map.h" | |
34 | |
35 class | |
36 octave_errno | |
37 { | |
38 protected: | |
39 | |
40 octave_errno (void); | |
41 | |
42 public: | |
43 | |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
44 ~octave_errno (void) = default; |
5465 | 45 |
46 static bool instance_ok (void); | |
47 | |
13992
e1f76bfe0452
apply singleton_cleanup to a few more classes
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
48 static void cleanup_instance (void) { delete instance; instance = 0; } |
e1f76bfe0452
apply singleton_cleanup to a few more classes
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
49 |
5465 | 50 static int lookup (const std::string& name); |
51 | |
11057
4d9f310b32bb
replace Octave_map->octave_map in oct-errno
Jaroslav Hajek <highegg@gmail.com>
parents:
10160
diff
changeset
|
52 static octave_scalar_map list (void); |
5465 | 53 |
54 static int get (void) { return errno; } | |
55 | |
56 static int set (int val) | |
57 { | |
58 int retval = errno; | |
59 errno = val; | |
60 return retval; | |
61 } | |
62 | |
63 private: | |
64 | |
65 std::map<std::string, int> errno_tbl; | |
66 | |
67 static octave_errno *instance; | |
68 | |
69 int do_lookup (const std::string& name); | |
70 | |
11057
4d9f310b32bb
replace Octave_map->octave_map in oct-errno
Jaroslav Hajek <highegg@gmail.com>
parents:
10160
diff
changeset
|
71 octave_scalar_map do_list (void); |
5465 | 72 }; |
73 | |
74 #endif |