Cutelyst  1.5.0
Public Member Functions | Protected Member Functions | Protected Attributes | 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)
 

Protected Attributes

DispatcherPrivate * d_ptr
 

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 41 of file dispatcher.h.

Member Function Documentation

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

Returns a hash of registered controllers

bool Cutelyst::Dispatcher::dispatch ( Context c)
protected

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

QVector<DispatchType *> Cutelyst::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.

Action* Cutelyst::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.

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

Used by Application to forward execution to the following Component

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

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

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

Returns a named action from a given namespace.

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

Returns the named action by its full private path.

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

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

void Cutelyst::Dispatcher::prepareAction ( Context c)
protected

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

void Cutelyst::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

QString Cutelyst::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.