Cutelyst  2.13.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 (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
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
bool blockSignals (bool block)
 
const QObjectList & children () const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const
 
bool disconnect (const QObject *receiver, const char *method) const
 
void dumpObjectInfo ()
 
void dumpObjectInfo () const
 
void dumpObjectTree ()
 
void dumpObjectTree () const
 
QList< QByteArraydynamicPropertyNames () const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const
 
bool inherits (const char *className) const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const
 
bool isWindowType () const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const
 
QVariant property (const char *name) const
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
int startTimer (int interval, Qt::TimerType timerType)
 
QThreadthread () 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 Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const
 
int receivers (const char *signal) const
 
QObjectsender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 

Friends

class Application
 
class Context
 
class Controller
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
- Properties inherited from QObject
 objectName
 

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::Dispatcher ( QObject parent = nullptr)

Constructs a Dispatcher object with the given parent.

Definition at line 37 of file dispatcher.cpp.

References QObject::parent().

Member Function Documentation

◆ controllers()

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

Returns a hash of registered controllers

Definition at line 267 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 127 of file dispatcher.cpp.

References Cutelyst::Controller::_DISPATCH(), QString::arg(), Cutelyst::Action::controller(), Cutelyst::Context::error(), QString::isEmpty(), 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 301 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 289 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 143 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 151 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 215 of file dispatcher.cpp.

References getActionByPath(), and QString::isEmpty().

◆ 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.

References QString::count(), QString::prepend(), QString::remove(), and QString::startsWith().

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

References QVector::append(), QString::isEmpty(), QVector::rbegin(), and QVector::rend().

◆ prepareAction()

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 QString::isEmpty(), QList::isEmpty(), and QStringList::join().

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

References QVector::append(), controllers(), dispatch(), dispatchers(), QVector::insert(), 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 273 of file dispatcher.cpp.

References dispatch(), QString::isEmpty(), and QString::isNull().