Remoto - VFS: VFS_httpd_browser_request Class Reference
Remoto - VFS
VFS_httpd_browser_request Class Reference

A subclass of VFS_request. More...

#include <VFS_httpd_browser.h>

Inheritance diagram for VFS_httpd_browser_request:
VFS_request

Public Member Functions

 VFS_httpd_browser_request (VFS_request::requestType type, VFS_node *t, VFS_httpd_browser_responder *r)
 
virtual ~VFS_httpd_browser_request ()
 
virtual void execute ()
 Execute the request now that it has been satisfied. More...
 
- Public Member Functions inherited from VFS_request
 VFS_request (const VFS_request &c)
 Copy constructor. More...
 
 VFS_request (requestType type=VFS_request::none, VFS_node *origin=nullptr, QString path="", QString user="unknown", QJsonDocument data=QJsonDocument(), QJsonObject metadata=QJsonObject(), bool dontDelete=false)
 VFS_request constructor. More...
 
virtual ~VFS_request ()
 VFS_request destructor. More...
 
virtual void copyCallback (VFS_request *d)
 Copy the data from a callback to this VFS_request. More...
 
virtual VFS_requestcreateDiff (VFS_node *origin, QString originPath)
 VFS_request::createDiff. More...
 
virtual void fromJsonObject (QJsonObject json, bool includeInitialPath=false)
 Deserialize a JSON string into a VFS_request. More...
 
virtual VFS_requestgetCallback (VFS_node *receiver)
 Create and chain a VFS_request for a receiver. More...
 
bool hasCallback ()
 Check if this request has a callback set. More...
 
virtual void setCallback (VFS_request *c)
 Chain a callback onto this request. More...
 
virtual void timerEvent (QTimerEvent *e=nullptr)
 The callback for when a request times out. More...
 
virtual QByteArray toJson (postID id=0, bool ignoreSuccess=false, bool includeInitialPath=false)
 Serialize this request. More...
 

Protected Attributes

VFS_httpd_browser_responder_m_responder
 The responder object used during execute() More...
 

Additional Inherited Members

- Public Types inherited from VFS_request
enum  requestType {
  none = 0 , ls , create , rm ,
  read , write , metadata , diff ,
  submit , subscribe , unsubscribe , acl ,
  report , requestlock , releaselock , code ,
  codeDirectory
}
 Requests perform one of these actions. More...
 
- Static Public Member Functions inherited from VFS_request
static quint32 getSample ()
 Get the current sample count and clear the counter. More...
 
- Public Attributes inherited from VFS_request
VFS_request_callback
 request to execute once this request completes More...
 
QJsonDocument _data
 the request payload More...
 
bool _dontDelete
 A rarely used flag that will cause VFS_node::receiveResponse to not delete the node, which forces the developer to manually delete it when appropriate. More...
 
QString _initialPath
 the target path when the request was made (relative to the responder) More...
 
bool _isCallback
 whether or not to issue a response (IE, another request is chained to this request, whose response will trigger this one to respond) More...
 
QJsonObject _metadata
 the request payload More...
 
QList< notifyException_notifyExceptions
 a list of nodes not to send responses to for this transaction. For instance if a node submits to a node it is subscribed to, it doesn't expect to get the submit data back to itself. More...
 
VFS_node_origin
 the origin of the request More...
 
QString _originPath
 the subpath of the origin node More...
 
QString _path
 the target path remnant... the remaining path element once the request has found its target More...
 
QStringList _prefixPath
 the prefix elements found while searching for the target More...
 
QByteArray _rawData
 the request payload, but raw data More...
 
QString _reason
 if something (probably bad) happened, this is the reason More...
 
requestType _requestType
 the action this request is performing or requesting More...
 
VFS_node_responder
 the receiver of the request More...
 
VFS_session_session
 The session associated with this request. This is an optional value, and care should be taken to check for null as needed. More...
 
bool _success
 if the request was successfully completed More...
 
QString _user
 who initiated this request, mostly for logging More...
 
- Static Public Attributes inherited from VFS_request
static long _refcount = 0
 A reference counter for VFS_request instances, used for debugging to ensure all instances are properly deleted. More...
 
static quint32 _sampleCount = 0
 A count of the number of VFS_requests since the last sample was taken. More...
 
static QMutex _sampleLock
 A mutex to protect thread safety of samples. More...
 
static const char * requestTypeStrings []
 A printable string for each request type. More...
 

Detailed Description

A subclass of VFS_request.

This stores the responder object, which is needed when the VFS_request::execute() method is called.

Definition at line 69 of file VFS_httpd_browser.h.

Constructor & Destructor Documentation

◆ VFS_httpd_browser_request()

VFS_httpd_browser_request::VFS_httpd_browser_request ( VFS_request::requestType  type,
VFS_node t,
VFS_httpd_browser_responder r 
)
Parameters
typeThe VFS_request type
tThe VFS_request origin
rThe responder object

Definition at line 141 of file VFS_httpd_browser.cpp.

◆ ~VFS_httpd_browser_request()

VFS_httpd_browser_request::~VFS_httpd_browser_request ( )
virtual

Definition at line 147 of file VFS_httpd_browser.cpp.

Member Function Documentation

◆ execute()

void VFS_httpd_browser_request::execute ( )
virtual

Execute the request now that it has been satisfied.

Data is written to _responder->_data, and _responder->respond() is called, which sends the http response.

If the request _success==false, a 404 status will be set, and warnings will be logged.

See also
VFS_httpd_browser_responder

Reimplemented from VFS_request.

Definition at line 162 of file VFS_httpd_browser.cpp.

Member Data Documentation

◆ _m_responder

VFS_httpd_browser_responder* VFS_httpd_browser_request::_m_responder
protected

The responder object used during execute()

Definition at line 78 of file VFS_httpd_browser.h.


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