ResidualVM logo ResidualVM website - Forums - Contact us BuildBot - Doxygen - Wiki curved edge

Abstract file system node. More...

#include <abstract-fs.h>

Inheritance diagram for AbstractFSNode:

List of all members.

Public Member Functions

virtual ~AbstractFSNode ()
 Destructor.
virtual bool exists () const =0
virtual bool getChildren (AbstractFSList &list, ListMode mode, bool hidden) const =0
 Return a list of child nodes of this directory node.
virtual Common::String getDisplayName () const
 Returns a human readable path string.
virtual Common::String getName () const =0
 Returns the last component of the path pointed by this FSNode.
virtual Common::String getPath () const =0
 Returns the 'path' of the current node, usable in fopen().
virtual bool isDirectory () const =0
 Indicates whether this path refers to a directory or not.
virtual bool isReadable () const =0
 Indicates whether the object referred by this path can be read from or not.
virtual bool isWritable () const =0
 Indicates whether the object referred by this path can be written to or not.
virtual
Common::SeekableReadStream
createReadStream ()=0
 Creates a SeekableReadStream instance corresponding to the file referred by this node.
virtual Common::WriteStreamcreateWriteStream ()=0
 Creates a WriteStream instance corresponding to the file referred by this node.
virtual bool create (bool isDirectoryFlag)=0
 Creates a file referred by this node.

Static Public Member Functions

static Common::FSNode makeFSNode (AbstractFSNode *realNode)
 Construct a FSNode object from an AbstractFSNode object.

Protected Types

typedef Common::FSNode::ListMode ListMode

Protected Member Functions

virtual AbstractFSNodegetChild (const Common::String &name) const =0
 Returns the child node with the given name.
virtual AbstractFSNodegetParent () const =0
 The parent node of this directory.

Static Protected Member Functions

static const char * lastPathComponent (const Common::String &str, const char sep)
 Returns the last component of a given path.

Friends

class Common::FSNode

Detailed Description

Abstract file system node.

Private subclasses implement the actual functionality.

Most of the methods correspond directly to methods in class FSNode, so if they are not documented here, look there for more information about the semantics.

Definition at line 42 of file abstract-fs.h.


Member Typedef Documentation

Definition at line 45 of file abstract-fs.h.


Constructor & Destructor Documentation

virtual AbstractFSNode::~AbstractFSNode (  )  [inline, virtual]

Destructor.

Definition at line 103 of file abstract-fs.h.


Member Function Documentation

virtual bool AbstractFSNode::create ( bool  isDirectoryFlag  )  [pure virtual]

Creates a file referred by this node.

Parameters:
isDirectoryFlag true if created file must be a directory
Returns:
true if file is created successfully

Implemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

virtual Common::SeekableReadStream* AbstractFSNode::createReadStream (  )  [pure 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

Implemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

virtual Common::WriteStream* AbstractFSNode::createWriteStream (  )  [pure 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.

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

Implemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

virtual bool AbstractFSNode::exists (  )  const [pure virtual]
virtual AbstractFSNode* AbstractFSNode::getChild ( const Common::String name  )  const [protected, pure 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:
name String containing the name of the child to create a new node.

Implemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

virtual bool AbstractFSNode::getChildren ( AbstractFSList list,
ListMode  mode,
bool  hidden 
) const [pure 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:
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.
Returns:
true if successful, false otherwise (e.g. when the directory does not exist).

Implemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

virtual Common::String AbstractFSNode::getDisplayName (  )  const [inline, virtual]

Returns a human readable path string.

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

Reimplemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

Definition at line 127 of file abstract-fs.h.

virtual Common::String AbstractFSNode::getName (  )  const [pure virtual]

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.

Implemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

virtual AbstractFSNode* AbstractFSNode::getParent (  )  const [protected, pure virtual]

The parent node of this directory.

The parent of the root is the root itself.

Implemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

virtual Common::String AbstractFSNode::getPath (  )  const [pure virtual]

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

Implemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

virtual bool AbstractFSNode::isDirectory (  )  const [pure virtual]

Indicates whether this path refers to a directory or not.

Implemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

virtual bool AbstractFSNode::isReadable (  )  const [pure 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.

Implemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

virtual bool AbstractFSNode::isWritable (  )  const [pure 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.

Implemented in AmigaOSFilesystemNode, ChRootFilesystemNode, POSIXFilesystemNode, RISCOSFilesystemNode, and WindowsFilesystemNode.

const char * AbstractFSNode::lastPathComponent ( const Common::String str,
const char  sep 
) [static, protected]

Returns the last component of a given path.

Examples: /foo/bar.txt would return /bar.txt /foo/bar/ would return /bar/

Parameters:
str String containing the path.
sep character used to separate path components
Returns:
Pointer to the first char of the last component inside str.

Definition at line 25 of file abstract-fs.cpp.

static Common::FSNode AbstractFSNode::makeFSNode ( AbstractFSNode realNode  )  [inline, static]

Construct a FSNode object from an AbstractFSNode object.

This is a helper to create Common::FSNode objects when the backend's FileSystemFactory cannot create the given AbstractFSNode object itself. All other code is supposed to use Common::FSNode's constructor itself.

Parameters:
realNode Pointer to a heap allocated instance. FSNode will take ownership of the pointer.

Definition at line 96 of file abstract-fs.h.


Friends And Related Function Documentation

friend class Common::FSNode [friend]

Definition at line 44 of file abstract-fs.h.


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


Generated on Sat Mar 16 2019 05:04:23 for ResidualVM by doxygen 1.7.1
curved edge   curved edge