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

The Cutelyst Component base class. More...

#include <Cutelyst/Component>

Inheritance diagram for Cutelyst::Component:

Public Types

enum  Modifier {
  None , OnlyExecute , BeforeExecute , AroundExecute ,
  AfterExecute
}
 

Public Member Functions

 Component (QObject *parent=nullptr)
 
virtual ~Component () override
 
bool execute (Context *c)
 
virtual bool init (Application *application, const QVariantHash &args)
 
virtual Modifiers modifiers () const
 
QString name () const noexcept
 
QString reverse () const noexcept
 
void setName (const QString &name)
 
void setReverse (const QString &reverse)
 
- 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 (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 QMetaObjectmetaObject () const const
 
void 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_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::milliseconds interval, Qt::TimerType timerType)
 
QThreadthread () const const
 

Protected Member Functions

 Component (ComponentPrivate *d, QObject *parent=nullptr)
 
virtual bool afterExecute (Context *c)
 
void applyRoles (const QStack< Component * > &roles)
 
virtual bool aroundExecute (Context *c, QStack< Component * > stack)
 
virtual bool beforeExecute (Context *c)
 
virtual bool dispatcherReady (const Dispatcher *dispatch, Controller *controller)
 
virtual bool doExecute (Context *c)
 
- 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 Controller
 

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
 
- Properties inherited from QObject
 objectName
 

Detailed Description

This is the base class of a Cutelyst component.

Logging category
cutelyst.component
Logging with Cutelyst

Definition at line 29 of file component.h.

Member Enumeration Documentation

◆ Modifier

This value defines which kind of modifiers should be executed.

Definition at line 36 of file component.h.

Constructor & Destructor Documentation

◆ Component() [1/2]

Component::Component ( QObject parent = nullptr)
explicit

This is the base class for many Cutelyst objects, providing access to name and reverse for actions, and modifiers to customize execution.

Definition at line 11 of file component.cpp.

◆ ~Component()

Component::~Component ( )
overridevirtual

Destroys the Component object.

Definition at line 23 of file component.cpp.

◆ Component() [2/2]

Component::Component ( ComponentPrivate *  d,
QObject parent = nullptr 
)
explicitprotected

A derived class using pimpl should call this constructor, to reduce the number of memory allocations.

Definition at line 17 of file component.cpp.

Member Function Documentation

◆ afterExecute()

bool Component::afterExecute ( Context c)
protectedvirtual

Reimplement this if you want to do processing after doExecute().

Definition at line 121 of file component.cpp.

◆ applyRoles()

void Component::applyRoles ( const QStack< Component * > &  roles)
protected

Call this to install before, around and after roles.

Definition at line 133 of file component.cpp.

◆ aroundExecute()

bool Component::aroundExecute ( Context c,
QStack< Component * >  stack 
)
protectedvirtual

Reimplement this if you want to do processing around doExecute(), you must call doExecute() yourself then.

Reimplemented in Cutelyst::RoleACL.

Definition at line 103 of file component.cpp.

References aroundExecute(), doExecute(), QStack::pop(), Cutelyst::Context::req, and QList::size().

Referenced by aroundExecute(), Cutelyst::RoleACL::aroundExecute(), and execute().

◆ beforeExecute()

bool Component::beforeExecute ( Context c)
protectedvirtual

Reimplement this if you want to do processing before doExecute().

Definition at line 97 of file component.cpp.

◆ dispatcherReady()

bool Component::dispatcherReady ( const Dispatcher dispatch,
Controller controller 
)
protectedvirtual

Called by dispatcher once it’s done preparing actions.

Subclasses might want to implement this to cache special actions, such as special methods for REST actions.

Reimplemented in Cutelyst::RoleACL.

Definition at line 154 of file component.cpp.

◆ doExecute()

bool Component::doExecute ( Context c)
protectedvirtual

Reimplement this for the main processing.

Reimplemented in Cutelyst::RenderView, Cutelyst::ActionREST, Cutelyst::ActionChain, and Cutelyst::Action.

Definition at line 127 of file component.cpp.

Referenced by aroundExecute(), and execute().

◆ execute()

bool Component::execute ( Context c)

Executes this component agains the Context c.

Definition at line 64 of file component.cpp.

References aroundExecute(), doExecute(), and QList::push_front().

Referenced by Cutelyst::Context::execute().

◆ init()

bool Component::init ( Cutelyst::Application application,
const QVariantHash &  args 
)
virtual

A Does class is always attached to an action, if this method returns false, the application will fail to start. Often useful if the user misconfigured the settings.

Reimplemented in Cutelyst::RoleACL, and Cutelyst::RenderView.

Definition at line 57 of file component.cpp.

Referenced by Cutelyst::RenderView::init(), and Cutelyst::Action::setupAction().

◆ modifiers()

Component::Modifiers Component::modifiers ( ) const
virtual

Reimplement this to return custom Modifiers, default is None.

Reimplemented in Cutelyst::View, Cutelyst::RoleACL, and Cutelyst::Action.

Definition at line 28 of file component.cpp.

◆ name()

◆ reverse()

◆ setName()

void Component::setName ( const QString name)

Defines the sub name of this Component.

See also
name()

Definition at line 39 of file component.cpp.

References name().

Referenced by Cutelyst::ActionChain::ActionChain(), Cutelyst::AuthenticationRealm::AuthenticationRealm(), and Cutelyst::View::View().

◆ setReverse()

void Component::setReverse ( const QString reverse)

Defines the private name of this Component.

See also
reverse()

Definition at line 51 of file component.cpp.

References reverse().

Referenced by Cutelyst::ActionChain::ActionChain(), and Cutelyst::Application::setup().