34 lines
807 B
C++
34 lines
807 B
C++
#include "fs/FileDescriptor.h"
|
|
|
|
Descriptor::Descriptor() : m_is_open(false)
|
|
{
|
|
}
|
|
|
|
Descriptor::Descriptor(const Descriptor& other)
|
|
: m_is_open(other.m_is_open), m_can_read(other.m_can_read), m_can_write(other.m_can_write), m_node(other.m_node),
|
|
m_offset(other.m_offset)
|
|
{
|
|
}
|
|
|
|
void Descriptor::open(VFS::Node* node, bool can_read, bool can_write)
|
|
{
|
|
m_can_read = can_read;
|
|
m_can_write = can_write;
|
|
m_node = node;
|
|
m_offset = 0;
|
|
m_is_open = true;
|
|
}
|
|
|
|
ssize_t Descriptor::read(size_t size, char* buffer)
|
|
{
|
|
ssize_t result = VFS::read(m_node, m_offset, size, buffer);
|
|
m_offset += result;
|
|
return result;
|
|
}
|
|
|
|
ssize_t Descriptor::write(size_t size, const char* buffer)
|
|
{
|
|
ssize_t result = VFS::write(m_node, m_offset, size, buffer);
|
|
m_offset += result;
|
|
return result;
|
|
} |