#pragma once #include "VirtualFileSystem.h" #include enum class SeekType { Absolute, // SEEK_SET RelativeToCurrent, // SEEK_CUR RelativeToEnd, // SEEK_END }; class FileHandle { public: explicit FileHandle(RetainPtr&&); ~FileHandle(); FileOffset lseek(FileOffset, SeekType); ssize_t read(byte* buffer, size_t count); ByteBuffer readEntireFile(); private: friend class VirtualFileSystem; RetainPtr m_vnode; FileOffset m_currentOffset { 0 }; };