cutelyst 4.8.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)
 

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)
 

Friends

class Controller
 

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(), and Cutelyst::Context::req.

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::Action, Cutelyst::ActionChain, Cutelyst::ActionREST, and Cutelyst::RenderView.

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(), and doExecute().

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::RenderView, and Cutelyst::RoleACL.

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::Action, Cutelyst::RoleACL, and Cutelyst::View.

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(), Cutelyst::View::View(), 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().

Friends And Related Symbol Documentation

◆ Controller

friend class Controller
friend

Definition at line 142 of file component.h.