10#ifndef MAXOS_FILESYSTEM_VFSRESOURCE_H
11#define MAXOS_FILESYSTEM_VFSRESOURCE_H
17#include <syscore/include/filesystem/file.h>
18#include <syscore/include/filesystem/directory.h>
22 namespace filesystem {
40 int read(
void* buffer,
size_t size,
size_t flags)
final;
41 int write(
const void* buffer,
size_t size,
size_t flags)
final;
53 void write_entries(
const void* buffer,
size_t size)
const;
54 [[nodiscard]]
size_t entries_size()
const;
63 int read(
void* buffer,
size_t size,
size_t flags)
final;
64 int write(
const void* buffer,
size_t size,
size_t flags)
final;
Defines a Buffer class for safe memory operations.
A wrapper for a Directory which exposes Directory operations as Resource operations.
int read(void *buffer, size_t size, size_t flags) final
read from a directory resource
int write(const void *buffer, size_t size, size_t flags) final
write to a directory resource
Directory * directory
The directory that this resource handles & exposes.
Handles a group of files (directory)
A wrapper for a File which exposes File operations as Resource operations.
int write(const void *buffer, size_t size, size_t flags) final
write to a file resource
File * file
The file that this resource handles & exposes.
int read(void *buffer, size_t size, size_t flags) final
read from a file resource
Handles file operations and information.
A resource registry for both Files & Directories.
processes::Resource * get_resource(const string &name) final
Gets a resource from the registry by name.
processes::Resource * create_resource(const string &name, size_t flags) final
Try to create a new resource with the specified name, will fail if the name is in use.
Combines all the filesystems across the partitions on each disk into a single filesystems and exposes...
Manages the creation, retention and destruction of resources of a certain type. Should be subclassed ...
Represents a generic resource that can be opened, closed, read from and written to.
string name()
Gets the name of this resource.
resource_type_t type()
Gets the type of this resource.
Defines classes for managing process resources such as files and devices.
::syscore::ResourceType resource_type_t
Alias to make the libsyscore ResourceType accessible here.
Defines a GlobalScheduler and Scheduler for managing processes and threads.
Defines a Virtual File System (VFS) class for managing multiple filesystems and providing a unified i...