فهرست منبع

Made DB Singleton implementation Thread Safe

Felix 2 ماه پیش
والد
کامیت
b9337305cf
2فایلهای تغییر یافته به همراه4 افزوده شده و 11 حذف شده
  1. 0 9
      src/database/database.cpp
  2. 4 2
      src/database/database.h

+ 0 - 9
src/database/database.cpp

@@ -21,8 +21,6 @@
 
 namespace OPL {
 
-Database* Database::self = nullptr;
-
 bool Database::connect()
 {
     if (!QSqlDatabase::isDriverAvailable(SQLITE_DRIVER)) {
@@ -99,13 +97,6 @@ void Database::updateLayout()
     emit dataBaseUpdated(DbTable::Any);
 }
 
-Database* Database::instance()
-{
-    if(!self)
-        self = new Database();
-
-    return self;
-}
 
 const QString Database::sqliteVersion() const
 {

+ 4 - 2
src/database/database.h

@@ -66,7 +66,6 @@ private:
     Database()
         : databaseFile(OPL::Paths::databaseFileInfo())
     {}
-    static Database* self;
     const QFileInfo databaseFile;
     QStringList tableNames;
     QHash<QString, QStringList> tableColumns;
@@ -87,7 +86,10 @@ private:
 public:
     Database(const Database&) = delete;
     void operator=(const Database&) = delete;
-    static Database* instance();
+    static Database* instance() {
+        static Database instance;
+        return &instance;
+    }
 
     /*!
      * \brief Holds information about the last error that ocurred during