35 lines
921 B
C#
35 lines
921 B
C#
using MxGateway.Contracts.Proto;
|
|
|
|
namespace MxGateway.Server.Sessions;
|
|
|
|
public interface ISessionManager
|
|
{
|
|
Task<GatewaySession> OpenSessionAsync(
|
|
SessionOpenRequest request,
|
|
string? clientIdentity,
|
|
CancellationToken cancellationToken);
|
|
|
|
bool TryGetSession(
|
|
string sessionId,
|
|
out GatewaySession session);
|
|
|
|
Task<WorkerCommandReply> InvokeAsync(
|
|
string sessionId,
|
|
WorkerCommand command,
|
|
CancellationToken cancellationToken);
|
|
|
|
IAsyncEnumerable<WorkerEvent> ReadEventsAsync(
|
|
string sessionId,
|
|
CancellationToken cancellationToken);
|
|
|
|
Task<SessionCloseResult> CloseSessionAsync(
|
|
string sessionId,
|
|
CancellationToken cancellationToken);
|
|
|
|
Task<int> CloseExpiredLeasesAsync(
|
|
DateTimeOffset now,
|
|
CancellationToken cancellationToken);
|
|
|
|
Task ShutdownAsync(CancellationToken cancellationToken);
|
|
}
|