|
Remoto - VFS
|
Qt resource data node. More...
#include <VFS_qrc.h>
Public Member Functions | |
| Q_INVOKABLE | VFS_QRC (QString path, bool raw=false) |
| virtual | ~VFS_QRC () |
| virtual VFS_node * | find (VFS_request *r) |
| virtual bool | isContainer () |
| The VFS_QRC class is a read-only container. More... | |
| virtual void | ls (VFS_request *r) |
| List the contents of a path in this resource. More... | |
| virtual void | metadata (VFS_request *r) |
| Retrieve the metadata for a path. More... | |
| virtual void | read (VFS_request *r) |
| Return the data contents of this node, or if it's a container call ls() More... | |
| virtual void | rm (VFS_request *r) |
| Attempt to rm. More... | |
| virtual void | submit (VFS_request *r) |
| Attempt to submit. More... | |
| virtual void | subscribe (VFS_request *r) |
| Subscribe to a path. More... | |
| virtual void | write (VFS_request *r) |
| Attempt to write. More... | |
Public Member Functions inherited from VFS_node | |
| Q_INVOKABLE | VFS_node () |
| The VFS_node constructor will add its instance to the VFS_node::__allNodes global node registry, observing thread safety rules. More... | |
| virtual | ~VFS_node () |
| VFS_node destructor. More... | |
| virtual VFS_node * | append (QString name, VFS_node *node, bool containerCheck=true, QString user="server") |
| Append a VFS_node as a child of this node. More... | |
| QString | className () |
| Return the class name of a node. More... | |
| virtual VFS_request * | createRequest (VFS_request::requestType type, QString path, QString user="unknown", QJsonDocument data=QJsonDocument(), QJsonObject metadata=QJsonObject(), bool dontDelete=false) |
| Create a new VFS_request with this object as _origin. More... | |
| VFS_node * | find (QString path) |
| Find a node by string path. More... | |
| VFS_node * | findChildWithName (QString name) |
| Check if a child with a given name exists. More... | |
| virtual VFS_node * | mount () |
| Mount this node. More... | |
| virtual QString | reportDetails () |
| Additional details for a generated report. More... | |
| QString | uniqueChildName (QString name) |
| Generate a unique child name. More... | |
| virtual VFS_node * | unmount () |
| Unmount this node. More... | |
| virtual bool | validChildName (QString name) |
| Check if a node name is valid. More... | |
Private Attributes | |
| QString | _path |
| The Qt resource path prefix. Must start with ":/". More... | |
| bool | _raw |
| Whether to fetch data in JSON mode or RAW mode. More... | |
Additional Inherited Members | |
Public Slots inherited from VFS_node | |
| virtual void | applyDiff (VFS_request *r) |
| Apply a diff received via subscription. More... | |
| virtual void | executeRequest (VFS_request *t) |
| Based on the VFS_request::requestType, execute the function associated with an operation. More... | |
| void | notifySubscribers (VFS_node *origin, VFS_request *t) |
| Propagate a diff to subscribers. More... | |
| virtual void | receiveResponse (VFS_request *t) |
| Once a VFS_request has been completed, a response will be issued back to its _origin. More... | |
| void | remove (bool andDelete) |
| Remove a child node. More... | |
| virtual void | remove (VFS_node *node=nullptr, QString *name=nullptr, QString user="server") |
| Remove a child node from this node. More... | |
| virtual void | subtreeRequest (VFS_request *t) |
| find() the target of a VFS_request, and execute the request More... | |
| virtual void | unsubscribeAll (VFS_node *n) |
| Remove all references to a subscriber from this node. More... | |
Signals inherited from VFS_node | |
| void | diff (VFS_node *origin, VFS_request *t) |
| Emit a diff, which will trigger notifySubscribers() for a mounted node. More... | |
| void | finished (bool andDelete=false) |
Emitted if a thread fails to create its node, or a node is rm()'d, or any other reason a node has completed its lifecycle. It is deleted if andDelete==true. More... | |
| void | mounted () |
| Emitted when a node is mount()ed. More... | |
| void | unmounted (VFS_node *self) |
| Emitted when a node is unmount()ed. More... | |
Static Public Member Functions inherited from VFS_node | |
| static bool | __isNode (VFS_node *) |
| Check to see if a node is in the global registry. More... | |
| static QString | code (QString nodename, QString libname, QString &error) |
| Fetch code or any other resource from a node. More... | |
Protected Member Functions inherited from VFS_node | |
| virtual void | aclDefaults (VFS_request *r) |
| Return default values and features associated wth this node. More... | |
| void | addACLDefault (QJsonObject &acl, bool value, QString description="") |
| Add a default value to the acl object. More... | |
| void | addACLFeature (QJsonObject &acl, QString feature, bool value, QString description="") |
| Add a feature to the acl object. More... | |
| void | addACLFeatureGroup (QJsonObject &acl, QString feature, QString group, bool value) |
| Add a feature group to the acl object. More... | |
| void | addACLFeatureUser (QJsonObject &acl, QString feature, QString user, bool value) |
| Add a feature user to the acl object. More... | |
| void | addACLGroup (QJsonObject &acl, QString group, bool value) |
| Add a group to the acl object. More... | |
| void | addACLUser (QJsonObject &acl, QString user, bool value) |
| Add a user to the acl object. More... | |
| virtual QByteArray | icon () |
| Fetch the icon for a node. More... | |
| virtual void | issueRequest (VFS_node *target, VFS_request *t) |
| Issue a VFS_request to its target. More... | |
| virtual void | issueRequest (VFS_request *t) |
| A convenience function. More... | |
| virtual void | issueResponse (VFS_request *t) |
| Once a request has been completed, issue a response. More... | |
| virtual void | releaseLock (VFS_request *r) |
| Release a lock on this node. More... | |
| virtual void | report (VFS_request *r) |
| Report debugging information about the current state of this node. More... | |
| virtual void | requestLock (VFS_request *r) |
| Request a lock on this node. More... | |
| virtual void | unsubscribe (VFS_request *r) |
| Remove an entry from this node's _subscription list. More... | |
| virtual void | unsubscribePath (QString path) |
| Unsubscribe all references to a subpath. More... | |
Protected Attributes inherited from VFS_node | |
| VFS_children | _children |
| This node's children. More... | |
| QMutex | _lock |
| A recursive mutex that is local to this node. More... | |
| VFS_subscriptionType | _subscribers |
| This node's subscribers. These subscribers will receive diff notifications. More... | |
Qt resource data node.
VFS_QRC allows files to be embedded into an executable and read or browsed as entries in the VFS. Files and Directories are read-only.
This node cannot be created in an XML config file, because generally the data in a resource path is private and used only by a plugin.
|
explicit |
| path | Qt resource path, starting with a ":/" |
| raw | boolean value to put the node into 'raw' mode, which will not attempt to parse the contents as JSON and will instead return the raw contents in a "data" field of the JSON response. |
The resource path must exist and begin with a ":/". It must be compiled into the executable or a loaded plugin. Plugins will gain their own namespace, and can't cross this boundary using paths.
Definition at line 33 of file VFS_qrc.cpp.
|
virtual |
Definition at line 44 of file VFS_qrc.cpp.
|
virtual |
| r | The VFS_request object |
thisAlways returns this, regardless of if the path is valid. If a find request has encountered this node, the search must terminate here.
Reimplemented from VFS_node.
Definition at line 55 of file VFS_qrc.cpp.
|
virtual |
The VFS_QRC class is a read-only container.
Reimplemented from VFS_node.
Definition at line 277 of file VFS_qrc.cpp.
|
virtual |
List the contents of a path in this resource.
| r | The VFS_request object |
Navigate to the path in r->_path, and list the contents of a directory or file.
Reimplemented from VFS_node.
Definition at line 229 of file VFS_qrc.cpp.
|
virtual |
Retrieve the metadata for a path.
| r | The VFS_request object |
Fetch the metadata for r->_path, using the VFS_node_type::getType() resolver on the path's extension.
Note that the path does not have to be valid or exist for the resolver to use an extension.
Reimplemented from VFS_node.
Definition at line 161 of file VFS_qrc.cpp.
|
virtual |
Return the data contents of this node, or if it's a container call ls()
| r | The VFS_request object |
The base class implementation will return no data and _success will be false, except for the case of isContainer()==true, where ls() will be performed.
Data should be written to VFS_request::_data, and can be any JSON content.
Note that if a pane is subscribing to a node, the VFS_client will close panes that receive null as content. Even if you plan to do nothing with the read value of a node, you should provide some non-null data to prevent the pane from closing, or failing to open.
Reimplemented from VFS_node.
Definition at line 64 of file VFS_qrc.cpp.
|
virtual |
Attempt to rm.
| r | The VFS_request object |
This function will always cause r->_success to become false, as this node is read-only.
Reimplemented from VFS_node.
Definition at line 194 of file VFS_qrc.cpp.
|
virtual |
Attempt to submit.
| r | The VFS_request object |
This function will always cause r->_success to become false, as this node is read-only.
Reimplemented from VFS_node.
Definition at line 180 of file VFS_qrc.cpp.
|
virtual |
Subscribe to a path.
| r | The VFS_request object |
Attempt to subscribe to a path in this resource. This is kind of useless, as no diff will ever be generated from read-only data.
Reimplemented from VFS_node.
Definition at line 208 of file VFS_qrc.cpp.
|
virtual |
Attempt to write.
| r | The VFS_request object |
This function will always cause r->_success to become false, which is a failure.
If this was not overridden in the subclass, a default error message from VFS_node::write() would appear, but it wouldn't make sense.
Reimplemented from VFS_node.
Definition at line 145 of file VFS_qrc.cpp.
|
private |
|
private |