Kit.Core/LibExternal/Npgsql/Internal/INpgsqlDatabaseInfoFactory.cs

22 lines
963 B
C#

using System.Threading.Tasks;
using Npgsql.Util;
namespace Npgsql.Internal;
/// <summary>
/// A factory which get generate instances of <see cref="NpgsqlDatabaseInfo"/>, which describe a database
/// and the types it contains. When first connecting to a database, Npgsql will attempt to load information
/// about it via this factory.
/// </summary>
public interface INpgsqlDatabaseInfoFactory
{
/// <summary>
/// Given a connection, loads all necessary information about the connected database, e.g. its types.
/// A factory should only handle the exact database type it was meant for, and return null otherwise.
/// </summary>
/// <returns>
/// An object describing the database to which <paramref name="conn"/> is connected, or null if the
/// database isn't of the correct type and isn't handled by this factory.
/// </returns>
Task<NpgsqlDatabaseInfo?> Load(NpgsqlConnector conn, NpgsqlTimeout timeout, bool async);
}