52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
#ifndef PGSQLDATABASECATALOGUE_H
|
|
#define PGSQLDATABASECATALOGUE_H
|
|
|
|
#include <libpq-fe.h>
|
|
#include <QString>
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
namespace Pgsql {
|
|
|
|
class Connection;
|
|
|
|
}
|
|
|
|
class PgTypeContainer;
|
|
class PgDatabaseContainer;
|
|
class PgAuthIdContainer;
|
|
|
|
class PgDatabaseCatalogue: public std::enable_shared_from_this<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;
|
|
|
|
std::shared_ptr<const PgTypeContainer> types() const;
|
|
std::shared_ptr<const PgDatabaseContainer> databases() const;
|
|
std::shared_ptr<const PgAuthIdContainer> authIds() const;
|
|
private:
|
|
QString m_serverVersionString;
|
|
int m_serverVersion;
|
|
std::shared_ptr<PgTypeContainer> m_types;
|
|
std::shared_ptr<PgDatabaseContainer> m_databases;
|
|
std::shared_ptr<PgAuthIdContainer> m_authIds;
|
|
};
|
|
|
|
QString getRoleNameFromOid(std::shared_ptr<const PgDatabaseCatalogue> cat, Oid oid);
|
|
QString getRoleDisplayString(std::shared_ptr<const PgDatabaseCatalogue> cat, Oid oid);
|
|
|
|
|
|
#endif // PGSQLDATABASECATALOGUE_H
|