#ifndef PGSQLDATABASECATALOGUE_H #define PGSQLDATABASECATALOGUE_H #include namespace Pgsql { class Connection; } class PgTypeContainer; class PgDatabaseContainer; class PgsqlDatabaseCatalogue { public: PgsqlDatabaseCatalogue(); PgsqlDatabaseCatalogue(const PgsqlDatabaseCatalogue&) = delete; PgsqlDatabaseCatalogue& operator = (const PgsqlDatabaseCatalogue&) = delete; ~PgsqlDatabaseCatalogue(); void loadAll(Pgsql::Connection &conn); void loadTypes(Pgsql::Connection &conn); void loadDatabases(Pgsql::Connection &conn); const PgTypeContainer* types() const { return m_types; } const PgDatabaseContainer *databases() const { return m_databases; } private: PgTypeContainer *m_types = nullptr; PgDatabaseContainer *m_databases = nullptr; }; #endif // PGSQLDATABASECATALOGUE_H