81 int flags = 0,
int mode = 0644);
105 [[nodiscard]] uv_file
file()
const;
138 std::string_view path);
178 std::string_view path,
179 uv_fs_event_flags flags);
static MultiPromise< DirEnt > readAll(const Loop &loop, std::string_view path)
Read all directory entries of the given directory.
Definition fs.cc:208
void close()
Close the directory.
Definition fs.cc:223
uv_dir_t * dir_
Definition fs.h:66
Directory & operator=(const Directory &)=delete
uv_loop_t * loop_
Definition fs.h:65
Promise< std::vector< DirEnt > > read(unsigned count=64)
Read up to count directory entries.
Definition fs.cc:180
static Promise< Directory > open(const Loop &loop, std::string_view path)
Open a directory for reading.
Definition fs.cc:168
Directory(const Directory &)=default
static Promise< void > mkdir(const Loop &loop, std::string_view path, int mode=0755)
Create a directory.
Definition fs.cc:143
~Directory()
Definition fs.cc:141
static Promise< void > rmdir(const Loop &loop, std::string_view path)
Remove a directory. It must be empty.
Definition fs.cc:156
Directory(uv_loop_t *loop, uv_dir_t *dir)
Definition fs.h:63
Promise< size_t > read(std::string &buffer, int64_t offset=-1)
Definition fs.cc:277
File & operator=(const File &)=delete
uv_loop_t * loop_
Definition fs.h:113
static Promise< void > unlink(const Loop &loop, std::string_view path)
Definition fs.cc:266
Promise< size_t > write(std::string_view buffer, int64_t offset=-1)
Definition fs.cc:294
File(uv_loop_t *loop, uv_file file)
Definition fs.h:111
uv_file file_
Definition fs.h:114
static Promise< File > open(const Loop &loop, std::string_view path, int flags=0, int mode=0644)
Definition fs.cc:251
~File()
Definition fs.cc:230
void close()
Close a file.
Definition fs.cc:316
uv_file file() const
Access the libuv file handle.
Definition fs.cc:311
File(const File &)=delete
MultiPromise< FileEvent > watch_()
Definition fs.cc:440
MultiPromise< FileEvent > watch()
Definition fs.cc:433
FsWatch & operator=(const FsWatch &)=delete
FsWatch(FsWatch &&)=default
FsWatch(const FsWatch &)=delete
FsWatch & operator=(FsWatch &&)=default
static Promise< FsWatch > createRecursive(const Loop &loop, std::string_view path)
Definition fs.cc:404
Promise< void > stopWatch(MultiPromise< FileEvent > watcher)
Definition fs.cc:450
void close()
Definition fs.cc:456
std::unique_ptr< uv_fs_event_t > uv_handle_
Definition fs.h:185
static Promise< FsWatch > create(const Loop &loop, std::string_view path)
Definition fs.cc:400
static Promise< FsWatch > createWithFlag(const Loop &loop, std::string_view path, uv_fs_event_flags flags)
Definition fs.cc:409
~FsWatch()
Definition fs.cc:390
static void onFsWatcherEvent(uv_fs_event_t *handle, const char *path, int events, uv_status status)
Definition fs.cc:458
FsWatch()
Definition fs.cc:388
Definition multipromise.h:127
int uv_status
Result of a libuv operation, an errno error code.
Definition internal_utils.h:22
Definition async_work.cc:18
uv_dirent_type_t type
Definition fs.h:40
std::string name
Definition fs.h:39
uv_status status
Definition fs.h:154
std::string path
Definition fs.h:152
FileEvent(uv_status s)
Definition fs.h:145
FileEvent(std::string p, uv_fs_event e)
Definition fs.h:143
FileEvent & operator=(const FileEvent &)=default
FileEvent & operator=(FileEvent &&)=default
uv_fs_event events
Definition fs.h:153
FileEvent(FileEvent &&)=default
FileEvent(const FileEvent &)=default