51 lines
1.2 KiB
C++
51 lines
1.2 KiB
C++
#ifndef PGSQLDATABASECATALOGUE_H
|
|
#define PGSQLDATABASECATALOGUE_H
|
|
|
|
#include <libpq-fe.h>
|
|
#include <QString>
|
|
#include <vector>
|
|
|
|
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
|