roo_io
API Documentation for roo_io
Loading...
Searching...
No Matches
posix_mount.h
Go to the documentation of this file.
1#pragma once
2
4
5#if ROO_IO_FS_SUPPORT_POSIX
6
7#include <memory>
8
10
11namespace roo_io {
12
13class PosixMountImpl : public MountImpl {
14 public:
15 PosixMountImpl(const char* mount_point, bool read_only,
16 std::function<void()> unmount_fn);
17
18 bool isReadOnly() const override;
19
20 Stat stat(const char* path) const override;
21
22 Status remove(const char* path) override;
23
24 Status rename(const char* pathFrom, const char* pathTo) override;
25
26 Status mkdir(const char* path) override;
27
28 Status rmdir(const char* path) override;
29
30 std::unique_ptr<DirectoryImpl> opendir(std::shared_ptr<MountImpl> mount,
31 const char* path) override;
32
33 std::unique_ptr<MultipassInputStream> fopen(std::shared_ptr<MountImpl> mount,
34 const char* path) override;
35
36 std::unique_ptr<OutputStream> fopenForWrite(
37 std::shared_ptr<MountImpl> mount, const char* path,
39
40 bool active() const override { return mount_point_ != nullptr; }
41
42 void deactivate() override;
43
44 private:
45 std::unique_ptr<const char[]> mount_point_;
46 bool active_;
47 bool read_only_;
48};
49
50} // namespace roo_io
51
52#endif // ROO_IO_FS_SUPPORT_POSIX
Definition byte.h:6
roo::basic_string_view< CharT, Traits > basic_string_view
Definition string_view.h:8
Status
Definition status.h:7