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

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


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)

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 

Used by Application to forward execution to the following Component

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

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)

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 

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.