CuteHMI - Services (CuteHMI.Services.2)
cutehmi::services::Service Class Reference

Service. More...

#include <cutehmi/services/Service.hpp>

Inheritance diagram for cutehmi::services::Service:
QObject CuteHMI::Services::Service

Public Slots

void start ()
 
void stop ()
 

Signals

void stopTimeoutChanged ()
 
void startTimeoutChanged ()
 
void repairTimeoutChanged ()
 
void nameChanged ()
 
void statusChanged ()
 
void serviceableChanged ()
 
void started ()
 
void stopped ()
 
void activated ()
 

Public Member Functions

 Service (QObject *parent=nullptr)
 
 ~Service () override
 
int stopTimeout () const
 
void setStopTimeout (int stopTimeout)
 Set stop timeout. More...
 
int startTimeout () const
 
void setStartTimeout (int startTimeout)
 Set start timeout. More...
 
int repairTimeout () const
 
void setRepairTimeout (int repairTimeout)
 Set repair timeout. More...
 
QString name () const
 
void setName (const QString &name)
 
QString status () const
 
void setServiceable (QVariant serviceable)
 Set serviced object. More...
 
QVariant serviceable () const
 Get serviced object. More...
 
Q_INVOKABLE QAbstractStatefindState (const QString &name) const
 Find state by its name. More...
 
- Public Member Functions inherited from QObject
virtual const QMetaObjectmetaObject () const const
 
virtual void * qt_metacast (const char *)
 
virtual int qt_metacall (QMetaObject::Call, int, void **)
 
 QObject (QObject *parent)
 
virtual ~QObject ()
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
QString objectName () const const
 
void setObjectName (const QString &name)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
bool signalsBlocked () const const
 
bool blockSignals (bool block)
 
QThreadthread () const const
 
void moveToThread (QThread *targetThread)
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
void killTimer (int id)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectList & children () const const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectTree ()
 
void dumpObjectInfo ()
 
void dumpObjectTree () const const
 
void dumpObjectInfo () const const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const const
 
QList< QByteArraydynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 

Static Public Attributes

static constexpr int INITIAL_STOP_TIMEOUT = 30000
 
static constexpr int INITIAL_START_TIMEOUT = 30000
 
static constexpr int INITIAL_REPAIR_TIMEOUT = 30000
 
static constexpr const char * INITIAL_NAME = "Unnamed Service"
 

Protected Slots

void activate ()
 
void setStatus (const QString &status)
 

Protected Member Functions

internal::StateInterfacestateInterface ()
 
const internal::StateInterfacestateInterface () const
 
- Protected Member Functions inherited from QObject
QObjectsender () const const
 
int senderSignalIndex () const const
 
int receivers (const char *signal) const const
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 

Properties

int stopTimeout
 
int startTimeout
 
int repairTimeout
 
QString name
 
QString status
 
QVariant serviceable
 
- Properties inherited from QObject
 objectName
 

Friends

class ServiceManager
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
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 *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
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 QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 

Detailed Description

Service.

Service object acts as a container that wraps Serviceable instance and makes it accessible through QObject properties defined by it. This approach decouples state interface API from the rest of QObject allowing classes to implement interface, without disturbing their, perhaps more natural, hierarchy (class may inherit only after a single QObject).

Constructor & Destructor Documentation

◆ Service()

cutehmi::services::Service::Service ( QObject parent = nullptr)

◆ ~Service()

cutehmi::services::Service::~Service ( )
override

Member Function Documentation

◆ activate

void cutehmi::services::Service::activate ( )
protectedslot

◆ activated

void cutehmi::services::Service::activated ( )
signal

◆ findState()

QAbstractState * cutehmi::services::Service::findState ( const QString name) const

Find state by its name.

States can be given name using QObject::setObjectName() function. Standard states are given appropriate names:

  • "stopped"
  • "interrupted"
  • "starting"
  • "started"
  • "stopping"
  • "broken"
  • "repairing"
  • "evacuating"
  • "active"
  • "idling"
  • "yielding"
Parameters
namestate name.
Returns
state.

◆ name()

QString cutehmi::services::Service::name ( ) const

◆ nameChanged

void cutehmi::services::Service::nameChanged ( )
signal

◆ repairTimeout()

int cutehmi::services::Service::repairTimeout ( ) const

◆ repairTimeoutChanged

void cutehmi::services::Service::repairTimeoutChanged ( )
signal

◆ serviceable()

QVariant cutehmi::services::Service::serviceable ( ) const

Get serviced object.

Returns
serviced object. QVariant wraps Serviceable * pointer.

◆ serviceableChanged

void cutehmi::services::Service::serviceableChanged ( )
signal

◆ setName()

void cutehmi::services::Service::setName ( const QString name)

◆ setRepairTimeout()

void cutehmi::services::Service::setRepairTimeout ( int  repairTimeout)

Set repair timeout.

Parameters
repairTimeoutamount of time [milliseconds] after which repair sequence should be interrupted. Setting a negative value will disable timeout functionality.

◆ setServiceable()

void cutehmi::services::Service::setServiceable ( QVariant  serviceable)

Set serviced object.

Object must implement Serviceable interface. Whole communication between service and serviceable is accomplished through state interface. State interface can not be accessed directly. Instead, serviceable is asked to configure states of the service via Serviceable interface.

Parameters
serviceableserviceable object to be maintained by this service. Object must implement Serviceable interface.

◆ setStartTimeout()

void cutehmi::services::Service::setStartTimeout ( int  startTimeout)

Set start timeout.

Parameters
startTimeoutamount of time [milliseconds] after which starting sequence should be interrupted. Setting a negative value will disable timeout functionality.

◆ setStatus

void cutehmi::services::Service::setStatus ( const QString status)
protectedslot

◆ setStopTimeout()

void cutehmi::services::Service::setStopTimeout ( int  stopTimeout)

Set stop timeout.

Parameters
stopTimeoutamount of time [milliseconds] after which stopping or evacuating sequence should be interrupted. Setting a negative value will disable timeout functionality.

◆ start

void cutehmi::services::Service::start ( )
slot

◆ started

void cutehmi::services::Service::started ( )
signal

◆ startTimeout()

int cutehmi::services::Service::startTimeout ( ) const

◆ startTimeoutChanged

void cutehmi::services::Service::startTimeoutChanged ( )
signal

◆ stateInterface() [1/2]

const internal::StateInterface * cutehmi::services::Service::stateInterface ( )
protected

◆ stateInterface() [2/2]

const internal::StateInterface* cutehmi::services::Service::stateInterface ( ) const
protected

◆ status()

QString cutehmi::services::Service::status ( ) const

◆ statusChanged

void cutehmi::services::Service::statusChanged ( )
signal

◆ stop

void cutehmi::services::Service::stop ( )
slot

◆ stopped

void cutehmi::services::Service::stopped ( )
signal

◆ stopTimeout()

int cutehmi::services::Service::stopTimeout ( ) const

◆ stopTimeoutChanged

void cutehmi::services::Service::stopTimeoutChanged ( )
signal

Friends And Related Function Documentation

◆ ServiceManager

friend class ServiceManager
friend

Member Data Documentation

◆ INITIAL_NAME

constexpr const char * cutehmi::services::Service::INITIAL_NAME = "Unnamed Service"
staticconstexpr

◆ INITIAL_REPAIR_TIMEOUT

constexpr int cutehmi::services::Service::INITIAL_REPAIR_TIMEOUT = 30000
staticconstexpr

◆ INITIAL_START_TIMEOUT

constexpr int cutehmi::services::Service::INITIAL_START_TIMEOUT = 30000
staticconstexpr

◆ INITIAL_STOP_TIMEOUT

constexpr int cutehmi::services::Service::INITIAL_STOP_TIMEOUT = 30000
staticconstexpr

Property Documentation

◆ name

QString cutehmi::services::Service::name
readwrite

◆ repairTimeout

int cutehmi::services::Service::repairTimeout
readwrite

◆ serviceable

QVariant cutehmi::services::Service::serviceable
readwrite

◆ startTimeout

int cutehmi::services::Service::startTimeout
readwrite

◆ status

QString cutehmi::services::Service::status
read

◆ stopTimeout

int cutehmi::services::Service::stopTimeout
readwrite