cutelyst 3.9.1
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
dispatchtype.h
1/*
2 * SPDX-FileCopyrightText: (C) 2013-2022 Daniel Nicoletti <dantti12@gmail.com>
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5#ifndef DISPATCHTYPE_H
6#define DISPATCHTYPE_H
7
8#include <Cutelyst/cutelyst_global.h>
9
10#include <QtCore/qobject.h>
11#include <QtCore/qstringlist.h>
12
13namespace Cutelyst {
14
15class Context;
16class Action;
17class Request;
18class CUTELYST_LIBRARY DispatchType : public QObject
19{
21public:
23 enum MatchType { NoMatch = 0, PartialMatch, ExactMatch };
24 Q_ENUM(MatchType)
25
26
29 explicit DispatchType(QObject *parent = nullptr);
30 virtual ~DispatchType();
31
36 virtual QByteArray list() const = 0;
37
41 virtual MatchType match(Context *c, const QString &path, const QStringList &args) const = 0;
42
46 virtual QString uriForAction(Action *action, const QStringList &captures) const = 0;
47
51 virtual Action *expandAction(const Context *c, Action *action) const;
52
58 virtual bool registerAction(Action *action);
59
70 virtual bool inUse() = 0;
71
77 virtual bool isLowPrecedence() const;
78
79protected:
80 friend class Dispatcher;
81 friend class Application;
82
86 void setupMatchedAction(Context *c, Action *action) const;
87};
88
89} // namespace Cutelyst
90
91#endif // DISPATCHTYPE_H
This class represents a Cutelyst Action.
Definition action.h:35
The Cutelyst Context.
Definition context.h:39
virtual QString uriForAction(Action *action, const QStringList &captures) const =0
DispatchType(QObject *parent=nullptr)
void setupMatchedAction(Context *c, Action *action) const
virtual MatchType match(Context *c, const QString &path, const QStringList &args) const =0
virtual bool inUse()=0
virtual QByteArray list() const =0
list the registered actions To be implemented by subclasses
virtual Action * expandAction(const Context *c, Action *action) const
virtual bool isLowPrecedence() const
virtual bool registerAction(Action *action)
registerAction
The Cutelyst namespace holds all public Cutelyst API.
Definition Mainpage.dox:8
QObject(QObject *parent)
Q_OBJECTQ_OBJECT