+ return quasselDir().absolutePath() + "/quassel-storage.sqlite";
+}
+
+bool SqliteStorage::safeExec(QSqlQuery &query, int retryCount) {
+ query.exec();
+
+ if(!query.lastError().isValid())
+ return true;
+
+ switch(query.lastError().number()) {
+ case 5: // SQLITE_BUSY 5 /* The database file is locked */
+ case 6: // SQLITE_LOCKED 6 /* A table in the database is locked */
+ if(retryCount < _maxRetryCount)
+ return safeExec(query, retryCount + 1);
+ default:
+ return false;
+ }