-
-
Notifications
You must be signed in to change notification settings - Fork 226
/
Copy pathtabstractcontroller.h
80 lines (69 loc) · 3.24 KB
/
tabstractcontroller.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#pragma once
#include <QObject>
#include <QVariant>
#include <TGlobal>
class THttpRequest;
class TSession;
class TCookie;
class TFormValidator;
class TActionContext;
class T_CORE_EXPORT TAbstractController : public QObject {
public:
TAbstractController();
virtual ~TAbstractController() { }
virtual QString className() const;
virtual QString name() const = 0;
virtual QString activeAction() const = 0;
virtual QStringList arguments() const { return QStringList(); }
virtual const THttpRequest &httpRequest() const;
virtual const THttpRequest &request() const;
virtual const TSession &session() const;
virtual QString getRenderingData(const QString &templateName, const QVariantMap &vars = QVariantMap());
virtual QByteArray authenticityToken() const { return QByteArray(); }
virtual QVariantMap flashVariants() const { return QVariantMap(); }
virtual QVariant flashVariant(const QString &) const { return QVariant(); }
virtual QJsonObject flashVariantsJson() const { return QJsonObject(); }
virtual QJsonObject flashVariantJson(const QString &) const { return QJsonObject(); }
virtual void setFlash(const QString &name, const QVariant &value);
void exportVariant(const QString &name, const QVariant &value, bool overwrite = true);
virtual bool isUserLoggedIn() const;
const TActionContext *context() const { return _context; }
TActionContext *context() { return _context; }
void setContext(TActionContext *context) { _context = context; }
static QThread *currentThread() { return QThread::currentThread(); }
protected:
virtual TSession &session();
virtual bool addCookie(const TCookie &cookie);
virtual bool addCookie(const QByteArray &name, const QByteArray &value, const QDateTime &expire = QDateTime(), const QString &path = QString(), const QString &domain = QString(), bool secure = false, bool httpOnly = false, const QByteArray &sameSite = "Lax");
virtual bool addCookie(const QByteArray &name, const QByteArray &value, int64_t maxAge, const QString &path = QString(), const QString &domain = QString(), bool secure = false, bool httpOnly = false, const QByteArray &sameSite = "Lax");
virtual void reset() { }
QVariant variant(const QString &name) const;
void exportVariants(const QVariantMap &map);
void exportValidationErrors(const TFormValidator &validator, const QString &prefix = QString("err_"));
bool hasVariant(const QString &name) const;
const QVariantMap &allVariants() const { return _exportVars; }
QString viewClassName(const QString &action = QString()) const;
QString viewClassName(const QString &contoller, const QString &action) const;
private:
QVariantMap _exportVars;
TActionContext *_context {nullptr};
T_DISABLE_COPY(TAbstractController)
T_DISABLE_MOVE(TAbstractController)
friend class TDirectView;
};
/*!
\fn QString TAbstractController::className() const
Returns the class name.
*/
inline QString TAbstractController::className() const
{
return QString(metaObject()->className());
}
inline QVariant TAbstractController::variant(const QString &name) const
{
return _exportVars.value(name);
}
inline bool TAbstractController::hasVariant(const QString &name) const
{
return _exportVars.contains(name);
}