1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-19 00:15:08 +00:00
serenity/VirtualFileSystem/FileHandle.h
2018-10-14 21:19:27 +02:00

29 lines
579 B
C++

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