#include <android-saf-fs.h>
Public Member Functions | |
AndroidSAFFilesystemNode (const AndroidSAFFilesystemNode &node) | |
~AndroidSAFFilesystemNode () override | |
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::SeekableWriteStream * | createWriteStream (bool atomic) override |
bool | createDirectory () override |
bool | remove () override |
void | removeTree () |
Public Member Functions inherited from AbstractFSNode | |
virtual | ~AbstractFSNode () |
virtual Common::SeekableReadStream * | createReadStreamForAltStream (Common::AltStreamType altStreamType) |
Static Public Member Functions | |
static void | initJNI () |
static AndroidSAFFilesystemNode * | makeFromPath (const Common::String &path) |
static AndroidSAFFilesystemNode * | makeFromTree (jobject safTree) |
Static Public Member Functions inherited from AbstractFSNode | |
static Common::FSNode | makeFSNode (AbstractFSNode *realNode) |
Static Public Attributes | |
static const char | SAF_MOUNT_POINT [] |
Protected Member Functions | |
AndroidSAFFilesystemNode (jobject safTree, jobject safNode) | |
AndroidSAFFilesystemNode (jobject safTree, jobject safParent, const Common::String &path, const Common::String &name) | |
void | cacheData () |
Protected Attributes | |
jobject | _safTree |
jobject | _safNode |
Common::String | _path |
int | _flags |
jobject | _safParent |
Common::String | _newName |
Additional Inherited Members | |
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.
Parts of this class are documented in the base interface class, AbstractFSNode.
|
protected |
Creates an AndroidSAFFilesystemNode given its tree and its node
safTree | SAF root in Java side |
safNode | SAF node in Java side |
AndroidSAFFilesystemNode::AndroidSAFFilesystemNode | ( | const AndroidSAFFilesystemNode & | node | ) |
Copy constructor.
|
override |
Destructor.
|
protected |
Creates an non-existent AndroidSAFFilesystemNode given its tree, parent node and name
safTree | SAF root in Java side |
safParent | SAF parent node in Java side |
path | Parent path |
name | Item name |
|
static |
Init JNI parts related to SAF Called by AndroidFilesystemFactory::AndroidFilesystemFactory()
|
static |
Creates an AndroidSAFFilesystemNode given its absolute path
path | Path of the node |
|
static |
Creates an AndroidSAFFilesystemNode given its tree object
safTree | SAF root in Java side. Must be a local reference and must not be used after this call. |
|
inlineoverridevirtual |
Returns a human readable path string.
Implements AbstractFSNode.
|
overridevirtual |
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.
|
overridevirtual |
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.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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.
|
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.
|
overridevirtual |
The parent node of this directory. The parent of the root is the root itself.
Implements AbstractFSNode.
|
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.
|
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.
|
overridevirtual |
Creates a directory referred by this node.
Implements AbstractFSNode.
void AndroidSAFFilesystemNode::removeTree | ( | ) |
Removes the SAF tree. Only works on the root node