roo_io
API Documentation for roo_io
Loading...
Searching...
No Matches
directory.cpp
Go to the documentation of this file.
2
4
5namespace roo_io {
6
7Directory::Directory(Status status) : status_(status) {}
8
10 if (status_ == kClosed) return;
11 if (status_ != kOk && status_ != kEndOfStream) return;
12 dir_->close();
13 if (isOpen()) {
14 status_ = dir_->status();
15 }
16}
17
18const char* Directory::path() const {
19 return status_ != kOk ? "" : dir_->path();
20}
21
22// const char* Directory::name() const {
23// return status_ != kOk ? "" : dir_->name();
24// }
25
27 if (!isOpen()) return;
28 dir_->rewind();
29 status_ = dir_->status();
30}
31
33 if (status() != kOk) return false;
34 bool result = dir_->read(entry_);
35 if (!result) {
36 status_ = dir_->status();
37 }
38 return result;
39}
40
41Directory::Directory(std::unique_ptr<DirectoryImpl> dir)
42 : dir_(std::move(dir)),
43 status_(dir_ == nullptr ? kClosed : dir_->status()) {}
44
45void Directory::Entry::set(const char* path, int name_offset, bool is_dir) {
46 path_ = path;
47 name_ = path + name_offset;
48 is_dir_ = is_dir;
49}
50
51} // namespace roo_io
const char * path() const
Definition directory.h:34
const char * path() const
Definition directory.cpp:18
bool isOpen() const
Definition directory.h:73
Status status() const
Definition directory.h:84
Directory(Status status=kClosed)
Definition directory.cpp:7
Definition byte.h:6
roo::basic_string_view< CharT, Traits > basic_string_view
Definition string_view.h:8
Status
Definition status.h:7
@ kOk
Definition status.h:8
@ kClosed
Definition status.h:10
@ kEndOfStream
Definition status.h:9