cutelyst 4.3.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
|
The Cutelyst Context. More...
#include <Cutelyst/Context>
Public Slots | |
void | finalize () |
Public Member Functions | |
Context (Application *app) | |
virtual | ~Context () |
Action * | action () const noexcept |
QString | actionName () const noexcept |
Application * | app () const noexcept |
void | appendError (const QString &error) |
void | attachAsync () |
QVariantMap | config () const noexcept |
QVariant | config (const QString &key, const QVariant &defaultValue={}) const |
Controller * | controller () const noexcept |
Controller * | controller (QStringView name) const |
QString | controllerName () const noexcept |
View * | customView () const noexcept |
void | detach (Action *action=nullptr) |
void | detachAsync () noexcept |
bool | detached () const noexcept |
Dispatcher * | dispatcher () const noexcept |
Engine * | engine () const noexcept |
bool | error () const noexcept |
QStringList | errors () const noexcept |
bool | execute (Component *code) |
bool | forward (Component *component) |
bool | forward (QStringView action) |
Action * | getAction (QStringView action, QStringView ns={}) const |
QVector< Action * > | getActions (QStringView action, QStringView ns={}) const |
QLocale | locale () const noexcept |
QString | ns () const noexcept |
template<typename T > | |
T | plugin () |
QVector< Plugin * > | plugins () const |
QString | qtTrId (const char *id, int n=-1) const |
Request * | req () const noexcept |
Request * | request () const noexcept |
Response * | res () const noexcept |
Response * | response () const noexcept |
bool | setCustomView (QStringView name) |
void | setLocale (const QLocale &locale) |
void | setStash (const QString &key, const ParamsMultiMap &map) |
void | setStash (const QString &key, const QVariant &value) |
void | setState (bool state) noexcept |
QStack< Component * > | stack () const noexcept |
QVariantHash & | stash () |
QVariant | stash (const QString &key) const |
QVariant | stash (const QString &key, const QVariant &defaultValue) const |
void | stash (const QVariantHash &unite) |
bool | stashRemove (const QString &key) |
QVariant | stashTake (const QString &key) |
bool | state () const noexcept |
QString | translate (const char *context, const char *sourceText, const char *disambiguation=nullptr, int n=-1) const |
QUrl | uriFor (Action *action, const ParamsMultiMap &queryValues) const |
QUrl | uriFor (Action *action, const QStringList &captures={}, const QStringList &args={}, const ParamsMultiMap &queryValues={}) const |
QUrl | uriFor (const QString &path, const ParamsMultiMap &queryValues) const |
QUrl | uriFor (const QString &path={}, const QStringList &args={}, const ParamsMultiMap &queryValues={}) const |
QUrl | uriForAction (QStringView path, const ParamsMultiMap &queryValues) const |
QUrl | uriForAction (QStringView path, const QStringList &captures={}, const QStringList &args={}, const ParamsMultiMap &queryValues={}) const |
View * | view (QStringView name={}) const |
Public Member Functions inherited from QObject | |
QObject (QObject *parent) | |
bool | blockSignals (bool block) |
const QObjectList & | children () const const |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
void | deleteLater () |
void | destroyed (QObject *obj) |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
bool | disconnect (const QObject *receiver, const char *method) const const |
void | dumpObjectInfo () const const |
void | dumpObjectTree () const const |
QList< QByteArray > | dynamicPropertyNames () const const |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (Qt::FindChildOptions options) const const |
bool | inherits (const char *className) const const |
void | installEventFilter (QObject *filterObj) |
bool | isQuickItemType () const const |
bool | isWidgetType () const const |
bool | isWindowType () const const |
void | killTimer (int id) |
virtual const QMetaObject * | metaObject () const const |
void | moveToThread (QThread *targetThread) |
QString | objectName () const const |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const const |
QVariant | property (const char *name) const const |
Q_CLASSINFO (Name, Value) | |
Q_DISABLE_COPY (Class) | |
Q_DISABLE_COPY_MOVE (Class) | |
Q_EMIT Q_EMIT | |
Q_ENUM (...) | |
Q_ENUM_NS (...) | |
Q_ENUMS (...) | |
Q_FLAG (...) | |
Q_FLAG_NS (...) | |
Q_FLAGS (...) | |
Q_GADGET Q_GADGET | |
Q_GADGET_EXPORT (EXPORT_MACRO) | |
Q_INTERFACES (...) | |
Q_INVOKABLE Q_INVOKABLE | |
Q_MOC_INCLUDE Q_MOC_INCLUDE | |
Q_NAMESPACE Q_NAMESPACE | |
Q_NAMESPACE_EXPORT (EXPORT_MACRO) | |
Q_OBJECT Q_OBJECT | |
Q_PROPERTY (...) | |
Q_REVISION Q_REVISION | |
Q_SET_OBJECT_NAME (Object) | |
Q_SIGNAL Q_SIGNAL | |
Q_SIGNALS Q_SIGNALS | |
Q_SLOT Q_SLOT | |
Q_SLOTS Q_SLOTS | |
T | qobject_cast (const QObject *object) |
T | qobject_cast (QObject *object) |
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT | |
void | removeEventFilter (QObject *obj) |
void | setObjectName (const QString &name) |
void | setObjectName (QAnyStringView name) |
void | setParent (QObject *parent) |
bool | setProperty (const char *name, const QVariant &value) |
bool | signalsBlocked () const const |
int | startTimer (int interval, Qt::TimerType timerType) |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType) |
QThread * | thread () const const |
Protected Member Functions | |
Context (ContextPrivate *priv) | |
Protected Member Functions inherited from QObject | |
virtual void | childEvent (QChildEvent *event) |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | customEvent (QEvent *event) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
bool | isSignalConnected (const QMetaMethod &signal) const const |
int | receivers (const char *signal) const const |
QObject * | sender () const const |
int | senderSignalIndex () const const |
virtual void | timerEvent (QTimerEvent *event) |
Properties | |
Action * | action |
QString | actionName |
QVariantMap | config |
Controller * | controller |
QString | controllerName |
QString | namespace |
QString | ns |
Request * | req |
Request * | request |
bool | state |
Properties inherited from QObject | |
objectName | |
Friends | |
class | Action |
class | ActionChain |
class | Application |
class | Async |
class | Controller |
class | DispatchType |
class | Engine |
class | Plugin |
Additional Inherited Members | |
Static Public Member Functions inherited from QObject | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
bool | disconnect (const QMetaObject::Connection &connection) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
Public Attributes inherited from QObject | |
typedef | QObjectList |
This is the context class that glues Request and Response plus some helper methods.
Context::Context | ( | Application * | app | ) |
Constructs a new DUMMY Context object that is child of Application.
Definition at line 29 of file context.cpp.
References app(), Cutelyst::Request::body(), Cutelyst::Application::defaultHeaders(), Cutelyst::Application::defaultLocale(), QIODevice::open(), QIODeviceBase::ReadWrite, and req.
|
virtual |
Destroys the Context object. This will also delete the associated Request and Response.
Definition at line 43 of file context.cpp.
|
protected |
Constructs a new Context object using private implementation.
Definition at line 24 of file context.cpp.
|
noexcept |
Returns a pointer to the current action.
Definition at line 109 of file context.cpp.
|
noexcept |
Returns the private name of the current action.
Definition at line 115 of file context.cpp.
|
noexcept |
Returns the application instance. See Cutelyst::Application.
Definition at line 91 of file context.cpp.
Referenced by Context().
void Context::appendError | ( | const QString & | error | ) |
Sets an error string and tries to stop.
Definition at line 56 of file context.cpp.
References error().
Referenced by Cutelyst::Dispatcher::dispatch(), execute(), Cutelyst::ViewEmail::render(), and Cutelyst::CuteleeView::render().
void Context::attachAsync | ( | ) |
Reattaches to the processing chain in order to process the remaining of the action chaing. Call this after you called detachAsync().
The scoped ASync class can make handlying async requests easier.
Definition at line 355 of file context.cpp.
References action, execute(), finalize(), and QObject::Q_EMIT().
Referenced by Cutelyst::UA::forwardAsync().
|
noexcept |
Returns a configuration mapping for all configuration entries read from the Cutelyst
configuration section.
Definition at line 478 of file context.cpp.
Returns a configuration value for key. If key is not found, defaultValue will be returned.
This calls Application::config(), so it will only return entries from the Cutelyst
configuration section.
Definition at line 472 of file context.cpp.
|
noexcept |
Returns the current controller.
Definition at line 151 of file context.cpp.
Controller * Context::controller | ( | QStringView | name | ) | const |
Returns the controller by name or nullptr
if the controller is not found.
Definition at line 157 of file context.cpp.
|
noexcept |
Returns the current controller name.
Definition at line 145 of file context.cpp.
|
noexcept |
Returns the View set to be used for rendering this request, if one is set by setCustomView() or nullptr
if none was set.
Definition at line 163 of file context.cpp.
Referenced by Cutelyst::RenderView::doExecute().
void Context::detach | ( | Action * | action = nullptr | ) |
The same as forward().
When called with no arguments it escapes the processing chain entirely.
Definition at line 339 of file context.cpp.
References action.
Referenced by Cutelyst::RoleACL::aroundExecute(), Cutelyst::Action::doExecute(), Cutelyst::LangSelect::fromPath(), and Cutelyst::LangSelect::fromUrlQuery().
|
noexcept |
Detaches the processing chain telling the Engine that the request is not finished yet.
The scoped ASync class can make handling async requests easier.
It’s often useful to call async API’s. While convenient, the use of QEventLoop will only work for the first request or lead to a crash due stacking of calls.
This method, tells the Engine that this request is not finished yet, making it return to the event loop to process other requests or the task that was created prior to calling this.
Once done, call attachAsync() in order to process the remaining of the action chain.
Definition at line 349 of file context.cpp.
Referenced by Cutelyst::UA::forwardAsync().
|
noexcept |
Returns true
if the last executed Action requested that the processing be escaped.
Definition at line 333 of file context.cpp.
Referenced by Cutelyst::Action::doExecute().
|
noexcept |
Returns the dispatcher instance. See Cutelyst::Dispatcher.
Definition at line 139 of file context.cpp.
|
noexcept |
Returns the engine instance. See Cutelyst::Engine.
Definition at line 85 of file context.cpp.
|
noexcept |
Returns true
if an error was set.
Definition at line 50 of file context.cpp.
Referenced by appendError(), and Cutelyst::EngineRequest::finalize().
|
noexcept |
Returns a list of errors that were defined.
Definition at line 67 of file context.cpp.
Referenced by Cutelyst::EngineRequest::finalizeError().
bool Context::execute | ( | Component * | code | ) |
Execute an action. Errors are available via errors().
Definition at line 423 of file context.cpp.
References appendError(), QString::arg(), Cutelyst::Component::execute(), QString::isEmpty(), Cutelyst::Component::name(), QString::number(), Cutelyst::Component::reverse(), and setState().
Referenced by attachAsync(), and Cutelyst::Dispatcher::forward().
|
slot |
Finalize the request right away. This is automatically called at the end of the actions chain.
Definition at line 493 of file context.cpp.
References QString::fromLatin1(), QByteArray::number(), QString::number(), QString::size(), and QString::truncate().
Referenced by attachAsync().
bool Context::forward | ( | Component * | component | ) |
This is one way of calling another action (method) in the same or a different controller. You can also use directly call another method to the same or a different controller.
The main difference is that 'forward' uses some of the Cutelyst request cycle overhead, including debugging, which may be useful to you. On the other hand, there are some complications to using 'forward', restrictions on values returned from 'forward', and it may not handle errors as you prefer. Whether you use 'forward' or not is up to you; it is not considered superior to the other ways to call a method.
This calls Component::execute().
Keep in mind that the End() method used is that of the caller action. So a c->detach() inside a forwarded action would run the End() method from the original action requested.
Definition at line 393 of file context.cpp.
References action.
Referenced by Cutelyst::RenderView::doExecute().
bool Context::forward | ( | QStringView | action | ) |
This is one way of calling another action (method) in the same or a different controller. You can also use directly call another method to the same or a different controller.
The main difference is that 'forward' uses some of the Cutelyst request cycle overhead, including debugging, which may be useful to you. On the other hand, there are some complications to using 'forward', restrictions on values returned from 'forward', and it may not handle errors as you prefer. Whether you use 'forward' or not is up to you; it is not considered superior to the other ways to call a method.
This calls another action, by its private name.
Keep in mind that the End() method used is that of the caller action. So a c->detach() inside a forwarded action would run the End() method from the original action requested.
Definition at line 399 of file context.cpp.
References action.
Action * Context::getAction | ( | QStringView | action, |
QStringView | ns = {} |
||
) | const |
Gets an action in a given namespace ns.
Definition at line 405 of file context.cpp.
QVector< Action * > Context::getActions | ( | QStringView | action, |
QStringView | ns = {} |
||
) | const |
Gets all actions of a given action name in a namespace ns and all parent namespaces.
Definition at line 411 of file context.cpp.
|
noexcept |
Returns the current locale to be used when processing a View or translating user messages.
If not explicity set by setLocale() it will use the default locale set via Application::setDefaultLocale().
Definition at line 460 of file context.cpp.
Referenced by Cutelyst::ValidatorEmail::diagnoseString(), Cutelyst::LangSelect::fromPath(), Cutelyst::ValidatorAfter::genericValidationError(), Cutelyst::ValidatorBefore::genericValidationError(), Cutelyst::ValidatorBetween::genericValidationError(), Cutelyst::ValidatorIn::genericValidationError(), Cutelyst::ValidatorInteger::genericValidationError(), Cutelyst::ValidatorMax::genericValidationError(), Cutelyst::ValidatorMin::genericValidationError(), Cutelyst::ValidatorSize::genericValidationError(), Cutelyst::ValidatorFileSize::inputPattern(), Cutelyst::CuteleeView::render(), setLocale(), Cutelyst::ValidatorBetween::validate(), Cutelyst::ValidatorFileSize::validate(), Cutelyst::ValidatorMax::validate(), Cutelyst::ValidatorMin::validate(), and Cutelyst::ValidatorSize::validate().
|
noexcept |
Returns the namespace of the current action. I.e. the URI prefix corresponding to the controller of the current action.
For example: on a class named FooBar
which inherits Controller this will return 'foo/bar'
.
Definition at line 121 of file context.cpp.
|
inline |
QVector< Cutelyst::Plugin * > Context::plugins | ( | ) | const |
Returns all registered plugins.
Definition at line 417 of file context.cpp.
|
inline |
Finds and returns a translated string.
Returns a translated string identified by id. If no matching string is found, the id itself is returned. This can be used similar to Qt’s global qtTrId() function.
If n >= 0, all occurences of %n in the resulting string are replaced with a decimal representation of n. In addition, appending n’s value, the translation may vary.
Meta data and comments can be passed as documented for QObject::tr(). In addition, it is possible to supply a source string template like that:
//% <C string>
or
\begincomment% <C string> \endcomment
Example:
Creating QM files suitable for use with this function requires passing the -idbased
option to the lrelease
tool.
Definition at line 656 of file context.h.
Referenced by Cutelyst::ValidatorEmail::categoryString(), Cutelyst::ValidatorDomain::diagnoseString(), Cutelyst::ValidatorEmail::diagnoseString(), Cutelyst::Dispatcher::dispatch(), Cutelyst::ValidatorPwQuality::errorString(), Cutelyst::Memcached::errorString(), Cutelyst::ValidatorBetween::genericParsingError(), Cutelyst::ValidatorMax::genericParsingError(), Cutelyst::ValidatorMin::genericParsingError(), Cutelyst::ValidatorSize::genericParsingError(), Cutelyst::ValidatorAfter::genericParsingError(), Cutelyst::ValidatorBefore::genericParsingError(), Cutelyst::ValidatorRule::genericParsingError(), Cutelyst::ValidatorBetween::genericValidationDataError(), Cutelyst::ValidatorFileSize::genericValidationDataError(), Cutelyst::ValidatorIn::genericValidationDataError(), Cutelyst::ValidatorMax::genericValidationDataError(), Cutelyst::ValidatorMin::genericValidationDataError(), Cutelyst::ValidatorNotIn::genericValidationDataError(), Cutelyst::ValidatorSize::genericValidationDataError(), Cutelyst::ValidatorAfter::genericValidationDataError(), Cutelyst::ValidatorBefore::genericValidationDataError(), Cutelyst::ValidatorCharNotAllowed::genericValidationDataError(), Cutelyst::ValidatorRule::genericValidationDataError(), Cutelyst::ValidatorAccepted::genericValidationError(), Cutelyst::ValidatorAfter::genericValidationError(), Cutelyst::ValidatorAlpha::genericValidationError(), Cutelyst::ValidatorAlphaDash::genericValidationError(), Cutelyst::ValidatorAlphaNum::genericValidationError(), Cutelyst::ValidatorBefore::genericValidationError(), Cutelyst::ValidatorBetween::genericValidationError(), Cutelyst::ValidatorBoolean::genericValidationError(), Cutelyst::ValidatorCharNotAllowed::genericValidationError(), Cutelyst::ValidatorConfirmed::genericValidationError(), Cutelyst::ValidatorDate::genericValidationError(), Cutelyst::ValidatorDateTime::genericValidationError(), Cutelyst::ValidatorDifferent::genericValidationError(), Cutelyst::ValidatorDigits::genericValidationError(), Cutelyst::ValidatorDigitsBetween::genericValidationError(), Cutelyst::ValidatorFileSize::genericValidationError(), Cutelyst::ValidatorFilled::genericValidationError(), Cutelyst::ValidatorIn::genericValidationError(), Cutelyst::ValidatorInteger::genericValidationError(), Cutelyst::ValidatorIp::genericValidationError(), Cutelyst::ValidatorJson::genericValidationError(), Cutelyst::ValidatorMax::genericValidationError(), Cutelyst::ValidatorMin::genericValidationError(), Cutelyst::ValidatorNotIn::genericValidationError(), Cutelyst::ValidatorNumeric::genericValidationError(), Cutelyst::ValidatorPresent::genericValidationError(), Cutelyst::ValidatorRegularExpression::genericValidationError(), Cutelyst::ValidatorRequired::genericValidationError(), Cutelyst::ValidatorRequiredIf::genericValidationError(), Cutelyst::ValidatorRequiredIfStash::genericValidationError(), Cutelyst::ValidatorRequiredUnless::genericValidationError(), Cutelyst::ValidatorRequiredUnlessStash::genericValidationError(), Cutelyst::ValidatorRequiredWith::genericValidationError(), Cutelyst::ValidatorRequiredWithAll::genericValidationError(), Cutelyst::ValidatorRequiredWithout::genericValidationError(), Cutelyst::ValidatorRequiredWithoutAll::genericValidationError(), Cutelyst::ValidatorSame::genericValidationError(), Cutelyst::ValidatorSize::genericValidationError(), Cutelyst::ValidatorTime::genericValidationError(), Cutelyst::ValidatorUrl::genericValidationError(), Cutelyst::ValidatorRule::genericValidationError(), Cutelyst::ValidatorRule::label(), Cutelyst::ValidatorRule::parsingError(), Cutelyst::CuteleeView::render(), Cutelyst::ValidatorRule::validationDataError(), and Cutelyst::ValidatorRule::validationError().
|
noexcept |
Short for request().
Definition at line 133 of file context.cpp.
|
noexcept |
Returns the current Request object containing information about the client request.
Definition at line 127 of file context.cpp.
|
noexcept |
Returns the current Cutelyst::Response object, see there for details.
Definition at line 103 of file context.cpp.
Referenced by Cutelyst::RenderView::doExecute(), Cutelyst::LangSelect::fromPath(), and Cutelyst::CuteleeView::render().
|
noexcept |
Returns the current Cutelyst::Response object, see there for details.
Definition at line 97 of file context.cpp.
Referenced by Cutelyst::EngineRequest::finalizeBody(), Cutelyst::EngineRequest::finalizeCookies(), Cutelyst::EngineRequest::finalizeError(), Cutelyst::EngineRequest::finalizeHeaders(), Cutelyst::UA::forwardAsync(), Cutelyst::UA::forwardRequestResponse(), and Cutelyst::ViewJson::render().
bool Context::setCustomView | ( | QStringView | name | ) |
Defines the View to be used to render the request, it must be previously be registered by Cutelyst::Application.
Action classes like RenderView will use this value to overwrite their settings.
Returns true
if a view with the given name was found.
Definition at line 175 of file context.cpp.
void Context::setLocale | ( | const QLocale & | locale | ) |
Defines the current locale to be used when processing a View or translating user messages.
Setting a locale on a web application can be done in many ways, so it’s up to the developer to decide which one to use.
For example it’s possible to try to guess the user locale with the request header Accept-Language, or use the chained dispatcher to first match the locale as in "example.com/pt-br/some_action", or store the locale into a cookie or session.
Be sure to set it as soon as possible so that all content can be properly localized.
Definition at line 466 of file context.cpp.
References locale().
Referenced by Cutelyst::LangSelect::fromPath().
void Context::setStash | ( | const QString & | key, |
const ParamsMultiMap & | map | ||
) |
A convenient method to set a single ParamsMultiMap map to the stash on key.
Definition at line 218 of file context.cpp.
References QVariant::fromValue().
A convenient method to set a single value to the stash on key.
Definition at line 212 of file context.cpp.
Referenced by Cutelyst::SessionStoreFile::deleteSessionData(), Cutelyst::MemcachedSessionStore::deleteSessionData(), Cutelyst::Session::deleteValue(), Cutelyst::Session::deleteValues(), Cutelyst::CSRFProtection::getToken(), Cutelyst::ValidatorFileSize::inputPattern(), Cutelyst::StatusMessage::load(), Cutelyst::ViewEmailTemplate::render(), Cutelyst::CuteleeView::render(), Cutelyst::Session::setValue(), Cutelyst::SessionStoreFile::storeSessionData(), Cutelyst::MemcachedSessionStore::storeSessionData(), and Cutelyst::Validator::validate().
|
noexcept |
Sets the state of the current executed action. Setting to false
will make the dispatcher skip non processed actions.
Definition at line 79 of file context.cpp.
Referenced by Cutelyst::Action::doExecute(), and execute().
Returns the internal execution stack (actions that are currently executing).
Definition at line 224 of file context.cpp.
QVariantHash & Context::stash | ( | ) |
Returns a QVariantHash reference to the stash, which may be used to store data and pass it between components during a request.
The stash is automatically sent to the view. The stash is cleared at the end of a request; it cannot be used for persistent storage (for this you must use a session; see Session for a complete system integrated with Cutelyst).
Definition at line 182 of file context.cpp.
A convenient method to retrieve a single value from the stash by key.
Definition at line 188 of file context.cpp.
A convenient method to retrieve a single value with the stash by key. If key is not found, defaultValue will be returned.
Definition at line 194 of file context.cpp.
void Context::stash | ( | const QVariantHash & | unite | ) |
You can set hash keys by passing arguments, that will be united with the stash, which may be used to store data and pass it between components during a request.
The stash is automatically sent to the View. The stash is cleared at the end of a request; it cannot be used for persistent storage (for this you must use a session; see Session for a complete system integrated with Cutelyst).
If a given key is present it will be replaced.
Definition at line 562 of file context.cpp.
Referenced by Cutelyst::CSRFProtection::checkPassed(), Cutelyst::ValidatorRule::defaultValue(), Cutelyst::Session::deleteReason(), Cutelyst::Session::deleteValue(), Cutelyst::Session::deleteValues(), Cutelyst::Session::expires(), Cutelyst::CSRFProtection::getToken(), Cutelyst::Session::id(), Cutelyst::ViewJson::render(), Cutelyst::ViewEmail::render(), Cutelyst::ViewEmailTemplate::render(), Cutelyst::CuteleeView::render(), Cutelyst::Session::setValue(), Cutelyst::Authentication::user(), Cutelyst::Authentication::userExists(), Cutelyst::Authentication::userInRealm(), Cutelyst::ValidatorIn::validate(), Cutelyst::ValidatorNotIn::validate(), Cutelyst::ValidatorPwQuality::validate(), Cutelyst::ValidatorRequiredIfStash::validate(), Cutelyst::ValidatorRequiredUnlessStash::validate(), and Cutelyst::Session::value().
bool Context::stashRemove | ( | const QString & | key | ) |
Removes the item that has the key from the stash. Returns true
if any item was removed.
Definition at line 206 of file context.cpp.
Removes the item with the key from the stash and returns the value associated with it. If the item does not exist in the stash, the function simply returns a default-constructed value. If you don’t use the return value, stashRemove() is more efficient.
Definition at line 200 of file context.cpp.
|
noexcept |
Contains the return value of the last executed action.
Definition at line 73 of file context.cpp.
QString Context::translate | ( | const char * | context, |
const char * | sourceText, | ||
const char * | disambiguation = nullptr , |
||
int | n = -1 |
||
) | const |
Translates the sourceText for the given context into the language defined by locale().
See Application::addTranslator() for information about installation of translators. Internally this function will use QTranslator::translate().
Definition at line 484 of file context.cpp.
Referenced by Cutelyst::ValidatorAfter::genericParsingError(), Cutelyst::ValidatorBefore::genericParsingError(), Cutelyst::ValidatorDate::genericValidationError(), Cutelyst::ValidatorDateTime::genericValidationError(), Cutelyst::ValidatorDifferent::genericValidationError(), Cutelyst::ValidatorSame::genericValidationError(), Cutelyst::ValidatorTime::genericValidationError(), Cutelyst::ValidatorRule::label(), Cutelyst::ValidatorRule::parsingError(), Cutelyst::ValidatorRule::validationDataError(), and Cutelyst::ValidatorRule::validationError().
|
inline |
QUrl Context::uriFor | ( | Action * | action, |
const QStringList & | captures = {} , |
||
const QStringList & | args = {} , |
||
const ParamsMultiMap & | queryValues = {} |
||
) | const |
Constructs an absolute QUrl object based on the application root, the provided action, captures, arguments args and query parameters queryValues. When used as a string, provides a textual URI.
If action is a nullptr
, the URI for the current action is returned. To return the current action and also provide args
, use c->uriFor(c->action(), args).
Definition at line 278 of file context.cpp.
References action, QList::append(), QString::isEmpty(), Cutelyst::Action::numberOfCaptures(), QList::size(), QList::takeFirst(), and uriFor().
|
inline |
Constructs an absolute QUrl object based on the application root, the provided path and the query parameters queryValues provided. When used as a string, provides a textual URI.
The first argument is taken as a public URI path relative c->ns() (if it doesn’t begin with a forward slash) or relative to the application root (if it does). It is then merged with c->request()->base() and any queryValues are appended as "?foo=bar"
parameters.
QUrl Context::uriFor | ( | const QString & | path = {} , |
const QStringList & | args = {} , |
||
const ParamsMultiMap & | queryValues = {} |
||
) | const |
Constructs an absolute QUrl object based on the application root, the provided path, and the additional arguments args and query parameters queryValues provided. When used as a string, provides a textual URI.
The first argument is taken as a public URI path relative c->ns() (if it doesn’t begin with a forward slash) or relative to the application root (if it does). It is then merged with c->request()->base() any args are appended as additional path components; and any queryValues are appended as "?foo=bar"
parameters.
Definition at line 230 of file context.cpp.
References QUrlQuery::addQueryItem(), QString::compare(), QMultiMap::constBegin(), QMultiMap::constEnd(), QUrl::DecodedMode, QList::isEmpty(), QMultiMap::isEmpty(), QString::isEmpty(), QStringList::join(), QString::prepend(), QUrl::setPath(), QUrl::setQuery(), QMultiMap::size(), and QString::startsWith().
Referenced by uriFor(), and uriForAction().
|
inline |
A convenience method for the uriForAction() without the arguments parameter.
QUrl Context::uriForAction | ( | QStringView | path, |
const QStringList & | captures = {} , |
||
const QStringList & | args = {} , |
||
const ParamsMultiMap & | queryValues = {} |
||
) | const |
A private path to the Cutelyst action you want to create a URI for.
This is a shortcut for calling c->dispatcher()->getActionByPath(path) and passing the resulting action and the remaining arguments to c->uriFor().
Note that although the path looks like a URI that dispatches to the wanted action, it is not a URI, but an internal path to that action.
For example, if the action looks like:
You can use: c->uriForAction('/users/lst'); and it will create the URI /users/the-list.
Definition at line 315 of file context.cpp.
View * Context::view | ( | QStringView | name = {} | ) | const |
Returns the View with name or nullptr
if not found.
Definition at line 169 of file context.cpp.
|
friend |
|
friend |
|
friend |
|
friend |
|
read |
Pointer to the current action.
Definition at line 47 of file context.h.
Referenced by Cutelyst::Controller::_DISPATCH(), attachAsync(), detach(), Cutelyst::Dispatcher::dispatch(), forward(), forward(), getAction(), getActions(), Cutelyst::DispatchTypePath::match(), Cutelyst::CuteleeView::render(), Cutelyst::DispatchType::setupMatchedAction(), uriFor(), and uriForAction().
|
read |
Private name of the current action
Definition at line 51 of file context.h.
Referenced by Cutelyst::ValidatorRule::debugString(), and Cutelyst::ValidatorRule::defaultValue().
|
read |
Mapping for all configuration entries read from the Cutelyst
configuration section.
|
read |
|
read |
The current controller name.
Definition at line 79 of file context.h.
Referenced by Cutelyst::ValidatorRule::debugString(), and Cutelyst::ValidatorRule::defaultValue().
|
read |
|
read |
The namespace of the current action.
Definition at line 56 of file context.h.
Referenced by getAction(), and getActions().
|
read |
The current Request object containing information about the client request.
Definition at line 66 of file context.h.
Referenced by Context(), Cutelyst::Component::aroundExecute(), Cutelyst::CSRFProtection::checkPassed(), Cutelyst::Dispatcher::dispatch(), Cutelyst::RenderView::doExecute(), Cutelyst::LangSelect::fromPath(), and Cutelyst::Validator::validate().
|
read |
The current Request object containing information about the client request.
Definition at line 71 of file context.h.
Referenced by Cutelyst::CredentialHttp::authenticate(), Cutelyst::Action::doExecute(), Cutelyst::ActionChain::doExecute(), Cutelyst::ActionREST::doExecute(), Cutelyst::Dispatcher::forward(), Cutelyst::UA::forwardAsync(), Cutelyst::UA::forwardRequestResponse(), Cutelyst::StatusMessage::load(), Cutelyst::DispatchTypeChained::match(), Cutelyst::DispatchTypePath::match(), Cutelyst::Dispatcher::prepareAction(), and Cutelyst::ViewJson::render().