#ifndef PGSQLDATABASECATALOGUE_H #define PGSQLDATABASECATALOGUE_H #include #include #include namespace Pgsql { class Connection; } class PgTypeContainer; class PgDatabaseContainer; class PgAuthIdContainer; class PgDatabaseCatalogue { public: PgDatabaseCatalogue(); PgDatabaseCatalogue(const PgDatabaseCatalogue&) = delete; PgDatabaseCatalogue& operator = (const PgDatabaseCatalogue&) = delete; ~PgDatabaseCatalogue(); void loadAll(Pgsql::Connection &conn); void loadInfo(Pgsql::Connection &conn); void loadTypes(Pgsql::Connection &conn); void loadDatabases(Pgsql::Connection &conn); void loadAuthIds(Pgsql::Connection &conn); const QString& serverVersionString() const; int serverVersion() const; const PgTypeContainer* types() const; const PgDatabaseContainer *databases() const; const PgAuthIdContainer *authIds() const; private: QString m_serverVersionString; int m_serverVersion; PgTypeContainer *m_types = nullptr; PgDatabaseContainer *m_databases = nullptr; PgAuthIdContainer *m_authIds = nullptr; }; QString getRoleNameFromOid(const PgDatabaseCatalogue *cat, Oid oid); QString getRoleDisplayString(const PgDatabaseCatalogue *cat, Oid oid); #endif // PGSQLDATABASECATALOGUE_H