#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;
|
|
};
|
|
}
|