remove the owned stuff from filesystem module

This commit is contained in:
q66 2015-09-06 16:20:51 +01:00
parent 60aba3a82b
commit c5fb814bb3

View file

@ -215,12 +215,10 @@ struct DirectoryRange;
struct DirectoryStream { struct DirectoryStream {
friend struct DirectoryRange; friend struct DirectoryRange;
DirectoryStream(): p_d(), p_path(), p_owned(false) {} DirectoryStream(): p_d(), p_path() {}
DirectoryStream(const DirectoryStream &) = delete; DirectoryStream(const DirectoryStream &) = delete;
DirectoryStream(DirectoryStream &&s): p_d(s.p_d), p_path(move(s.p_path)), DirectoryStream(DirectoryStream &&s): p_d(s.p_d), p_path(move(s.p_path)) {
p_owned(s.p_owned) {
s.p_d = nullptr; s.p_d = nullptr;
s.p_owned = false;
} }
DirectoryStream(ConstCharRange path): p_d() { DirectoryStream(ConstCharRange path): p_d() {
@ -243,17 +241,14 @@ struct DirectoryStream {
buf[path.size()] = '\0'; buf[path.size()] = '\0';
p_d = opendir(buf); p_d = opendir(buf);
p_path = path; p_path = path;
p_owned = true;
return is_open(); return is_open();
} }
bool is_open() const { return p_d != nullptr; } bool is_open() const { return p_d != nullptr; }
bool is_owned() const { return p_owned; }
void close() { void close() {
if (p_d && p_owned) closedir(p_d); if (p_d) closedir(p_d);
p_d = nullptr; p_d = nullptr;
p_owned = false;
} }
long size() const { long size() const {
@ -290,7 +285,6 @@ struct DirectoryStream {
void swap(DirectoryStream &s) { void swap(DirectoryStream &s) {
detail::swap_adl(p_d, s.p_d); detail::swap_adl(p_d, s.p_d);
detail::swap_adl(p_path, s.p_path); detail::swap_adl(p_path, s.p_path);
detail::swap_adl(p_owned, s.p_owned);
} }
DirectoryRange iter(); DirectoryRange iter();
@ -322,7 +316,6 @@ private:
DIR *p_d; DIR *p_d;
String p_path; String p_path;
bool p_owned;
}; };
struct DirectoryRange: InputRange< struct DirectoryRange: InputRange<