18 #include "actionchain_p.h"
19 #include "request_p.h"
23 using namespace Cutelyst;
30 const Action *
final = d->chain.last();
33 args.insert(QStringLiteral(
"namespace"), final->ns());
41 for (
Action *action : chain) {
43 if (action->numberOfCaptures() > 0) {
44 d->captures += action->numberOfCaptures();
65 Request *request = c->request();
69 Action *
final = d->chain.last();
72 for (
Action *action : chain) {
73 if (action !=
final) {
75 while (args.
size() < action->numberOfCaptures() && captured < captures.
size()) {
76 args.
append(captures.
at(captured++));
80 if (!action->dispatch(c)) {
87 return final->dispatch(c);
90 #include "moc_actionchain.cpp"
void setName(const QString &name)
void setReverse(const QString &reverse)
const T & at(int i) const
Holds a chain of Cutelyst Actions.
QStringList captures() const
void setAttributes(const QMap< QString, QString > &attributes)
virtual qint8 numberOfCaptures() const override
This class represents a Cutelyst Action.
void append(const T &value)
virtual bool doExecute(Context *c) override
void setArguments(const QStringList &arguments)
void setController(Controller *controller)
void setupAction(const QVariantHash &args, Application *app)
ActionChain(const ActionList &chain, QObject *parent=nullptr)