cutelyst 5.0.1
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
Cutelyst::Application Class Reference

The Cutelyst application. More...

#include <Cutelyst/Application>

Inheritance diagram for Cutelyst::Application:

Signals

void afterDispatch (Cutelyst::Context *c)
void beforeDispatch (Cutelyst::Context *c)
void beforePrepareAction (Cutelyst::Context *c, bool *skipMethod)
void postForked (Cutelyst::Application *app)
void preForked (Cutelyst::Application *app)
void shuttingDown (Cutelyst::Application *app)

Public Member Functions

 Application (QObject *parent=nullptr)
virtual ~Application ()
void addTranslator (const QLocale &locale, QTranslator *translator)
void addTranslator (const QString &locale, QTranslator *translator)
void addTranslators (const QLocale &locale, const QVector< QTranslator * > &translators)
QVariantMap config () const noexcept
QVariant config (const QString &key, const QVariant &defaultValue={}) const
QVector< Controller * > controllers () const noexcept
ComponentcreateComponentPlugin (const QString &name, QObject *parent=nullptr)
QLocale defaultLocale () const noexcept
Dispatcherdispatcher () const noexcept
QVector< DispatchType * > dispatchers () const noexcept
Engine * engine () const noexcept
bool inited () const noexcept
void loadTranslations (const QString &filename, const QString &directory={}, const QString &prefix={}, const QString &suffix={})
QVector< QLocaleloadTranslationsFromDir (const QString &filename, const QString &directory={}, const QString &prefix=QStringLiteral("."), const QString &suffix=QStringLiteral(".qm"))
QVector< QLocaleloadTranslationsFromDirs (const QString &directory, const QString &filename)
QString pathTo (const QString &path) const
QString pathTo (const QStringList &path) const
template<typename T>
plugin ()
QVector< Plugin * > plugins () const noexcept
void setDefaultLocale (const QLocale &locale)
QString translate (const QLocale &locale, const char *context, const char *sourceText, const char *disambiguation=nullptr, int n=-1) const
Viewview (QStringView name={}) const
Public Member Functions inherited from QObject
 QObject (QObject *parent)
QBindable< QStringbindableObjectName ()
bool blockSignals (bool block)
const QObjectListchildren () 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< QByteArraydynamicPropertyNames () const const
virtual bool event (QEvent *e)
virtual bool eventFilter (QObject *watched, QEvent *event)
findChild (QAnyStringView name, Qt::FindChildOptions options) const const
findChild (Qt::FindChildOptions options) const const
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
QList< T > findChildren (QAnyStringView 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 isQmlExposed () const const
bool isQuickItemType () const const
bool isWidgetType () const const
bool isWindowType () const const
void killTimer (int id)
void killTimer (Qt::TimerId id)
virtual const QMetaObjectmetaObject () const const
bool moveToThread (QThread *targetThread)
QString objectName () const const
void objectNameChanged (const QString &objectName)
QObjectparent () const const
QVariant property (const char *name) const const
 Q_CLASSINFO (Name, Value)
 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
qobject_cast (const QObject *object)
qobject_cast (QObject *object)
 QT_NO_CONTEXTLESS_CONNECT QT_NO_CONTEXTLESS_CONNECT
 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 setProperty (const char *name, QVariant &&value)
bool signalsBlocked () const const
int startTimer (int interval, Qt::TimerType timerType)
int startTimer (std::chrono::nanoseconds interval, Qt::TimerType timerType)
QThreadthread () const const

Static Public Member Functions

static const char * cutelystVersion () noexcept
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)

Protected Member Functions

void addXCutelystVersionHeader ()
HeadersdefaultHeaders () noexcept
bool enginePostFork ()
void handleRequest (Cutelyst::EngineRequest *request)
virtual bool init ()
virtual bool postFork ()
bool registerController (Controller *controller)
bool registerDispatcher (DispatchType *dispatcher)
bool registerPlugin (Plugin *plugin)
bool registerView (View *view)
void setConfig (const QString &key, const QVariant &value)
bool setup (Engine *engine)
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
QObjectsender () const const
int senderSignalIndex () const const
virtual void timerEvent (QTimerEvent *event)

Friends

class Context
class Engine

Additional Inherited Members

Public Types inherited from QObject
enum  TimerId
Public Attributes inherited from QObject
 Invalid
typedef QObjectList
Properties inherited from QObject
 objectName

Detailed Description

This is the main class of a Cutelyst appplication.

Configuration file options

There are some options you can set in your application configuration file in the Cutelyst section. If you want to get keys via the config() method of Application, you have to add them to the Cutelyst section. If you want to get other config sections than Cutelyst, you should use engine()->config("section").

home

Type: string
Default: empty

Absolute path to your home diretory, that is for example used by pathTo(). If this is empty (the default), it will be populated by the return value of QDir::currentPath().

root

Type: string
Default: empty

Absolute path to your web root directory that contains your template and/or static files. This might be used by plugins to serve static files or by Views like CuteleeView to find template files. If this is empty (the default), it will be populated as directory "root" below "home".

Logging category
cutelyst.core
Logging with Cutelyst

Definition at line 65 of file application.h.

Constructor & Destructor Documentation

◆ Application()

Application::Application ( QObject * parent = nullptr)
explicit

The constructor is used to setup the class configuration, subclasses should only use this for objects that do not require configuration to be ready.

A Web Engine will instantiate your application through this class, next it will load the settings file, and in the end it will call init() which is where your application should do it’s own setup.

Warning
DO NOT register your controllers, plugins or anything that might want to use config() in here, do that in init()

Definition at line 48 of file application.cpp.

References Application(), QObject::QObject(), loadTranslations(), and QObject::parent().

Referenced by Application(), addTranslator(), addTranslators(), addXCutelystVersionHeader(), config(), config(), controllers(), createComponentPlugin(), defaultHeaders(), defaultLocale(), dispatcher(), dispatchers(), engine(), enginePostFork(), handleRequest(), inited(), plugins(), postForked(), preForked(), registerController(), registerDispatcher(), registerPlugin(), registerView(), setConfig(), setDefaultLocale(), setup(), shuttingDown(), translate(), and view().

◆ ~Application()

Application::~Application ( )
virtual

Destroys the Application object.

Definition at line 63 of file application.cpp.

Member Function Documentation

◆ addTranslator() [1/2]

void Application::addTranslator ( const QLocale & locale,
QTranslator * translator )

Adds a translator for the specified locale.

You can add multiple translators for different application parts for every supported locale. The installed translators will then be used by Context::translate() and Context::qtTrId() (which itself will use Application::translate()) to translate strings according to the locale set by Context::setLocale().

Note
You will most likely want to use loadTranslationsFromDir() or loadTranslationsFromDirs() instead of this function because they automatically load translations and set their locales.
Usage example:
bool MyCutelystApp::init()
{
// ...
auto trans = new QTranslator(this);
if (trans->load(deDE, QStringLiteral("mycutelystapp"),
QStringLiteral("."),
QStringLiteral("/usr/share/mycutelystapp/l10n")) {
addTranslator(deDE, trans);
}
// ...
}
void addTranslator(const QLocale &locale, QTranslator *translator)
See also
loadTranslationsFromDir() loadTranslationsFromDirs()
Translate your application
Since
Cutelyst 1.5.0

Definition at line 426 of file application.cpp.

References Application().

Referenced by addTranslator(), loadTranslationsFromDir(), and loadTranslationsFromDirs().

◆ addTranslator() [2/2]

void Application::addTranslator ( const QString & locale,
QTranslator * translator )

Adds a translator for the specified locale.

The locale string has to be parseable by QLocale.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
Translate your application
Since
Cutelyst 1.5.0

Definition at line 438 of file application.cpp.

References addTranslator().

◆ addTranslators()

void Application::addTranslators ( const QLocale & locale,
const QVector< QTranslator * > & translators )

Adds multiple translators for the specified locale.

Note
You will most likely want to use loadTranslationsFromDir() or loadTranslationsFromDirs() instead of this function because they automatically load translations and set their locales.
See also
addTranslator()
Translate your application
Since
Cutelyst 1.5.0

Definition at line 443 of file application.cpp.

References Application(), QList::crbegin(), QList::crend(), and QList::empty().

◆ addXCutelystVersionHeader()

void Application::addXCutelystVersionHeader ( )
protected

Adds a X-Cutelyst header with our version on each request.

Definition at line 88 of file application.cpp.

References Application().

◆ afterDispatch

void Cutelyst::Application::afterDispatch ( Cutelyst::Context * c)
signal

This signal is emitted right after the Action found by the dispatcher got executed.

References afterDispatch().

Referenced by afterDispatch(), handleRequest(), and Cutelyst::Session::setup().

◆ beforeDispatch

void Cutelyst::Application::beforeDispatch ( Cutelyst::Context * c)
signal

This signal is emitted right after the Dispatcher returns the Action that will be executed.

References beforeDispatch().

Referenced by beforeDispatch(), handleRequest(), and Cutelyst::CSRFProtection::setup().

◆ beforePrepareAction

void Cutelyst::Application::beforePrepareAction ( Cutelyst::Context * c,
bool * skipMethod )
signal

This signal is emitted before the Dispatcher is called to find an action. It’s useful if you need to intercept requests before they are dispatched. Always check skipMethod and return if it’s true. In case you want to stop further processing set skipMethod to true.

References beforePrepareAction().

Referenced by beforePrepareAction(), handleRequest(), Cutelyst::LangSelect::setup(), Cutelyst::StaticCompressed::setup(), Cutelyst::StaticSimple::setup(), and StaticMap::setup().

◆ config() [1/2]

QVariantMap Application::config ( ) const
noexcept

User configuration for the application. Returns a map with configuration settings that are read from the Cutelyst section of your application configuration file.

Note
If you want to get other config sections than Cutelyst, you should use engine()->config("section").
See also
Configure your application

Definition at line 210 of file application.cpp.

References Application().

Referenced by pathTo().

◆ config() [2/2]

QVariant Application::config ( const QString & key,
const QVariant & defaultValue = {} ) const

Returns application config specified by key. If key is not found, defaultValue will be returned. These are the config entries in the Cutelyst section in your application configuration file.

Note
If you want to get config entries for other sections than Cutelyst, you should use engine()->config("section").value("key").
See also
Configure your application

Definition at line 182 of file application.cpp.

References Application().

Referenced by pathTo().

◆ controllers()

QVector< Cutelyst::Controller * > Application::controllers ( ) const
noexcept

Returns a list with all registered controllers.

The list might only be complete after application has been setup.

Definition at line 170 of file application.cpp.

References Application().

◆ createComponentPlugin()

Component * Application::createComponentPlugin ( const QString & name,
QObject * parent = nullptr )

Tries to load a plugin in Cutelyst default plugin directory with parent as it’s parent. A nullptr is returned in case of failure.

Definition at line 138 of file application.cpp.

References Application(), QObject::QObject(), Cutelyst::ComponentFactory::createComponent(), QString::fromLocal8Bit(), and QObject::parent().

◆ cutelystVersion()

const char * Application::cutelystVersion ( )
staticnoexcept

Returns Cutelyst version.

Definition at line 165 of file application.cpp.

Referenced by setup().

◆ defaultHeaders()

Headers & Application::defaultHeaders ( )
protectednoexcept

This is the HTTP default response headers that each request gets.

Do not change it after the application has started.

Definition at line 82 of file application.cpp.

References Application().

◆ defaultLocale()

QLocale Application::defaultLocale ( ) const
nodiscardnoexcept

Returns the default locale that will be set to the locale() of newly created Context objects. By default this will be QLocale(English, Latin, United States).

See also
setDefaultLocale()
Translate your application
Since
Cutelyst 4.0.0

Definition at line 636 of file application.cpp.

References Application().

◆ dispatcher()

Dispatcher * Application::dispatcher ( ) const
noexcept

Returns the dispatcher class.

Definition at line 192 of file application.cpp.

References Application().

Referenced by registerDispatcher().

◆ dispatchers()

QVector< Cutelyst::DispatchType * > Application::dispatchers ( ) const
noexcept

Returns a list with all registered dispatchers.

The list might only be complete after application has been setup.

Definition at line 198 of file application.cpp.

References Application().

◆ engine()

◆ enginePostFork()

bool Application::enginePostFork ( )
protected

Called by the Engine once post fork happened.

Definition at line 407 of file application.cpp.

References Application(), postFork(), postForked(), and QObject::Q_EMIT().

Referenced by shuttingDown().

◆ handleRequest()

void Application::handleRequest ( Cutelyst::EngineRequest * request)
protected

◆ init()

bool Application::init ( )
protectedvirtual

Do your application initialization here, if your application should not proceed log some information that might help on debugging and return false.

For example if your application only works with PostgeSQL and the Qt driver is not available it makes sense to fail here. However you should not initialize resouces that cannot be shared among process.

See also
postFork
Returns
true if your application was successfuly initted

Definition at line 68 of file application.cpp.

References QCoreApplication::applicationPid().

Referenced by setup().

◆ inited()

bool Cutelyst::Application::inited ( ) const
noexcept

Returns true if the application has been inited.

Definition at line 228 of file application.cpp.

References Application().

◆ loadTranslations()

void Application::loadTranslations ( const QString & filename,
const QString & directory = {},
const QString & prefix = {},
const QString & suffix = {} )

Loads translations for a specific filename from a single directory.

This can be used to load translations for a specific component or application if the translation file names follow a common schema.

Let us assume you organised your translation files as follows:

  • /usr/share/myapp/translations/myapp_de.qm
  • /usr/share/myapp/translations/myapp_pt_BR.qm
  • ...

You can then use loadTranslations() in your reimplementation of Application::init() as follows:

bool MyApp::init()
{
loadTranslations(QStringLiteral("myapp"),
QStringLiteral("/usr/share/myapp/translations"),
QStringLiteral("_"));
}
void loadTranslations(const QString &filename, const QString &directory={}, const QString &prefix={}, const QString &suffix={})

If directory is empty, the default directory, set by -DI18NDIR, will be used. prefix is the part between the file name and the locale part. In the example above it is "_", if it is not set the default "." will be used. The suffix is the file name suffix that defaults to ".qm".

See also
addTranslator(), loadTranslationsFromDir(), loadTranslationsFromDirs()
Translate your application
Since
Cuteylst 2.0.0

Definition at line 519 of file application.cpp.

References loadTranslationsFromDir().

Referenced by Application(), Cutelyst::Validator::loadTranslations(), Cutelyst::CSRFProtection::setup(), and Cutelyst::Memcached::setup().

◆ loadTranslationsFromDir()

QVector< QLocale > Application::loadTranslationsFromDir ( const QString & filename,
const QString & directory = {},
const QString & prefix = QStringLiteral("."),
const QString & suffix = QStringLiteral(".qm") )

Loads translations for a specific filename from a single directory and returns a list of added locales.

This can be used to load translations for a specific component or application if the translation file names follow a common schema.

Let us assume you organised your translation files as follows:

  • /usr/share/myapp/translations/myapp_de.qm
  • /usr/share/myapp/translations/myapp_pt_BR.qm
  • ...

You can then use loadTranslationsFromDir() in your reimplementation of Application::init() as follows:

bool MyApp::init()
{
loadTranslationsFromDir(QStringLiteral("myapp"),
QStringLiteral("/usr/share/myapp/translations"),
QStringLiteral("_"));
}
QVector< QLocale > loadTranslationsFromDir(const QString &filename, const QString &directory={}, const QString &prefix=QStringLiteral("."), const QString &suffix=QStringLiteral(".qm"))

If directory is empty, the default directory, set by -DI18NDIR, will be used. prefix is the part between the file name and the locale part. In the example above it is "_", if it is not set the default "." will be used. The suffix is the file name suffix that defaults to ".qm".

See also
addTranslator(), loadTranslationsFromDirs()
Translate your application
Since
Cuteylst 2.1.0

Definition at line 527 of file application.cpp.

References addTranslator(), QList::append(), QLocale::C, QDir::entryInfoList(), QDir::exists(), QDir::Files, QString::indexOf(), QString::isEmpty(), QLocale::language(), QString::length(), QString::mid(), QList::reserve(), and QList::squeeze().

Referenced by loadTranslations().

◆ loadTranslationsFromDirs()

QVector< QLocale > Application::loadTranslationsFromDirs ( const QString & directory,
const QString & filename )

Loads translations for a specific filename from a directory structure under directory and returns a list of added locales.

This can be used to load translations for a specific component or application if the the translation files are organized in subdirectories named after locale codes. Let us assume you organised your translation files as follows:

  • /usr/share/locale/de/LC_MESSAGES/myapp.qm
  • /usr/share/locale/pt_BR/LC_MESSAGES/myapp.qm
  • ...

You can then use loadTranslationsFromDirs() in your reimplementation of Application::init() as follows:

bool MyApp::init()
{
loadTranslationsFromDirs(QStringLiteral("/usr/share/locale"),
QStringLiteral("LC_MESSAGES/myapp.qm"));
}
QVector< QLocale > loadTranslationsFromDirs(const QString &directory, const QString &filename)
See also
addTranslator(), loadTranslationsFromDir()
Translate your application
Since
Cutelyst 2.1.0

Definition at line 585 of file application.cpp.

References QFileInfo::absoluteFilePath(), QFileInfo::absolutePath(), addTranslator(), QDir::AllDirs, QList::append(), QFileInfo::baseName(), QLocale::C, QDir::entryList(), QDir::exists(), QString::isEmpty(), QLocale::language(), QList::reserve(), QList::squeeze(), and QFileInfo::suffix().

◆ pathTo() [1/2]

QString Application::pathTo ( const QString & path) const

Merges path with config("home") and returns an absolute path.

Note
If "home" was not set in your configuration file, it will be automatically set to the value returned by QDir::currentPath().

Definition at line 216 of file application.cpp.

References QDir::absoluteFilePath(), and config().

◆ pathTo() [2/2]

QString Cutelyst::Application::pathTo ( const QStringList & path) const

Merges the path parts with config("home") and returns an absolute path.

Note
If "home" was not set in your configuration file, it will be automatically set to the value returned by QDir::currentPath().

Definition at line 222 of file application.cpp.

References QDir::absoluteFilePath(), config(), and QStringList::join().

◆ plugin()

template<typename T>
T Cutelyst::Application::plugin ( )
inline

Returns the registered plugin that casts to the template type T.

Definition at line 137 of file application.h.

References plugins(), and QObject::qobject_cast().

Referenced by registerPlugin(), and Cutelyst::CSRFProtection::setup().

◆ plugins()

QVector< Plugin * > Application::plugins ( ) const
noexcept

Returns all registered plugins.

Definition at line 204 of file application.cpp.

References Application().

Referenced by plugin().

◆ postFork()

bool Application::postFork ( )
protectedvirtual

This method is called after the engine forks

After the web engine forks itself it will call this function so that you can initialize resources that can’t be shared with the parent process, namely sockets and file descriptors.

A good example of usage of this function is when opening a connection to the database which can’t be shared with other processes and should probably make this function return false if it fails to open.

Default implementation returns true.

Returns
false if the engine should not use this process

Definition at line 75 of file application.cpp.

References QCoreApplication::applicationPid().

Referenced by enginePostFork().

◆ postForked

◆ preForked

void Cutelyst::Application::preForked ( Cutelyst::Application * app)
signal

This signal is emitted right after application has been setup and before application forks and postFork() is called.

References Application(), and preForked().

Referenced by preForked(), and setup().

◆ registerController()

bool Application::registerController ( Controller * controller)
protected

This method registers a Controller class which is responsible for handlying requests, since they are reused between multiple requests. Be aware of not storing data there, instead you might want to use a session plugin or the stash.

Parameters
controllerthe Controller class
Returns
true if succeeded

Definition at line 104 of file application.cpp.

References Application(), QMetaObject::className(), QString::fromLatin1(), and QObject::metaObject().

◆ registerDispatcher()

bool Application::registerDispatcher ( DispatchType * dispatcher)
protected

Registers a custom DispatchType. If none is registered, all the built-in dispatcher types will be registered.

Definition at line 128 of file application.cpp.

References Application(), and dispatcher().

◆ registerPlugin()

bool Application::registerPlugin ( Plugin * plugin)
protected

Registers a global plugin ie. one that doesn’t need to be created explicity for a single request and returns true on plugin->isApplicationPlugin();

Returns
true if the plugin could be registered

Definition at line 94 of file application.cpp.

References Application(), and plugin().

◆ registerView()

bool Application::registerView ( View * view)
protected

This method registers a View class which is responsible for rendering requests.

Parameters
viewthe View class
Returns
true if succeeded

Definition at line 116 of file application.cpp.

References Application(), and view().

◆ setConfig()

void Application::setConfig ( const QString & key,
const QVariant & value )
protected

Change the value of the configuration key.

This will change or add keys to the configuration read from the Cutelyst section of your configuration file. The set values are not written to the file.

Warning
You should never call this from random parts of the code as a way to store shareable data, it should only be called by a subclass

Definition at line 240 of file application.cpp.

References Application().

Referenced by shuttingDown().

◆ setDefaultLocale()

void Application::setDefaultLocale ( const QLocale & locale)

Sets the default locale that will be set to the locale() of newly created Context objects. By default this will be QLocale(English, Latin, United States).

See also
defaultLocale()
Translate your application
Since
Cutelyst 4.0.0

Definition at line 642 of file application.cpp.

References Application().

◆ setup()

bool Application::setup ( Engine * engine)
protected

◆ shuttingDown

void Cutelyst::Application::shuttingDown ( Cutelyst::Application * app)
signal

This signal is likely to be emitted when the worker process should stop. At this point the application has a limited time to finish it’s operations. If a timeout is reached the application will get killed.

References Application(), engine(), enginePostFork(), handleRequest(), setConfig(), setup(), and shuttingDown().

Referenced by shuttingDown().

◆ translate()

QString Application::translate ( const QLocale & locale,
const char * context,
const char * sourceText,
const char * disambiguation = nullptr,
int n = -1 ) const

Translates the sourceText into the target locale language.

This uses the installed translators for the specified locale to translate the sourceText for the given context into the target locale. Optionally you can use a disambiguation and/or the n parameter to translate a pluralized version.

Do not use this method directly but use Context::translate() or Context::qtTrId().

See also
Context::translate(), Context::qtTrId(), QTranslator::translate()
Translate your application
Since
Cutelyst 1.5.0

Definition at line 483 of file application.cpp.

References Application(), QList::empty(), QString::fromUtf8(), QString::isEmpty(), and QList::value().

◆ view()

View * Application::view ( QStringView name = {}) const

Returns the View specified by name, if no view is found nullptr is returned. The default view is nameless.

Definition at line 176 of file application.cpp.

References Application().

Referenced by Cutelyst::RenderView::init(), and registerView().

◆ Context

friend class Context
friend

Definition at line 547 of file application.h.

◆ Engine

friend class Engine
friend

Definition at line 546 of file application.h.