8 #include "controller.h" 25 return Component::OnlyExecute;
33 d->evaluateBool =
true;
37 d->listSignature =
true;
53 d->ns = args.value(u
"namespace"_s).toString();
55 d->attributes = args.value(u
"attributes"_s).value<
ParamsMultiMap>();
57 const QString argsAttr = d->attributes.value(u
"Args"_s);
58 if (!argsAttr.isEmpty()) {
59 d->numberOfArgs = qint8(argsAttr.toInt());
62 const QString capturesAttr = d->attributes.value(u
"CaptureArgs"_s);
64 d->numberOfCaptures = qint8(capturesAttr.
toInt());
77 return d->attributes.value(
name, defaultValue);
89 return d->controller->objectName();
105 return d->numberOfArgs == -1 || d->numberOfArgs == numberOfArgs;
115 return d->numberOfCaptures == -1 || d->numberOfCaptures == numberOfCaptures;
127 return d->numberOfArgs;
133 return d->numberOfCaptures;
158 if (d->evaluateBool) {
161 if (d->listSignature) {
162 ret = d->method.invoke(
165 switch (d->method.parameterCount()) {
174 ret = d->method.invoke(
178 ret = d->method.invoke(d->controller,
180 qReturnArg(methodRet),
186 ret = d->method.invoke(d->controller,
188 qReturnArg(methodRet),
195 ret = d->method.invoke(d->controller,
197 qReturnArg(methodRet),
205 ret = d->method.invoke(d->controller,
207 qReturnArg(methodRet),
216 ret = d->method.invoke(d->controller,
218 qReturnArg(methodRet),
228 ret = d->method.invoke(d->controller,
230 qReturnArg(methodRet),
241 ret = d->method.invoke(d->controller,
243 qReturnArg(methodRet),
255 ret = d->method.invoke(d->controller,
257 qReturnArg(methodRet),
283 if (d->listSignature) {
286 switch (d->method.parameterCount()) {
297 ret = d->method.invoke(
301 ret = d->method.invoke(d->controller,
309 ret = d->method.invoke(d->controller,
318 ret = d->method.invoke(d->controller,
328 ret = d->method.invoke(d->controller,
339 ret = d->method.invoke(d->controller,
351 ret = d->method.invoke(d->controller,
364 ret = d->method.invoke(d->controller,
384 #include "moc_action.cpp" Controller * controller() const noexcept
ParamsMultiMap attributes() const noexcept
bool doExecute(Context *c) override
virtual qint8 numberOfCaptures() const
void detach(Action *action=nullptr)
The Cutelyst Component base class.
virtual bool matchCaptures(int numberOfCaptures) const noexcept
This class represents a Cutelyst Action.
T value(qsizetype i) const const
Cutelyst Controller base class.
bool detached() const noexcept
void setAttributes(const ParamsMultiMap &attributes)
int toInt(bool *ok, int base) const const
bool isEmpty() const const
QString name() const noexcept
virtual bool init(Application *application, const QVariantHash &args)
The Cutelyst namespace holds all public Cutelyst API.
Action(QObject *parent=nullptr)
QString ns() const noexcept
virtual Modifiers modifiers() const override
void setController(Controller *controller)
void setupAction(const QVariantHash &args, Application *app)
virtual bool match(int numberOfArgs) const noexcept
The Cutelyst application.
void setMethod(const QMetaMethod &method)
void setState(bool state) noexcept
virtual qint8 numberOfArgs() const
QString attribute(const QString &name, const QString &defaultValue={}) const
QString className() const noexcept