pgLab/pglab/PgsqlDatabaseCatalogue.h

50 lines
1.2 KiB
C
Raw Normal View History

#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 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;
2017-02-13 19:51:19 +01:00
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