cutelyst 3.9.1
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
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 (const 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 27 of file dispatcher.h.

Constructor & Destructor Documentation

◆ Dispatcher()

Dispatcher::Dispatcher ( QObject *  parent = nullptr)

Constructs a Dispatcher object with the given parent.

Definition at line 23 of file dispatcher.cpp.

◆ ~Dispatcher()

Dispatcher::~Dispatcher ( )

Definition at line 31 of file dispatcher.cpp.

Member Function Documentation

◆ controllers()

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

Returns a hash of registered controllers

Definition at line 259 of file dispatcher.cpp.

Referenced by setupActions().

◆ dispatch()

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 117 of file dispatcher.cpp.

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

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

◆ dispatchers()

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 293 of file dispatcher.cpp.

Referenced by setupActions().

◆ expandAction()

Action * Dispatcher::expandAction ( const 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 281 of file dispatcher.cpp.

References dispatch().

◆ forward() [1/2]

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

Used by Application to forward execution to the following Component

Definition at line 133 of file dispatcher.cpp.

References Cutelyst::Context::execute().

◆ forward() [2/2]

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 141 of file dispatcher.cpp.

References Cutelyst::Action::dispatch().

◆ getAction()

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

Returns a named action from a given namespace.

Definition at line 206 of file dispatcher.cpp.

References getActionByPath().

◆ getActionByPath()

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

Returns the named action by its full private path.

Definition at line 223 of file dispatcher.cpp.

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

◆ getActions()

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 237 of file dispatcher.cpp.

◆ prepareAction()

void Dispatcher::prepareAction ( Context c)
protected

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

Definition at line 154 of file dispatcher.cpp.

◆ setupActions()

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 36 of file dispatcher.cpp.

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

◆ uriForAction()

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 265 of file dispatcher.cpp.

References dispatch().

Friends And Related Symbol Documentation

◆ Application

friend class Application
friend

Definition at line 111 of file dispatcher.h.

◆ Context

friend class Context
friend

Definition at line 112 of file dispatcher.h.

◆ Controller

friend class Controller
friend

Definition at line 113 of file dispatcher.h.