2020-06-13 16:31:20 +00:00
|
|
|
|
using System;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
using Npgsql;
|
|
|
|
|
|
|
|
|
|
namespace PluralKit.Core
|
|
|
|
|
{
|
|
|
|
|
public interface IPKConnection: IDbConnection, IAsyncDisposable
|
|
|
|
|
{
|
|
|
|
|
public Guid ConnectionId { get; }
|
|
|
|
|
|
|
|
|
|
public Task OpenAsync(CancellationToken cancellationToken = default);
|
|
|
|
|
public Task CloseAsync();
|
|
|
|
|
|
|
|
|
|
public Task ChangeDatabaseAsync(string databaseName, CancellationToken ct = default);
|
|
|
|
|
|
2020-06-13 16:49:05 +00:00
|
|
|
|
public ValueTask<IPKTransaction> BeginTransactionAsync(CancellationToken ct = default) => BeginTransactionAsync(IsolationLevel.Unspecified, ct);
|
|
|
|
|
public ValueTask<IPKTransaction> BeginTransactionAsync(IsolationLevel level, CancellationToken ct = default);
|
2020-06-13 16:31:20 +00:00
|
|
|
|
|
|
|
|
|
public NpgsqlBinaryImporter BeginBinaryImport(string copyFromCommand);
|
|
|
|
|
public NpgsqlBinaryExporter BeginBinaryExport(string copyToCommand);
|
2020-06-13 17:54:16 +00:00
|
|
|
|
|
2020-06-13 16:31:20 +00:00
|
|
|
|
[Obsolete] new void Open();
|
|
|
|
|
[Obsolete] new void Close();
|
|
|
|
|
|
|
|
|
|
[Obsolete] new IDbTransaction BeginTransaction();
|
|
|
|
|
[Obsolete] new IDbTransaction BeginTransaction(IsolationLevel il);
|
|
|
|
|
}
|
|
|
|
|
}
|