![]() |
QxOrm
1.5.0
C++ Object Relational Mapping library
|
qx::QxDaoAsync : helper class to execute SQL queries in another thread (asynchronous way) using qx::IxPersistable interface More...
#include <QxDaoAsync.h>
Signals | |
| void | queryStarted (qx::dao::detail::QxDaoAsyncParams_ptr pDaoParams) |
| void | queryFinished (const QSqlError &daoError, qx::dao::detail::QxDaoAsyncParams_ptr pDaoParams) |
Public Member Functions | |
| QxDaoAsync () | |
| virtual | ~QxDaoAsync () |
| bool | asyncCount (const QString &className, const qx::QxSqlQuery &query=qx::QxSqlQuery(), QSqlDatabase *pDatabase=NULL) |
| bool | asyncFetchById (IxPersistable_ptr pToFetch, const QVariant &id=QVariant(), const QStringList &columns=QStringList(), const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL) |
| bool | asyncFetchAll (const QString &className, const QStringList &columns=QStringList(), const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL) |
| bool | asyncFetchByQuery (const QString &className, const qx::QxSqlQuery &query, const QStringList &columns=QStringList(), const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL) |
| bool | asyncInsert (IxPersistable_ptr pToInsert, const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL) |
| bool | asyncUpdate (IxPersistable_ptr pToUpdate, const qx::QxSqlQuery &query=qx::QxSqlQuery(), const QStringList &columns=QStringList(), const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL) |
| bool | asyncSave (IxPersistable_ptr pToSave, const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL) |
| bool | asyncDeleteById (IxPersistable_ptr pToDelete, const QVariant &id=QVariant(), QSqlDatabase *pDatabase=NULL) |
| bool | asyncDeleteAll (const QString &className, QSqlDatabase *pDatabase=NULL) |
| bool | asyncDeleteByQuery (const QString &className, const qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL) |
| bool | asyncDestroyById (IxPersistable_ptr pToDestroy, const QVariant &id=QVariant(), QSqlDatabase *pDatabase=NULL) |
| bool | asyncDestroyAll (const QString &className, QSqlDatabase *pDatabase=NULL) |
| bool | asyncDestroyByQuery (const QString &className, const qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL) |
| bool | asyncExecuteQuery (const QString &className, qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL) |
| bool | asyncCallQuery (qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL) |
| bool | isQueryRunning () const |
Protected Member Functions | |
| virtual void | run () |
| void | startQuery () |
Protected Attributes | |
| QMutex | m_mutex |
| Mutex => qx::QxDaoAsync is thread-safe. | |
| qx::dao::detail::QxDaoAsyncParams_ptr | m_pDaoParams |
| Parameters to execute query. | |
Private Slots | |
| void | onQueryFinished (const QSqlError &daoError, qx::dao::detail::QxDaoAsyncParams_ptr pDaoParams) |
qx::QxDaoAsync : helper class to execute SQL queries in another thread (asynchronous way) using qx::IxPersistable interface
To use qx::QxDaoAsync helper class : 1- be careful to work only with classes implementing qx::IxPersistable interface ; 2- create an instance of qx::QxDaoAsync type (for example, a property of a QWidget derived class) ; 3- connect a SLOT to the qx::QxDaoAsync::queryFinished() SIGNAL (for example, a SLOT of a QWidget derived class) ; 4- run a query using one of qx::QxDaoAsync::asyncXXXX() methods.
For example, with a MyWidget class :
class MyWidget : public QWidget { Q_OBJECT //... qx::QxDaoAsync m_daoAsync; //... Q_SLOTS: void onQueryFinished(const QSqlError & daoError, qx::dao::detail::QxDaoAsyncParams_ptr pDaoParams); //... };
And here is the implementation of MyWidget class :
MyWidget::MyWidget() : QObject()
{
//...
QObject::connect((& m_daoAsync), SIGNAL(queryFinished(const QSqlError &, qx::dao::detail::QxDaoAsyncParams_ptr)), this, SLOT(onQueryFinished(const QSqlError &, qx::dao::detail::QxDaoAsyncParams_ptr)));
//...
}
void MyWidget::onQueryFinished(const QSqlError & daoError, qx::dao::detail::QxDaoAsyncParams_ptr pDaoParams)
{
if (! pDaoParams) { return; }
qx::QxSqlQuery query = pDaoParams->query;
if (! daoError.isValid()) { ; }
// If the async query is associated to a simple object, just use 'pDaoParams->pInstance' method
qx::IxPersistable_ptr ptr = pDaoParams->pInstance;
// If the async query is associated to a list of objects, just use 'pDaoParams->pListOfInstances' method
qx::IxPersistableCollection_ptr lst = pDaoParams->pListOfInstances;
//...
}
Definition at line 170 of file QxDaoAsync.h.
| qx::QxDaoAsync::QxDaoAsync | ( | ) |
| virtual qx::QxDaoAsync::~QxDaoAsync | ( | ) | [virtual] |
| bool qx::QxDaoAsync::asyncCallQuery | ( | qx::QxSqlQuery & | query, |
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncCount | ( | const QString & | className, |
| const qx::QxSqlQuery & | query = qx::QxSqlQuery(), |
||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncDeleteAll | ( | const QString & | className, |
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncDeleteById | ( | IxPersistable_ptr | pToDelete, |
| const QVariant & | id = QVariant(), |
||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncDeleteByQuery | ( | const QString & | className, |
| const qx::QxSqlQuery & | query, | ||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncDestroyAll | ( | const QString & | className, |
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncDestroyById | ( | IxPersistable_ptr | pToDestroy, |
| const QVariant & | id = QVariant(), |
||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncDestroyByQuery | ( | const QString & | className, |
| const qx::QxSqlQuery & | query, | ||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncExecuteQuery | ( | const QString & | className, |
| qx::QxSqlQuery & | query, | ||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncFetchAll | ( | const QString & | className, |
| const QStringList & | columns = QStringList(), |
||
| const QStringList & | relation = QStringList(), |
||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncFetchById | ( | IxPersistable_ptr | pToFetch, |
| const QVariant & | id = QVariant(), |
||
| const QStringList & | columns = QStringList(), |
||
| const QStringList & | relation = QStringList(), |
||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncFetchByQuery | ( | const QString & | className, |
| const qx::QxSqlQuery & | query, | ||
| const QStringList & | columns = QStringList(), |
||
| const QStringList & | relation = QStringList(), |
||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncInsert | ( | IxPersistable_ptr | pToInsert, |
| const QStringList & | relation = QStringList(), |
||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncSave | ( | IxPersistable_ptr | pToSave, |
| const QStringList & | relation = QStringList(), |
||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::asyncUpdate | ( | IxPersistable_ptr | pToUpdate, |
| const qx::QxSqlQuery & | query = qx::QxSqlQuery(), |
||
| const QStringList & | columns = QStringList(), |
||
| const QStringList & | relation = QStringList(), |
||
| QSqlDatabase * | pDatabase = NULL |
||
| ) |
| bool qx::QxDaoAsync::isQueryRunning | ( | ) | const [inline] |
Definition at line 201 of file QxDaoAsync.h.
| void qx::QxDaoAsync::onQueryFinished | ( | const QSqlError & | daoError, |
| qx::dao::detail::QxDaoAsyncParams_ptr | pDaoParams | ||
| ) | [private, slot] |
| void qx::QxDaoAsync::queryFinished | ( | const QSqlError & | daoError, |
| qx::dao::detail::QxDaoAsyncParams_ptr | pDaoParams | ||
| ) | [signal] |
| void qx::QxDaoAsync::queryStarted | ( | qx::dao::detail::QxDaoAsyncParams_ptr | pDaoParams | ) | [signal] |
| virtual void qx::QxDaoAsync::run | ( | ) | [protected, virtual] |
| void qx::QxDaoAsync::startQuery | ( | ) | [protected] |
QMutex qx::QxDaoAsync::m_mutex [protected] |
Mutex => qx::QxDaoAsync is thread-safe.
Definition at line 177 of file QxDaoAsync.h.
Parameters to execute query.
Definition at line 178 of file QxDaoAsync.h.