CuteHMI - Shared Database (CuteHMI.SharedDatabase.0)
cutehmi::shareddatabase::DataObject Class Reference

Database object. More...

#include <cutehmi/shareddatabase/DataObject.hpp>

Inheritance diagram for cutehmi::shareddatabase::DataObject:
QObject CuteHMI::SharedDatabase::DataObject cutehmi::shareddatabase::PostgresMaintenance CuteHMI::SharedDatabase::PostgresMaintenance

Signals

void connectionNameChanged ()
 Connection name changed. More...
 
void busyChanged ()
 Busy changed. More...
 
void errored (cutehmi::InplaceError error)
 Errored. More...
 

Public Member Functions

 DataObject (QObject *parent=nullptr)
 Constructor. More...
 
QString connectionName () const
 Get connection name. More...
 
void setConnectionName (const QString &connectionName)
 Set connection name. More...
 
void resetConnectionName ()
 Reset connection name. More...
 
bool busy () const
 Get busy status. 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 ()
 

Protected Slots

void incrementBusy ()
 Increment busy counter. More...
 
void decrementBusy ()
 Decrement busy counter. More...
 
virtual void processErrors ()
 Process SQL errors. More...
 
void printError (cutehmi::InplaceError error) const
 Print error. More...
 

Protected Member Functions

void pushError (const QSqlError &sqlError, const QString &query=QString())
 Push SQL error. More...
 
DatabaseWorkerworker (std::function< void(QSqlDatabase &db)> task) const
 Create database worker and assign it a task. More...
 
- 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

QString connectionName
 Database connection name. More...
 
bool busy
 busy status. More...
 
- Properties inherited from QObject
 objectName
 

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

Database object.

Constructor & Destructor Documentation

◆ DataObject()

cutehmi::shareddatabase::DataObject::DataObject ( QObject parent = nullptr)

Constructor.

Parameters
parentparent object.

Member Function Documentation

◆ busy()

bool cutehmi::shareddatabase::DataObject::busy ( ) const

Get busy status.

Busy status is affected by employed workers, but can be also controlled with incrementBusy() and decrementBusy() slots.

Returns
busy status.
See also
incrementBusy(), decrementBusy(), worker().

◆ busyChanged

void cutehmi::shareddatabase::DataObject::busyChanged ( )
signal

Busy changed.

This signal is emitted when busy status has changed.

◆ connectionName()

QString cutehmi::shareddatabase::DataObject::connectionName ( ) const

Get connection name.

Returns
connection name.

◆ connectionNameChanged

void cutehmi::shareddatabase::DataObject::connectionNameChanged ( )
signal

Connection name changed.

This signal is emitted when connection name has changed.

◆ decrementBusy

void cutehmi::shareddatabase::DataObject::decrementBusy ( )
protectedslot

Decrement busy counter.

◆ errored

void cutehmi::shareddatabase::DataObject::errored ( cutehmi::InplaceError  error)
signal

Errored.

This signal is emitted when error was encountered.

Parameters
errorerror.

◆ incrementBusy

void cutehmi::shareddatabase::DataObject::incrementBusy ( )
protectedslot

Increment busy counter.

◆ printError

void cutehmi::shareddatabase::DataObject::printError ( cutehmi::InplaceError  error) const
protectedslot

Print error.

This slot is connected to errored() signal by default.

Parameters
errorerror to be printed. Error is printed using logging macros.

◆ processErrors

void cutehmi::shareddatabase::DataObject::processErrors ( )
protectedvirtualslot

Process SQL errors.

Call this function periodically (e.g. after database worker has done its job) to flush errors accumulated with pushError() function. Function emits errored() signal on each encountered error.

Remarks
This method is thread-safe.

◆ pushError()

void cutehmi::shareddatabase::DataObject::pushError ( const QSqlError sqlError,
const QString query = QString() 
)
protected

Push SQL error.

Parameters
sqlErrorSQL error.
queryquery associated with error.
Remarks
This method is thread-safe.

◆ resetConnectionName()

void cutehmi::shareddatabase::DataObject::resetConnectionName ( )

Reset connection name.

◆ setConnectionName()

void cutehmi::shareddatabase::DataObject::setConnectionName ( const QString connectionName)

Set connection name.

Parameters
connectionNameconnection name.

◆ worker()

DatabaseWorker * cutehmi::shareddatabase::DataObject::worker ( std::function< void(QSqlDatabase &db)>  task) const
protected

Create database worker and assign it a task.

Worker ready() signal is connected to processErrors() slot. Each worker is also connected to incrementBusy() and decrementBusy() slots to reflect its status within busy property.

Parameters
tasktask to be assigned to the worker.
Returns
worker worker which is assigned to the task.
Warning
worker will be scheduled for deletion after it completes the task (i.e. it emits ready() signal). However if worker is not ordered to work the caller is responsible for deleting it.

Property Documentation

◆ busy

bool cutehmi::shareddatabase::DataObject::busy
read

busy status.

Indicates that object is busy processing SQL request.

◆ connectionName

QString cutehmi::shareddatabase::DataObject::connectionName
readwrite

Database connection name.