1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-10 01:51:03 +09:00
ladybird/VirtualFileSystem/FileHandle.cpp

25 lines
559 B
C++

#include "FileHandle.h"
#include "FileSystem.h"
#include "CharacterDevice.h"
FileHandle::FileHandle(RetainPtr<VirtualFileSystem::Node>&& vnode)
: m_vnode(std::move(vnode))
{
}
FileHandle::~FileHandle()
{
}
ByteBuffer FileHandle::read()
{
if (m_vnode->isCharacterDevice()) {
auto buffer = ByteBuffer::createUninitialized(1024);
ssize_t nread = m_vnode->characterDevice()->read(buffer.pointer(), buffer.size());
buffer.trim(nread);
return buffer;
}
return m_vnode->fileSystem()->readInode(m_vnode->inode);
}