#ifndef PGTYPECONTAINER_H #define PGTYPECONTAINER_H #include #include "pgtype.h" namespace Pgsql { class Result; } class PgTypeContainer { public: using t_Types = std::vector; ///< Do not assume it will stay a vector only expect bidirectional access PgTypeContainer(); t_Types::const_iterator begin() const { return m_types.begin(); } t_Types::const_iterator end() const { return m_types.end(); } void clear(); std::string getLoadQuery(); void load(const Pgsql::Result &res); /** Searches for the type matching the specified oid. * * \return Returns the matching type or if it is not found a default constructed PgType (oid == InvalidOid). */ const PgType& getTypeByOid(Oid oid) const; const PgType& getTypeByName(const QString &name) const; private: PgType m_invalidType; ///< default constructed object for when a non existent type is being retrieved. t_Types m_types; // Keep sorted by Oid }; #endif // PGTYPECONTAINER_H