cutelyst
4.3.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
component.h
1
/*
2
* SPDX-FileCopyrightText: (C) 2014-2022 Daniel Nicoletti <dantti12@gmail.com>
3
* SPDX-License-Identifier: BSD-3-Clause
4
*/
5
#ifndef CUTELYST_COMPONENT_H
6
#define CUTELYST_COMPONENT_H
7
8
#include <Cutelyst/cutelyst_global.h>
9
10
#include <QtCore/qobject.h>
11
12
namespace
Cutelyst
{
13
14
class
Application;
15
class
Context;
16
class
Controller;
17
class
Dispatcher;
18
class
ComponentPrivate;
19
29
class
CUTELYST_LIBRARY
Component
:
public
QObject
30
{
31
Q_OBJECT
32
Q_DECLARE_PRIVATE(
Component
)
33
Q_FLAGS(Modifiers)
34
public
:
36
enum
Modifier
{
37
None = 0 << 1,
38
OnlyExecute = 1 << 1,
39
BeforeExecute = 2 << 1,
40
AroundExecute = 3 << 1,
41
AfterExecute = 4 << 1,
42
};
43
Q_ENUM(Modifier)
44
Q_DECLARE_FLAGS(Modifiers, Modifier)
45
46
51
explicit
Component
(
QObject
*parent =
nullptr
);
52
56
virtual
~Component
()
override
;
57
61
[[nodiscard]]
virtual
Modifiers modifiers()
const
;
62
67
[[nodiscard]]
QString
name() const noexcept;
68
73
void
setName(const
QString
&name);
74
79
[[nodiscard]]
QString
reverse() const noexcept;
80
85
void
setReverse(const
QString
&reverse);
86
93
virtual
bool
init(
Application
*application, const QVariantHash &args);
94
98
bool
execute(
Context
*c);
99
100
protected:
105
explicit
Component
(ComponentPrivate *d,
QObject
*parent =
nullptr
);
106
110
virtual
bool
beforeExecute(
Context
*c);
111
116
virtual
bool
aroundExecute(
Context
*c,
QStack
<
Component
*> stack);
117
121
virtual
bool
afterExecute(
Context
*c);
122
126
virtual
bool
doExecute(
Context
*c);
127
131
void
applyRoles(const
QStack
<
Component
*> &roles);
132
139
virtual
bool
dispatcherReady(const
Dispatcher
*dispatch,
Controller
*controller);
140
141
protected:
142
friend class
Controller
;
143
ComponentPrivate
144
*d_ptr;
145
};
146
147
}
// namespace Cutelyst
148
149
#endif
// CUTELYST_COMPONENT_H
Cutelyst::Application
The Cutelyst application.
Definition
application.h:66
Cutelyst::Component
The Cutelyst Component base class.
Definition
component.h:30
Cutelyst::Component::Modifier
Modifier
Definition
component.h:36
Cutelyst::Context
The Cutelyst Context.
Definition
context.h:42
Cutelyst::Controller
Cutelyst Controller base class.
Definition
controller.h:56
Cutelyst::Dispatcher
The Cutelyst Dispatcher.
Definition
dispatcher.h:29
Cutelyst
The Cutelyst namespace holds all public Cutelyst API.
Definition
group-core-actions.dox:1
QObject
QStack
QString
Cutelyst
component.h
Generated by
1.9.8