blob: 522f078806371bd7f06bcb38e79bef78b03ad234 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#ifndef TEACH_OS_KERNEL_FILESYSTEM_FILE_HPP
#define TEACH_OS_KERNEL_FILESYSTEM_FILE_HPP
#include <kstd/memory>
#include <cstddef>
namespace filesystem
{
struct inode;
struct file
{
explicit file(kstd::shared_ptr<inode> const & inode);
virtual ~file() = default;
virtual auto read(void * buffer, size_t offset, size_t size) const -> size_t = 0;
virtual auto write(void const * buffer, size_t offset, size_t size) -> size_t = 0;
protected:
kstd::shared_ptr<inode> m_inode;
};
} // namespace filesystem
#endif
|