Mercurial > hg > octave-nkf
comparison liboctave/file-ops.h @ 8007:a2ab20ba78f7
make file_ops a proper singleton class
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 04 Aug 2008 23:44:50 -0400 |
parents | 05ee52d7fad6 |
children | d936b21b3a6b |
comparison
equal
deleted
inserted
replaced
8006:b0e7bbe7cd47 | 8007:a2ab20ba78f7 |
---|---|
33 | 33 |
34 struct | 34 struct |
35 OCTAVE_API | 35 OCTAVE_API |
36 file_ops | 36 file_ops |
37 { | 37 { |
38 protected: | |
39 | |
40 file_ops (void); | |
41 | |
42 public: | |
43 | |
38 static int mkdir (const std::string&, mode_t); | 44 static int mkdir (const std::string&, mode_t); |
39 static int mkdir (const std::string&, mode_t, std::string&); | 45 static int mkdir (const std::string&, mode_t, std::string&); |
40 | 46 |
41 static int mkfifo (const std::string&, mode_t); | 47 static int mkfifo (const std::string&, mode_t); |
42 static int mkfifo (const std::string&, mode_t, std::string&); | 48 static int mkfifo (const std::string&, mode_t, std::string&); |
82 static int umask (mode_t); | 88 static int umask (mode_t); |
83 | 89 |
84 static int unlink (const std::string&); | 90 static int unlink (const std::string&); |
85 static int unlink (const std::string&, std::string&); | 91 static int unlink (const std::string&, std::string&); |
86 | 92 |
87 static bool is_dir_sep (char); | 93 static bool is_dir_sep (char c) |
94 { | |
95 return instance_ok () ? instance->do_is_dir_sep (c) : false; | |
96 } | |
88 | 97 |
89 static std::string concat (const std::string&, const std::string&); | 98 static std::string concat (const std::string&, const std::string&); |
90 | 99 |
91 static char dir_sep_char; | 100 static char dir_sep_char (void) |
92 static std::string dir_sep_str; | 101 { |
93 static std::string dir_sep_chars; | 102 return instance_ok () ? instance->xdir_sep_char : 0; |
103 } | |
104 | |
105 static std::string dir_sep_str (void) | |
106 { | |
107 return instance_ok () ? instance->xdir_sep_str : std::string (); | |
108 } | |
109 | |
110 static std::string dir_sep_chars (void) | |
111 { | |
112 return instance_ok () ? instance->xdir_sep_chars : std::string (); | |
113 } | |
114 | |
115 private: | |
116 | |
117 // No copying! | |
118 | |
119 file_ops (const file_ops&); | |
120 | |
121 file_ops& operator = (const file_ops&); | |
122 | |
123 // The real thing. | |
124 static file_ops *instance; | |
125 | |
126 static bool instance_ok (void); | |
127 | |
128 char xdir_sep_char; | |
129 std::string xdir_sep_str; | |
130 std::string xdir_sep_chars; | |
131 | |
132 bool do_is_dir_sep (char c) { return xdir_sep_chars.find (c) != NPOS; } | |
94 }; | 133 }; |
95 | 134 |
96 #endif | 135 #endif |
97 | 136 |
98 /* | 137 /* |