Cutelyst  1.11.0
Public Member Functions | Protected Member Functions | Friends | List of all members
Cutelyst::Dispatcher Class Reference

The Cutelyst Dispatcher. More...

#include <Cutelyst/Dispatcher>

Inheritance diagram for Cutelyst::Dispatcher:
Inheritance graph
[legend]

Public Member Functions

 Dispatcher (QObject *parent=nullptr)
 
QMap< QString, Controller * > controllers () const
 
QVector< DispatchType * > dispatchers () const
 
ActionexpandAction (Context *c, Action *action) const
 
ActiongetAction (const QString &name, const QString &nameSpace=QString()) const
 
ActiongetActionByPath (const QString &path) const
 
ActionList getActions (const QString &name, const QString &nameSpace) const
 
QString uriForAction (Action *action, const QStringList &captures) const
 

Protected Member Functions

bool dispatch (Context *c)
 
bool forward (Context *c, Component *component)
 
bool forward (Context *c, const QString &opname)
 
void prepareAction (Context *c)
 
void setupActions (const QVector< Controller * > &controllers, const QVector< DispatchType * > &dispatchers, bool printActions)
 

Friends

class Application
 
class Context
 
class Controller
 

Detailed Description

This class is resposible for finding an Action for new Requests and invoking it.

Definition at line 40 of file dispatcher.h.

Constructor & Destructor Documentation

Dispatcher::Dispatcher ( QObject *  parent = nullptr)

Constructs a Dispatcher object with the given parent.

Definition at line 37 of file dispatcher.cpp.

Member Function Documentation

QMap< QString, Controller * > Dispatcher::controllers ( ) const

Returns a hash of registered controllers

Definition at line 266 of file dispatcher.cpp.

bool Dispatcher::dispatch ( Context c)
protected

Delegate the dispatch to the action that matched the url, or return a message about unknown resource

Definition at line 127 of file dispatcher.cpp.

References Cutelyst::Controller::_DISPATCH(), Cutelyst::Action::controller(), Cutelyst::Context::error(), and Cutelyst::Context::translate().

Referenced by expandAction(), setupActions(), and uriForAction().

QVector< DispatchType * > Dispatcher::dispatchers ( ) const

Returns a list of all dispatchers currently in use, if the dispatcher doesn't successfuly register an Action it's removed from the list.

Definition at line 300 of file dispatcher.cpp.

References Cutelyst::Action::className(), Cutelyst::Component::name(), and Cutelyst::Context::stack().

Referenced by prepareAction(), and setupActions().

Action * Dispatcher::expandAction ( Context c,
Action action 
) const

Expand an action into a full representation of the dispatch. mostly useful for chained where the returned Action will be of ActionChain type, other actions will just return a single action.

Definition at line 288 of file dispatcher.cpp.

References dispatch(), and Cutelyst::DispatchType::expandAction().

bool Dispatcher::forward ( Context c,
Component component 
)
protected

Used by Application to forward execution to the following Component

Definition at line 143 of file dispatcher.cpp.

References Cutelyst::Context::execute().

bool Dispatcher::forward ( Context c,
const QString &  opname 
)
protected

Used by Application to forward execution to opname that is resolved to an Action

Definition at line 151 of file dispatcher.cpp.

References Cutelyst::Action::dispatch().

Action * Dispatcher::getAction ( const QString &  name,
const QString &  nameSpace = QString() 
) const

Returns a named action from a given namespace.

Definition at line 215 of file dispatcher.cpp.

References getActionByPath().

Action * Dispatcher::getActionByPath ( const QString &  path) const

Returns the named action by its full private path.

Definition at line 231 of file dispatcher.cpp.

Referenced by Cutelyst::RoleACL::dispatcherReady(), and getAction().

ActionList Dispatcher::getActions ( const QString &  name,
const QString &  nameSpace 
) const

Returns a list of actions that match name on the desired namespace nameSpace

Definition at line 245 of file dispatcher.cpp.

void Dispatcher::prepareAction ( Context c)
protected

Used by Application to find a matching action for the current Context

Definition at line 164 of file dispatcher.cpp.

References dispatchers().

void Dispatcher::setupActions ( const QVector< Controller * > &  controllers,
const QVector< DispatchType * > &  dispatchers,
bool  printActions 
)
protected

Used by Application to register all Controllers Actions into the list of DispatchType

Definition at line 49 of file dispatcher.cpp.

References dispatch(), dispatchers(), and Cutelyst::DispatchType::inUse().

QString Dispatcher::uriForAction ( Action action,
const QStringList &  captures 
) const

Takes a Catalyst::Action object and action parameters and returns a URI part such that if $c->req->path were this URI part, this action would be dispatched to with $c->req->captures set to the supplied arrayref.

If the action object is not available for external dispatch or the dispatcher cannot determine an appropriate URI, this method will return a null byte array.

Definition at line 272 of file dispatcher.cpp.

References dispatch(), and Cutelyst::DispatchType::uriForAction().