cutelyst 3.9.1
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
Cutelyst::Component Class Reference

The Cutelyst Component base class. More...

#include <Cutelyst/Component>

Inheritance diagram for Cutelyst::Component:
Inheritance graph
[legend]

Public Types

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

Public Member Functions

 Component (QObject *parent=nullptr)
 
bool execute (Context *c)
 
virtual bool init (Application *application, const QVariantHash &args)
 
virtual Modifiers modifiers () const
 
QString name () const
 
QString reverse () const
 
void setName (const QString &name)
 
void setReverse (const QString &reverse)
 

Protected Member Functions

 Component (ComponentPrivate *d, QObject *parent=nullptr)
 A derived class using pimpl should call this constructor, to reduce the number of memory allocations.
 
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

Definition at line 25 of file component.h.

Member Enumeration Documentation

◆ Modifier

This value defines which kind of modifiers should be executed

Definition at line 32 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, prividing access to name and reverse for actions, and modifiers to customize execution.

Definition at line 11 of file component.cpp.

◆ ~Component()

Component::~Component ( )
overridevirtual

Definition at line 23 of file component.cpp.

◆ Component() [2/2]

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

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

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

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 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()

QString Component::name ( ) const

◆ reverse()

QString Component::reverse ( ) const

◆ setName()

void Component::setName ( const QString &  name)

◆ setReverse()

void Component::setReverse ( const QString &  reverse)

Defines the private name of this Component.

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 130 of file component.h.