18 #include "actionchain_p.h"
19 #include "request_p.h"
21 #include "context_p.h"
30 const Action *
final = d->chain.last();
33 args.insert(QStringLiteral(
"namespace"), final->ns());
43 if (action->numberOfCaptures() > 0) {
44 d->captures += action->numberOfCaptures();
65 Request *request = c->request();
70 int &asyncDetached = c->d_ptr->asyncDetached;
71 int &captured = c->d_ptr->chainedCaptured;
72 int &chainedIx = c->d_ptr->chainedIx;
74 for (; chainedIx <
chain.
size(); ++chainedIx) {
76 c->d_ptr->pendingAsync.prepend(
this);
85 args.
append(captures.
at(captured++));
98 #include "moc_actionchain.cpp"
Holds a chain of Cutelyst Actions.
ActionChain(const ActionList &chain, QObject *parent=nullptr)
virtual qint8 numberOfCaptures() const noexcept override
ActionList chain() const noexcept
virtual bool doExecute(Context *c) override
This class represents a Cutelyst Action.
void setAttributes(const ParamsMultiMap &attributes)
void setupAction(const QVariantHash &args, Application *app)
bool dispatch(Context *c)
virtual qint8 numberOfCaptures() const noexcept
void setController(Controller *controller)
void setReverse(const QString &reverse)
void setName(const QString &name)
QStringList captures() const noexcept
void setArguments(const QStringList &arguments)
The Cutelyst namespace holds all public Cutelyst API.
void append(const T &value)
const T & at(int i) const const
const T & at(int i) const const