digiKam
Loading...
Searching...
No Matches
Digikam::CoreDbBackendPrivate Class Reference

#include <coredbbackend_p.h>

+ Inheritance diagram for Digikam::CoreDbBackendPrivate:

Classes

class  ChangesetContainer
 

Public Member Functions

bool checkOperationStatus ()
 
bool checkRetrySQLiteLockError (int retries)
 
void closeDatabaseForThread ()
 
void connectionErrorAbortQueries () override
 
void connectionErrorContinueQueries () override
 
QString connectionName ()
 
 CoreDbBackendPrivate (CoreDbBackend *const backend)
 
QSqlDatabase createDatabaseConnection ()
 
QSqlError databaseErrorForThread ()
 
QSqlDatabase databaseForThread ()
 
void debugOutputFailedQuery (const QSqlQuery &query) const
 
void debugOutputFailedTransaction (const QSqlError &error) const
 
bool decrementTransactionCount ()
 
bool handleWithErrorHandler (const DbEngineSqlQuery *const query)
 
bool incrementTransactionCount ()
 
void init (const QString &connectionName, DbEngineLocking *const locking)
 
bool isConnectionError (const DbEngineSqlQuery &query) const
 
bool isInMainThread () const
 
bool isInUIThread () const
 
bool isSQLiteLockError (const DbEngineSqlQuery &query) const
 
bool isSQLiteLockTransactionError (const QSqlError &lastError) const
 
bool needToConsultUserForError (const DbEngineSqlQuery &query) const
 
bool needToHandleWithErrorHandler (const DbEngineSqlQuery &query) const
 
void queryOperationWakeAll (BdEngineBackend::QueryOperationStatus status)
 
bool reconnectOnError () const
 
bool resetDatabaseForThread ()
 
void sendToWatch (const AlbumChangeset &changeset)
 
void sendToWatch (const AlbumRootChangeset &changeset)
 
void sendToWatch (const CollectionImageChangeset &changeset)
 
void sendToWatch (const ImageChangeset &changeset)
 
void sendToWatch (const ImageTagChangeset &changeset)
 
void sendToWatch (const SearchChangeset &changeset)
 
void sendToWatch (const TagChangeset &changeset)
 
void setDatabaseErrorForThread (const QSqlError &lastError)
 
void setQueryOperationFlag (BdEngineBackend::QueryOperationStatus status)
 
void transactionFinished () override
 

Public Attributes

ChangesetContainer< AlbumChangesetalbumChangesetContainer
 
ChangesetContainer< AlbumRootChangesetalbumRootChangesetContainer
 
QString backendName
 
QWaitCondition busyWaitCondVar
 
QMutex busyWaitMutex
 
ChangesetContainer< CollectionImageChangesetcollectionImageChangesetContainer
 
int currentValidity = 0
 
DbEngineErrorHandlererrorHandler = nullptr
 
QWaitCondition errorLockCondVar
 
QMutex errorLockMutex
 
BdEngineBackend::QueryOperationStatus errorLockOperationStatus = BdEngineBackend::ExecuteNormal
 
ChangesetContainer< ImageChangesetimageChangesetContainer
 
ChangesetContainer< ImageTagChangesetimageTagChangesetContainer
 
bool isInTransaction = false
 
DbEngineLockinglock = nullptr
 
BdEngineBackend::QueryOperationStatus operationStatus = BdEngineBackend::ExecuteNormal
 
DbEngineParameters parameters
 
BdEngineBackend *const q = nullptr
 
ChangesetContainer< SearchChangesetsearchChangesetContainer
 
BdEngineBackend::Status status = BdEngineBackend::Unavailable
 
ChangesetContainer< TagChangesettagChangesetContainer
 
QThreadStorage< DbEngineThreadData * > threadDataStorage
 
CoreDbWatchwatch = nullptr
 

Constructor & Destructor Documentation

◆ CoreDbBackendPrivate()

Digikam::CoreDbBackendPrivate::CoreDbBackendPrivate ( CoreDbBackend *const  backend)
inlineexplicit

Member Function Documentation

◆ checkOperationStatus()

◆ checkRetrySQLiteLockError()

bool Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError ( int  retries)
inherited

◆ closeDatabaseForThread()

void Digikam::BdEngineBackendPrivate::closeDatabaseForThread ( )
inherited

◆ connectionErrorAbortQueries()

void Digikam::BdEngineBackendPrivate::connectionErrorAbortQueries ( )
overridevirtualinherited

◆ connectionErrorContinueQueries()

void Digikam::BdEngineBackendPrivate::connectionErrorContinueQueries ( )
overridevirtualinherited

◆ connectionName()

QString Digikam::BdEngineBackendPrivate::connectionName ( )
inherited

◆ createDatabaseConnection()

◆ databaseErrorForThread()

QSqlError Digikam::BdEngineBackendPrivate::databaseErrorForThread ( )
inherited

◆ databaseForThread()

QSqlDatabase Digikam::BdEngineBackendPrivate::databaseForThread ( )
inherited

"A connection can only be used from within the thread that created it. Moving connections between threads or creating queries from a different thread is not supported." => one QSqlDatabase object per thread. The main class' open/close methods only interact with the "firstDatabase" object. When another thread requests a DB, a new connection is opened and closed at finishing of the thread.

References Digikam::DbEngineThreadData::closeDatabase(), Digikam::DbEngineThreadData::connectionName, Digikam::BdEngineBackendPrivate::createDatabaseConnection(), Digikam::BdEngineBackendPrivate::currentValidity, Digikam::BdEngineBackendPrivate::threadDataStorage, and Digikam::DbEngineThreadData::valid.

Referenced by Digikam::BdEngineBackendPrivate::handleWithErrorHandler(), and Digikam::BdEngineBackendPrivate::resetDatabaseForThread().

◆ debugOutputFailedQuery()

void Digikam::BdEngineBackendPrivate::debugOutputFailedQuery ( const QSqlQuery &  query) const
inherited

◆ debugOutputFailedTransaction()

void Digikam::BdEngineBackendPrivate::debugOutputFailedTransaction ( const QSqlError &  error) const
inherited

◆ decrementTransactionCount()

bool Digikam::BdEngineBackendPrivate::decrementTransactionCount ( )
inherited

◆ handleWithErrorHandler()

◆ incrementTransactionCount()

bool Digikam::BdEngineBackendPrivate::incrementTransactionCount ( )
inherited

◆ init()

void Digikam::BdEngineBackendPrivate::init ( const QString &  connectionName,
DbEngineLocking *const  locking 
)
inherited

◆ isConnectionError()

◆ isInMainThread()

bool Digikam::BdEngineBackendPrivate::isInMainThread ( ) const
inherited

◆ isInUIThread()

bool Digikam::BdEngineBackendPrivate::isInUIThread ( ) const
inherited

◆ isSQLiteLockError()

bool Digikam::BdEngineBackendPrivate::isSQLiteLockError ( const DbEngineSqlQuery query) const
inherited

◆ isSQLiteLockTransactionError()

bool Digikam::BdEngineBackendPrivate::isSQLiteLockTransactionError ( const QSqlError &  lastError) const
inherited

◆ needToConsultUserForError()

bool Digikam::BdEngineBackendPrivate::needToConsultUserForError ( const DbEngineSqlQuery query) const
inherited

◆ needToHandleWithErrorHandler()

bool Digikam::BdEngineBackendPrivate::needToHandleWithErrorHandler ( const DbEngineSqlQuery query) const
inherited

◆ queryOperationWakeAll()

◆ reconnectOnError()

bool Digikam::BdEngineBackendPrivate::reconnectOnError ( ) const
inherited

◆ resetDatabaseForThread()

◆ sendToWatch() [1/7]

void Digikam::CoreDbBackendPrivate::sendToWatch ( const AlbumChangeset changeset)
inline

◆ sendToWatch() [2/7]

void Digikam::CoreDbBackendPrivate::sendToWatch ( const AlbumRootChangeset changeset)
inline

◆ sendToWatch() [3/7]

void Digikam::CoreDbBackendPrivate::sendToWatch ( const CollectionImageChangeset changeset)
inline

◆ sendToWatch() [4/7]

void Digikam::CoreDbBackendPrivate::sendToWatch ( const ImageChangeset changeset)
inline

◆ sendToWatch() [5/7]

void Digikam::CoreDbBackendPrivate::sendToWatch ( const ImageTagChangeset changeset)
inline

◆ sendToWatch() [6/7]

void Digikam::CoreDbBackendPrivate::sendToWatch ( const SearchChangeset changeset)
inline

◆ sendToWatch() [7/7]

void Digikam::CoreDbBackendPrivate::sendToWatch ( const TagChangeset changeset)
inline

◆ setDatabaseErrorForThread()

void Digikam::BdEngineBackendPrivate::setDatabaseErrorForThread ( const QSqlError &  lastError)
inherited

◆ setQueryOperationFlag()

◆ transactionFinished()

void Digikam::CoreDbBackendPrivate::transactionFinished ( )
inlineoverridevirtual

Member Data Documentation

◆ albumChangesetContainer

ChangesetContainer<AlbumChangeset> Digikam::CoreDbBackendPrivate::albumChangesetContainer

◆ albumRootChangesetContainer

ChangesetContainer<AlbumRootChangeset> Digikam::CoreDbBackendPrivate::albumRootChangesetContainer

◆ backendName

QString Digikam::BdEngineBackendPrivate::backendName
inherited

◆ busyWaitCondVar

QWaitCondition Digikam::BdEngineBackendPrivate::busyWaitCondVar
inherited

◆ busyWaitMutex

QMutex Digikam::BdEngineBackendPrivate::busyWaitMutex
inherited

◆ collectionImageChangesetContainer

ChangesetContainer<CollectionImageChangeset> Digikam::CoreDbBackendPrivate::collectionImageChangesetContainer

◆ currentValidity

int Digikam::BdEngineBackendPrivate::currentValidity = 0
inherited

This compares to DbEngineThreadData's valid. If currentValidity is increased and > valid, the db is marked as invalid

Referenced by Digikam::BdEngineBackendPrivate::databaseForThread().

◆ errorHandler

DbEngineErrorHandler* Digikam::BdEngineBackendPrivate::errorHandler = nullptr
inherited

◆ errorLockCondVar

QWaitCondition Digikam::BdEngineBackendPrivate::errorLockCondVar
inherited

◆ errorLockMutex

QMutex Digikam::BdEngineBackendPrivate::errorLockMutex
inherited

◆ errorLockOperationStatus

◆ imageChangesetContainer

ChangesetContainer<ImageChangeset> Digikam::CoreDbBackendPrivate::imageChangesetContainer

◆ imageTagChangesetContainer

ChangesetContainer<ImageTagChangeset> Digikam::CoreDbBackendPrivate::imageTagChangesetContainer

◆ isInTransaction

bool Digikam::BdEngineBackendPrivate::isInTransaction = false
inherited

◆ lock

◆ operationStatus

◆ parameters

◆ q

BdEngineBackend* const Digikam::BdEngineBackendPrivate::q = nullptr
inherited

◆ searchChangesetContainer

ChangesetContainer<SearchChangeset> Digikam::CoreDbBackendPrivate::searchChangesetContainer

◆ status

◆ tagChangesetContainer

ChangesetContainer<TagChangeset> Digikam::CoreDbBackendPrivate::tagChangesetContainer

◆ threadDataStorage

◆ watch

CoreDbWatch* Digikam::CoreDbBackendPrivate::watch = nullptr

The documentation for this class was generated from the following file: