mirror of
https://github.com/RGBCube/serenity
synced 2025-05-15 00:54:57 +00:00
25 lines
559 B
C++
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);
|
|
}
|
|
|