ASyncDBConnection uses Qt signals now for reporting state changes and notices
This commit is contained in:
parent
90d0a14b63
commit
3befef2464
7 changed files with 30 additions and 73 deletions
|
|
@ -72,13 +72,10 @@ void ASyncDBConnection::doStateCallback(State state)
|
|||
m_connection.setNoticeReceiver(
|
||||
[this](const PGresult *result) { processNotice(result); });
|
||||
}
|
||||
|
||||
std::lock_guard<std::mutex> lg(m_stateCallback.m_mutex);
|
||||
if (m_stateCallback.m_func) {
|
||||
m_stateCallback.m_func(state);
|
||||
}
|
||||
emit onStateChanged(state);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ASyncDBConnection::closeConnection()
|
||||
|
|
@ -155,23 +152,8 @@ bool ASyncDBConnection::cancel()
|
|||
return m_canceller.cancel(nullptr);
|
||||
}
|
||||
|
||||
void ASyncDBConnection::setStateCallback(on_state_callback state_callback)
|
||||
{
|
||||
std::lock_guard<std::mutex> lg(m_stateCallback.m_mutex);
|
||||
m_stateCallback.m_func = state_callback;
|
||||
}
|
||||
|
||||
void ASyncDBConnection::setNoticeCallback(on_notice_callback notice_callback)
|
||||
{
|
||||
std::lock_guard<std::mutex> lg(m_noticeCallback.m_mutex);
|
||||
m_noticeCallback.m_func = notice_callback;
|
||||
}
|
||||
|
||||
void ASyncDBConnection::processNotice(const PGresult *result)
|
||||
{
|
||||
std::lock_guard<std::mutex> lg(m_noticeCallback.m_mutex);
|
||||
if (m_noticeCallback.m_func) {
|
||||
Pgsql::ErrorDetails details = Pgsql::ErrorDetails::createErrorDetailsFromPGresult(result);
|
||||
m_noticeCallback.m_func(details);
|
||||
}
|
||||
Pgsql::ErrorDetails details = Pgsql::ErrorDetails::createErrorDetailsFromPGresult(result);
|
||||
emit onNotice(details);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue