ScummVM API documentation
DrivesPOSIXFilesystemFactory Class Reference

#include <posix-drives-fs-factory.h>

Inheritance diagram for DrivesPOSIXFilesystemFactory:
FilesystemFactory DevoptabFilesystemFactory

Public Member Functions

void addDrive (const Common::String &name)
 
void configureBuffering (DrivePOSIXFilesystemNode::BufferingMode bufferingMode, uint32 bufferSize)
 
- Public Member Functions inherited from FilesystemFactory
virtual ~FilesystemFactory ()
 
virtual Common::String getSystemFullPath (const Common::String &path) const
 

Protected Member Functions

AbstractFSNodemakeRootFileNode () const override
 
AbstractFSNodemakeCurrentDirectoryFileNode () const override
 
AbstractFSNodemakeFileNodePath (const Common::String &path) const override
 

Detailed Description

A FilesystemFactory implementation for filesystems with a special top-level directory with hard-coded entries but that otherwise implement the POSIX APIs.

For used with paths like these:

  • 'sdcard:/games/scummvm.ini'
  • 'hdd1:/usr/bin'

Member Function Documentation

◆ addDrive()

void DrivesPOSIXFilesystemFactory::addDrive ( const Common::String name)

Add a drive to the top-level directory

◆ configureBuffering()

void DrivesPOSIXFilesystemFactory::configureBuffering ( DrivePOSIXFilesystemNode::BufferingMode  bufferingMode,
uint32  bufferSize 
)

Configure file stream buffering

Parameters
bufferingModeselect the buffering implementation to use
bufferSizethe size of the IO buffer in bytes. A buffer size of 0 means the default size should be used

◆ makeRootFileNode()

AbstractFSNode* DrivesPOSIXFilesystemFactory::makeRootFileNode ( ) const
overrideprotectedvirtual

Returns a special node representing the filesystem root. The starting point for any file system browsing.

On Unix, this will be simply the node for / (the root directory). On Windows, it will be a special node which "contains" all drives (C:, D:, E:).

Implements FilesystemFactory.

◆ makeCurrentDirectoryFileNode()

AbstractFSNode* DrivesPOSIXFilesystemFactory::makeCurrentDirectoryFileNode ( ) const
overrideprotectedvirtual

Returns a node representing the "current directory". If your system does not support this concept, you can either try to emulate it or simply return some "sensible" default directory node, e.g. the same value as getRoot() returns.

Implements FilesystemFactory.

◆ makeFileNodePath()

AbstractFSNode* DrivesPOSIXFilesystemFactory::makeFileNodePath ( const Common::String path) const
overrideprotectedvirtual

Construct a node based on a path; the path is in the same format as it would be for calls to fopen().

Furthermore getNodeForPath(oldNode.path()) should create a new node identical to oldNode. Hence, we can use the "path" value for persistent storage e.g. in the config file.

Parameters
pathThe path string to create a FSNode for.

Implements FilesystemFactory.


The documentation for this class was generated from the following file: