Remoto - VFS
|
A subclass of VFS_httpd which will display a summary of the current state of the VFS. More...
#include <VFS_httpd_browser.h>
Public Member Functions | |
Q_INVOKABLE | VFS_httpd_browser (QString dataRootPath, quint16 port, QHostAddress addr=QHostAddress::Any, bool ssl=false, QString sslCertPath="", QString sslKeyPath="") |
virtual | ~VFS_httpd_browser () |
![]() | |
VFS_httpd (quint16 port, QHostAddress addr=QHostAddress::Any, bool ssl=false, QString sslCertPath="", QString sslKeyPath="") | |
VFS_httpd constructor. More... | |
virtual | ~VFS_httpd () |
virtual bool | isContainer () |
A VFS_httpd node cannot contain children. More... | |
![]() | |
VFS_tcp_server (quint16 port=0, QHostAddress address=QHostAddress::Any, bool ssl=false, QString sslCertPath="", QString sslKeyPath="") | |
Create a VFS_tcp_server node. More... | |
virtual | ~VFS_tcp_server () |
virtual QString | reportDetails () |
Report details of this node. More... | |
![]() | |
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... | |
virtual VFS_node * | find (VFS_request *r) |
Find a node using a VFS_request. More... | |
VFS_node * | findChildWithName (QString name) |
Check if a child with a given name exists. More... | |
virtual VFS_node * | mount () |
Mount this node. 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... | |
Protected Slots | |
virtual void | handle (QHttpRequest *req, QHttpResponse *resp) |
Handle an incoming request. More... | |
![]() | |
virtual void | createNewConnection () |
The server has received a new http connection request. More... | |
virtual void | handle (QHttpRequest *req, QHttpResponse *resp) |
Handle an incoming http request. More... | |
virtual bool | listen () |
Start listening for incoming connections. More... | |
![]() | |
virtual void | closeConnection () |
Close a socket connection. More... | |
virtual void | createNewConnection () |
The server has received a new connection request. More... | |
Protected Member Functions | |
VFS_node * | dataRoot () |
Resolve the _dataRootPath into a VFS_node. More... | |
![]() | |
void | initMimes () |
Initialize the mime map. More... | |
![]() | |
virtual VFS_tcp_client * | newClient (QTcpSocket *socket, bool ssl=false, QSslConfiguration sslConfiguration=QSslConfiguration()) |
Create a new VFS_tcp_client with the new socket. More... | |
virtual void | newConnection (VFS_tcp_client *c) |
Attach the clientMessage handler. More... | |
![]() | |
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 | ls (VFS_request *r) |
List the contents of this node. 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 | rm (VFS_request *r) |
Remove a child entry from a node, or the node itself. More... | |
virtual void | submit (VFS_request *r) |
Submit a diff to a node. More... | |
virtual void | subscribe (VFS_request *r) |
Add an entry to this node's _subscription list. 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... | |
virtual void | write (VFS_request *r) |
Write data to this node. More... | |
Protected Attributes | |
VFS_node * | _dataRoot |
The node found by resolving _dataRootPath. More... | |
QString | _dataRootPath |
The VFS root path to serve from. More... | |
![]() | |
QHttpServer | _httpd |
QHttpServer instance. More... | |
![]() | |
QHostAddress | _listenAddress |
Address(es) allowed to connect, or 0.0.0.0 if all are allowed. More... | |
quint16 | _port |
TCP port to listen on, or 0 to find an available one. More... | |
VFSQTcpServer | _socket |
TCP socket used for connections. More... | |
bool | _ssl |
Use ssl? More... | |
QString | _sslCertPath |
ssl cert file path More... | |
QSslConfiguration | _sslConfiguration |
ssl config built up from below paths More... | |
QString | _sslKeyPath |
ssl key file path More... | |
![]() | |
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... | |
Additional Inherited Members | |
![]() | |
virtual void | clientError (QAbstractSocket::SocketError error) |
A socket error has occurred. More... | |
virtual void | clientMessage (QByteArray message) |
A message has been received. More... | |
virtual bool | listen () |
Open the server socket and listen for new connections. More... | |
![]() | |
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... | |
![]() | |
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 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... | |
![]() | |
static QHash< QString, QString > | MIME_TYPES |
The mime type map. More... | |
A subclass of VFS_httpd which will display a summary of the current state of the VFS.
This class implements meaningful responses to the base class, creating a debugging tool for developers.
It will want to be started on its own port, and when browsed, will show the current state of the VFS including thread addresses, object addresses, the tree hierarchy, and additional useful information.
This will probably want to be placed in its own thread, as pages sometimes will need to be parsed and processed, and a full tree view request can create hundreds of http requests.
Definition at line 13 of file VFS_httpd_browser.h.
VFS_httpd_browser::VFS_httpd_browser | ( | QString | dataRootPath, |
quint16 | port, | ||
QHostAddress | addr = QHostAddress::Any , |
||
bool | ssl = false , |
||
QString | sslCertPath = "" , |
||
QString | sslKeyPath = "" |
||
) |
dataRootPath | The root VFS path to serve, probably '/' |
port | The port to listen on |
addr | Addresses allowed to connect, or 0.0.0.0 for all addresses. |
ssl | Is it in ssl mode? |
sslCertPath | The path to the cert file |
sslKeyPath | The path to the key file |
Definition at line 42 of file VFS_httpd_browser.cpp.
|
virtual |
Definition at line 49 of file VFS_httpd_browser.cpp.
|
protected |
Resolve the _dataRootPath into a VFS_node.
Definition at line 117 of file VFS_httpd_browser.cpp.
|
protectedvirtualslot |
Handle an incoming request.
req | The parsed request |
resp | The response object |
Because the data behind an httpd request may be fetched asynchronously, this function returns nothing, but will store the response object in a VFS_httpd_browser_responder instance.
VFS_httpd_browser_request instances are created and issued to the VFS as needed, namely for asynchronous requests to the VFS for VFS_node::report() data.
Definition at line 68 of file VFS_httpd_browser.cpp.
|
protected |
The node found by resolving _dataRootPath.
Definition at line 23 of file VFS_httpd_browser.h.
|
protected |
The VFS root path to serve from.
Definition at line 22 of file VFS_httpd_browser.h.