Remoto - VFS: VFS_sessionTokenPruner Class Reference
Remoto - VFS

#include <VFS_sessionManager.h>

Inheritance diagram for VFS_sessionTokenPruner:
VFS_node

Public Member Functions

 VFS_sessionTokenPruner (QString path)
 Create a VFS_sessionTokenPruner. More...
 
virtual ~VFS_sessionTokenPruner ()
 Destroy the pruner. More...
 
bool run ()
 Attempt to run the prune operation. More...
 
bool running ()
 Return the _running state of the pruner. More...
 
void stop ()
 Stop the prune operation if it is running. 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_nodeappend (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_requestcreateRequest (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_nodefind (QString path)
 Find a node by string path. More...
 
virtual VFS_nodefind (VFS_request *r)
 Find a node using a VFS_request. More...
 
VFS_nodefindChildWithName (QString name)
 Check if a child with a given name exists. More...
 
virtual bool isContainer ()
 A VFS_node may have children. More...
 
virtual VFS_nodemount ()
 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_nodeunmount ()
 Unmount this node. More...
 
virtual bool validChildName (QString name)
 Check if a node name is valid. More...
 

Protected Slots

virtual void receiveResponse (VFS_request *t)
 Receive a response on a pruner request. More...
 

Private Member Functions

bool checkEntry (QJsonObject e)
 Check a token entry for validity. More...
 
void peel ()
 Remove a path from the stack or stop processing if empty. More...
 
void pruneEntry (QString p)
 Request to remove a token entry. More...
 

Private Attributes

QString _path
 The VFS path to prune. More...
 
QStringList _pathList
 The list of paths remaining to check. More...
 
bool _running
 The running state of the pruner. 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 ls (VFS_request *r)
 List the contents of this node. More...
 
virtual void metadata (VFS_request *r)
 Fetch the metadata of this node. 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 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 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...
 

Detailed Description

Definition at line 8 of file VFS_sessionManager.h.

Constructor & Destructor Documentation

◆ VFS_sessionTokenPruner()

VFS_sessionTokenPruner::VFS_sessionTokenPruner ( QString  path)

Create a VFS_sessionTokenPruner.

Parameters
pathThe path to prune

Definition at line 428 of file VFS_sessionManager.cpp.

◆ ~VFS_sessionTokenPruner()

VFS_sessionTokenPruner::~VFS_sessionTokenPruner ( )
virtual

Destroy the pruner.

If it is running we must cancel the QFuture and wait for finished.

Definition at line 442 of file VFS_sessionManager.cpp.

Member Function Documentation

◆ checkEntry()

bool VFS_sessionTokenPruner::checkEntry ( QJsonObject  o)
private

Check a token entry for validity.

Parameters
oThe token data
Returns
The boolean validity of the entry

A valid entry will have:

  • A non-empty username
  • A non-empty authpath
  • An expire in the future based on minutes since epoch

Definition at line 569 of file VFS_sessionManager.cpp.

◆ peel()

void VFS_sessionTokenPruner::peel ( )
private

Remove a path from the stack or stop processing if empty.

Definition at line 544 of file VFS_sessionManager.cpp.

◆ pruneEntry()

void VFS_sessionTokenPruner::pruneEntry ( QString  p)
private

Request to remove a token entry.

Parameters
pThe path to the token entry

Definition at line 586 of file VFS_sessionManager.cpp.

◆ receiveResponse

void VFS_sessionTokenPruner::receiveResponse ( VFS_request r)
protectedvirtualslot

Receive a response on a pruner request.

Parameters
rThe VFS_request object

Definition at line 497 of file VFS_sessionManager.cpp.

◆ run()

bool VFS_sessionTokenPruner::run ( )

Attempt to run the prune operation.

Returns
If the run request was successful.

If the pruner is already running, return false. Otherwise start the prune and return true.

Definition at line 455 of file VFS_sessionManager.cpp.

◆ running()

bool VFS_sessionTokenPruner::running ( )

Return the _running state of the pruner.

Returns
boolean _running

Definition at line 486 of file VFS_sessionManager.cpp.

◆ stop()

void VFS_sessionTokenPruner::stop ( )

Stop the prune operation if it is running.

Definition at line 474 of file VFS_sessionManager.cpp.

Member Data Documentation

◆ _path

QString VFS_sessionTokenPruner::_path
private

The VFS path to prune.

Definition at line 37 of file VFS_sessionManager.h.

◆ _pathList

QStringList VFS_sessionTokenPruner::_pathList
private

The list of paths remaining to check.

Definition at line 39 of file VFS_sessionManager.h.

◆ _running

bool VFS_sessionTokenPruner::_running
private

The running state of the pruner.

Definition at line 36 of file VFS_sessionManager.h.


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