ScummVM API documentation
PSPFilesystemNode Class Reference

#include <psp-fs.h>

Inheritance diagram for PSPFilesystemNode:
AbstractFSNode

Public Member Functions

 PSPFilesystemNode ()
 
 PSPFilesystemNode (const Common::String &p, bool verify=true)
 
virtual bool exists () const
 
virtual Common::U32String getDisplayName () const
 
virtual Common::String getName () const
 
virtual Common::String getPath () const
 
virtual bool isDirectory () const
 
virtual bool isReadable () const
 
virtual bool isWritable () const
 
virtual AbstractFSNodegetChild (const Common::String &n) const
 
virtual bool getChildren (AbstractFSList &list, ListMode mode, bool hidden) const
 
virtual AbstractFSNodegetParent () const
 
virtual Common::SeekableReadStreamcreateReadStream ()
 
virtual Common::SeekableWriteStreamcreateWriteStream (bool atomic)
 
virtual bool createDirectory ()
 
- Public Member Functions inherited from AbstractFSNode
virtual ~AbstractFSNode ()
 
virtual Common::SeekableReadStreamcreateReadStreamForAltStream (Common::AltStreamType altStreamType)
 

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)
 

Detailed Description

Implementation of the ScummVM file system API based on PSPSDK API.

Parts of this class are documented in the base interface class, AbstractFSNode.

Constructor & Destructor Documentation

◆ PSPFilesystemNode() [1/2]

PSPFilesystemNode::PSPFilesystemNode ( )

Creates a PSPFilesystemNode with the root node as path.

◆ PSPFilesystemNode() [2/2]

PSPFilesystemNode::PSPFilesystemNode ( const Common::String p,
bool  verify = true 
)

Creates a PSPFilesystemNode for a given path.

Parameters
pathCommon::String with the path the new node should point to.
verifytrue if the isValid and isDirectory flags should be verified during the construction.

Member Function Documentation

◆ getDisplayName()

virtual Common::U32String PSPFilesystemNode::getDisplayName ( ) const
inlinevirtual

Returns a human readable path string.

Note
By default, this method returns the value of getName().

Implements AbstractFSNode.

◆ getName()

virtual Common::String PSPFilesystemNode::getName ( ) const
inlinevirtual

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/

Note
This method is very architecture dependent, please check the concrete implementation for more information.

Implements AbstractFSNode.

◆ getPath()

virtual Common::String PSPFilesystemNode::getPath ( ) const
inlinevirtual

Returns the 'path' of the current node, usable in fopen().

Implements AbstractFSNode.

◆ isDirectory()

virtual bool PSPFilesystemNode::isDirectory ( ) const
inlinevirtual

Indicates whether this path refers to a directory or not.

Implements AbstractFSNode.

◆ isReadable()

virtual bool PSPFilesystemNode::isReadable ( ) const
virtual

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.

Returns
bool true if the object can be read, false otherwise.

Implements AbstractFSNode.

◆ isWritable()

virtual bool PSPFilesystemNode::isWritable ( ) const
virtual

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.

Returns
bool true if the object can be written to, false otherwise.

Implements AbstractFSNode.

◆ getChild()

virtual AbstractFSNode* PSPFilesystemNode::getChild ( const Common::String name) const
virtual

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.

Note
Handling calls on non-dir nodes gracefully makes it possible to switch to a lazy type detection scheme in the future.
Parameters
nameString containing the name of the child to create a new node.

Implements AbstractFSNode.

◆ getChildren()

virtual bool PSPFilesystemNode::getChildren ( AbstractFSList list,
ListMode  mode,
bool  hidden 
) const
virtual

Return a list of child nodes of this directory node. If called on a node that does not represent a directory, false is returned.

Parameters
listList to put the contents of the directory in.
modeMode to use while listing the directory.
hiddenWhether to include hidden files or not in the results.
Returns
true if successful, false otherwise (e.g. when the directory does not exist).

Implements AbstractFSNode.

◆ getParent()

virtual AbstractFSNode* PSPFilesystemNode::getParent ( ) const
virtual

The parent node of this directory. The parent of the root is the root itself.

Implements AbstractFSNode.

◆ createReadStream()

virtual Common::SeekableReadStream* PSPFilesystemNode::createReadStream ( )
virtual

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.

Returns
pointer to the stream object, 0 in case of a failure

Implements AbstractFSNode.

◆ createWriteStream()

virtual Common::SeekableWriteStream* PSPFilesystemNode::createWriteStream ( bool  atomic)
virtual

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.

Parameters
atomicRequest for an atomic file write when closing.
Returns
pointer to the stream object, 0 in case of a failure

Implements AbstractFSNode.

◆ createDirectory()

virtual bool PSPFilesystemNode::createDirectory ( )
virtual

Creates a directory referred by this node.

Returns
true if the directory is created successfully

Implements AbstractFSNode.


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