#ifndef PGSQLDATABASECATALOGUE_H #define PGSQLDATABASECATALOGUE_H #include #include #include #include namespace Pgsql { class Connection; } class PgAuthIdContainer; class PgClassContainer; class PgDatabaseContainer; class PgTypeContainer; class PgDatabaseCatalog: public std::enable_shared_from_this { public: PgDatabaseCatalog(); PgDatabaseCatalog(const PgDatabaseCatalog&) = delete; PgDatabaseCatalog& operator = (const PgDatabaseCatalog&) = delete; ~PgDatabaseCatalog(); 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); void loadClasses(Pgsql::Connection &conn); const QString& serverVersionString() const; int serverVersion() const; std::shared_ptr types() const; std::shared_ptr databases() const; std::shared_ptr authIds() const; std::shared_ptr classes() const; private: QString m_serverVersionString; int m_serverVersion; std::shared_ptr m_types; std::shared_ptr m_databases; std::shared_ptr m_authIds; std::shared_ptr m_classes; }; QString getRoleNameFromOid(const PgDatabaseCatalog &cat, Oid oid); QString getRoleDisplayString(const PgDatabaseCatalog &cat, Oid oid); QString getNamespaceDisplayString(const PgDatabaseCatalog &cat, Oid oid); QString getTablespaceDisplayString(const PgDatabaseCatalog &cat, Oid oid); #endif // PGSQLDATABASECATALOGUE_H