#ifndef PGSQLDATABASECATALOGUE_H #define PGSQLDATABASECATALOGUE_H #include #include #include namespace Pgsql { class Connection; } class PgTypeContainer; class PgDatabaseContainer; class PgAuthIdContainer; class PgsqlDatabaseCatalogue { public: PgsqlDatabaseCatalogue(); PgsqlDatabaseCatalogue(const PgsqlDatabaseCatalogue&) = delete; PgsqlDatabaseCatalogue& operator = (const PgsqlDatabaseCatalogue&) = delete; ~PgsqlDatabaseCatalogue(); 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 PgsqlDatabaseCatalogue *cat, Oid oid); #endif // PGSQLDATABASECATALOGUE_H