|
|
- #pragma once
-
- #include "gp/containers/buffer.hpp"
- #include "gp/containers/vector.hpp"
- #include "gp/ipc/file_description.hpp"
-
- namespace gp{
-
- struct file_char {
- // v cannot contain '/' or 0
- char v;
- };
-
- struct fs_user_representation {
- virtual uint32_t to_posix() = 0;
- virtual gp::vector<std::byte> to_sid() = 0;
- };
-
- class filesystem {
- virtual file_description* create(gp::buffer<file_char>, fs_user_representation&) = 0;
- virtual file_description* open(gp::buffer<file_char>, fs_user_representation&) = 0;
- virtual file_description* remove(gp::buffer<file_char>, fs_user_representation&) = 0;
- };
- }
|