X-Git-Url: https://vaikene.ee/gitweb/pswgen09.html?a=blobdiff_plain;f=src%2Fapps%2FPswGen%2FStorage%2Fmodule.h;h=e0839b391ee3183f0c2c9b914b1763f8f03a0c58;hb=13dedf19c628b9967e4c4106ab0fd967f1df0b90;hp=95b935f2926bec0e31793eba401d7d7668c4fbd4;hpb=d50faf159f17a66fb89ea3e7878b6f56e34b9e72;p=evaf
diff --git a/src/apps/PswGen/Storage/module.h b/src/apps/PswGen/Storage/module.h
index 95b935f..e0839b3 100644
--- a/src/apps/PswGen/Storage/module.h
+++ b/src/apps/PswGen/Storage/module.h
@@ -3,7 +3,7 @@
* @brief Implementation of the iStorage interface
* @author Enar Vaikene
*
- * Copyright (c) 2011 Enar Vaikene
+ * Copyright (c) 2011-2012 Enar Vaikene
*
* This file is part of the eVaf C++ cross-platform application development framework.
*
@@ -21,6 +21,7 @@
# define __PSWGEN_STORAGE_MODULE_H
#include "istorage.h"
+#include "version.h"
#include
@@ -28,8 +29,8 @@
#include
#include
#include
-#include
+class QSqlDatabase;
namespace eVaf {
namespace PswGen {
@@ -49,6 +50,7 @@ class Module : public Plugins::iPlugin
{
Q_OBJECT
Q_INTERFACES(eVaf::Plugins::iPlugin)
+ Q_PLUGIN_METADATA(IID VER_MODULE_NAME_STR)
public:
@@ -124,9 +126,6 @@ private: // Members
/// Name of the database file without path
static char const * const DbName;
- /// Database connection
- QSqlDatabase mDb;
-
/// List of name/data pairs
QMap > mData;
@@ -137,13 +136,23 @@ private: // Methods
* Creates database tables if necessary
* @return True if ok; false if failed
*/
- bool createTables();
+ bool createTables(QSqlDatabase & db);
+
+ /**
+ * Upgrades database tables if necessary
+ * @return True if ok; false if failed
+ *
+ * This function checks if database tables need to upgraded and
+ * performs the upgrade without a loss of data if possible.
+ * Returns false if upgrade is not possible or fails.
+ */
+ bool upgradeTables(QSqlDatabase & db);
/**
* Loads data from the database
* @return True if ok; false if failed
*/
- bool loadData();
+ bool loadData(QSqlDatabase & db);
};