cutelyst 4.9.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
Cutelyst::DispatchTypeChained Class Referencefinal

Describes a chained dispatch type. More...

#include <dispatchtypechained.h>

Inheritance diagram for Cutelyst::DispatchTypeChained:

Public Member Functions

 DispatchTypeChained (QObject *parent=nullptr)
 
 ~DispatchTypeChained () override
 
ActionexpandAction (const Context *c, Action *action) const final
 
bool inUse () override
 
QByteArray list () const override
 
MatchType match (Context *c, QStringView path, const QStringList &args) const override
 
bool registerAction (Action *action) override
 
QString uriForAction (Action *action, const QStringList &captures) const override
 
- Public Member Functions inherited from Cutelyst::DispatchType
 DispatchType (QObject *parent=nullptr)
 
virtual ~DispatchType ()
 
virtual bool isLowPrecedence () const
 

Additional Inherited Members

- Public Types inherited from Cutelyst::DispatchType
enum  MatchType { NoMatch , PartialMatch , ExactMatch }
 
- Protected Member Functions inherited from Cutelyst::DispatchType
void setupMatchedAction (Context *c, Action *action) const
 

Detailed Description

Describes a chained dispatch type.

Definition at line 21 of file dispatchtypechained.h.

Constructor & Destructor Documentation

◆ DispatchTypeChained()

DispatchTypeChained::DispatchTypeChained ( QObject * parent = nullptr)
explicit

Constructs a new DispatchTypeChained object with the given parent.

Definition at line 16 of file dispatchtypechained.cpp.

References Cutelyst::DispatchType::DispatchType().

Referenced by expandAction(), inUse(), list(), match(), registerAction(), and uriForAction().

◆ ~DispatchTypeChained()

DispatchTypeChained::~DispatchTypeChained ( )
override

Destryos the DispatchTypeChained object.

Definition at line 22 of file dispatchtypechained.cpp.

Member Function Documentation

◆ expandAction()

Action * DispatchTypeChained::expandAction ( const Context * c,
Action * action ) const
finalvirtual

Expand the action to a list of actions which is used in chained. The default implementation does nothing and returns a nullptr.

Reimplemented from Cutelyst::DispatchType.

Definition at line 318 of file dispatchtypechained.cpp.

References DispatchTypeChained(), Cutelyst::Action::attribute(), and Cutelyst::Action::attributes().

◆ inUse()

bool DispatchTypeChained::inUse ( )
overridevirtual

If false the dispatcher will be unregistered for performance reasons. This method can be used to prepare actions for dispatcher as in a Chain of Actions there is no garantee of registering order.

In the common case if the dispatcher has registered any action, or in some special case that it doesn't need actions it will return true.

Implements Cutelyst::DispatchType.

Definition at line 344 of file dispatchtypechained.cpp.

References DispatchTypeChained().

◆ list()

QByteArray DispatchTypeChained::list ( ) const
overridevirtual

Lists the registered actions. Has to be implemented by subclasses.

Implements Cutelyst::DispatchType.

Definition at line 27 of file dispatchtypechained.cpp.

References DispatchTypeChained(), Cutelyst::Action::attributes(), and Cutelyst::Action::numberOfCaptures().

◆ match()

DispatchType::MatchType DispatchTypeChained::match ( Context * c,
QStringView path,
const QStringList & args ) const
overridevirtual

◆ registerAction()

bool DispatchTypeChained::registerAction ( Action * action)
overridevirtual

Register an action and return true on success. The default implementation does nothing and returns always true.

Reimplemented from Cutelyst::DispatchType.

Definition at line 191 of file dispatchtypechained.cpp.

References DispatchTypeChained(), Cutelyst::Action::attributes(), Cutelyst::Component::name(), Cutelyst::Component::reverse(), and Cutelyst::Action::setAttributes().

◆ uriForAction()

QString DispatchTypeChained::uriForAction ( Action * action,
const QStringList & captures ) const
overridevirtual

Returns an uri for an action with given captures. Has to be implemented by subclasses.

Implements Cutelyst::DispatchType.

Definition at line 260 of file dispatchtypechained.cpp.

References DispatchTypeChained(), Cutelyst::Action::attributes(), and Cutelyst::Action::numberOfCaptures().