More aggressive saving of changes to the connections. Also remove connection

now removes the connection from the file.
This commit is contained in:
Eelke Klein 2017-01-18 20:48:31 +01:00
parent ea30dd9c0e
commit 163bb1d513
11 changed files with 258 additions and 8 deletions

74
dbschema_database.h Normal file
View file

@ -0,0 +1,74 @@
#ifndef DBSCHEMA_DATABASE_H
#define DBSCHEMA_DATABASE_H
#include <QDateTime>
#include <QString>
#include <map>
namespace dbschema {
class Role {
public:
int oid;
QString rolname;
bool super;
bool inherit;
bool createrole;
bool createdb;
bool canlogin;
bool replication;
bool bypassRls;
int connLimit;
QDateTime validUntil;
};
class Server {
public:
private:
using t_RoleList = std::map<int, Role*>;
// tablespaces
};
class Schema {
int oid;
QString schema;
};
class Table {
public:
int oid;
Schema *schema;
QString tableName;
};
/** Holds all the definitions from a single database
This class is responsible for cleaning up all dynamically allocated objects.
*/
class Database {
public:
Database();
~Database();
Database(const Database &) = delete;
Database& operator=(const Database &) = delete;
private:
using t_SchemaList = std::map<int, Schema*>;
using t_TableList = std::map<int, Table*>;
t_SchemaList m_schemas; // Alphabetically ordered
t_TableList m_tables;
};
}
#endif // DBSCHEMA_DATABASE_H