#include <posix-fs.h>
Public Member Functions | |
POSIXFilesystemNode (const Common::String &path) | |
bool | exists () const override |
Common::U32String | getDisplayName () const override |
Common::String | getName () const override |
Common::String | getPath () const override |
bool | isDirectory () const override |
bool | isReadable () const override |
bool | isWritable () const override |
AbstractFSNode * | getChild (const Common::String &n) const override |
bool | getChildren (AbstractFSList &list, ListMode mode, bool hidden) const override |
AbstractFSNode * | getParent () const override |
Common::SeekableReadStream * | createReadStream () override |
Common::SeekableReadStream * | createReadStreamForAltStream (Common::AltStreamType altStreamType) override |
Common::SeekableWriteStream * | createWriteStream (bool atomic) override |
bool | createDirectory () override |
Public Member Functions inherited from AbstractFSNode | |
virtual | ~AbstractFSNode () |
Protected Member Functions | |
virtual AbstractFSNode * | makeNode (const Common::String &path) const |
POSIXFilesystemNode () | |
virtual void | setFlags () |
Protected Attributes | |
Common::String | _displayName |
Common::String | _path |
bool | _isDirectory |
bool | _isValid |
Additional Inherited Members | |
Static Public Member Functions inherited from AbstractFSNode | |
static Common::FSNode | makeFSNode (AbstractFSNode *realNode) |
Protected Types inherited from AbstractFSNode | |
typedef Common::FSNode::ListMode | ListMode |
Static Protected Member Functions inherited from AbstractFSNode | |
static const char * | lastPathComponent (const Common::String &str, const char sep) |
Implementation of the ScummVM file system API based on POSIX.
Parts of this class are documented in the base interface class, AbstractFSNode.
|
inlineprotected |
Plain constructor, for internal use only (hence protected).
POSIXFilesystemNode::POSIXFilesystemNode | ( | const Common::String & | path | ) |
Creates a POSIXFilesystemNode for a given path.
path | the path the new node should point to. |
|
inlineoverridevirtual |
Returns a human readable path string.
Implements AbstractFSNode.
|
inlineoverridevirtual |
Returns the last component of the path pointed by this FSNode.
Examples (POSIX): /foo/bar.txt would return /bar.txt /foo/bar/ would return /bar/
Implements AbstractFSNode.
|
inlineoverridevirtual |
Returns the 'path' of the current node, usable in fopen().
Implements AbstractFSNode.
|
inlineoverridevirtual |
Indicates whether this path refers to a directory or not.
Implements AbstractFSNode.
|
overridevirtual |
Indicates whether the object referred by this path can be read from or not.
If the path refers to a directory, readability implies being able to read and list the directory entries.
If the path refers to a file, readability implies being able to read the contents of the file.
Implements AbstractFSNode.
|
overridevirtual |
Indicates whether the object referred by this path can be written to or not.
If the path refers to a directory, writability implies being able to modify the directory entry (i.e. rename the directory, remove it or write files inside of it).
If the path refers to a file, writability implies being able to write data to the file.
Implements AbstractFSNode.
|
overridevirtual |
Returns the child node with the given name. When called on a non-directory node, it should handle this gracefully by returning 0. When called with a name not matching any of the files/dirs contained in this directory, a valid node should be returned, which returns 'false' upon calling the exists() method. The idea is that this node can then still can be used to create a new file via the createWriteStream() method.
Example: Calling getChild() for a node with path "/foo/bar" using name="file.txt", would produce a new node with "/foo/bar/file.txt" as path.
name | String containing the name of the child to create a new node. |
Implements AbstractFSNode.
Reimplemented in DrivePOSIXFilesystemNode.
|
overridevirtual |
Return a list of child nodes of this directory node. If called on a node that does not represent a directory, false is returned.
list | List to put the contents of the directory in. |
mode | Mode to use while listing the directory. |
hidden | Whether to include hidden files or not in the results. |
Implements AbstractFSNode.
Reimplemented in DrivePOSIXFilesystemNode.
|
overridevirtual |
The parent node of this directory. The parent of the root is the root itself.
Implements AbstractFSNode.
Reimplemented in DrivePOSIXFilesystemNode.
|
overridevirtual |
Creates a SeekableReadStream instance corresponding to the file referred by this node. This assumes that the node actually refers to a readable file. If this is not the case, 0 is returned.
Implements AbstractFSNode.
Reimplemented in DrivePOSIXFilesystemNode.
|
overridevirtual |
Creates a SeekableReadStream instance corresponding to an alternate stream of the file referred by this node. This assumes that the node actually refers to a readable file and the alt stream exists. If either is not the case, 0 is returned.
Reimplemented from AbstractFSNode.
|
overridevirtual |
Creates a WriteStream instance corresponding to the file referred by this node. This assumes that the node actually refers to a readable file. If this is not the case, 0 is returned.
When an atomic write stream is requested, the backend will write the data in a temporary file before moving it to its final destination.
atomic | Request for an atomic file write when closing. |
Implements AbstractFSNode.
Reimplemented in DrivePOSIXFilesystemNode.
|
overridevirtual |
Creates a directory referred by this node.
Implements AbstractFSNode.
|
protectedvirtual |
Tests and sets the _isValid and _isDirectory flags, using the stat() function.