23 lines
No EOL
665 B
C#
23 lines
No EOL
665 B
C#
|
|
using System.Threading.Tasks;
|
|
using FrostFS.SDK.ClientV2.Parameters;
|
|
|
|
namespace FrostFS.SDK.ClientV2;
|
|
|
|
internal interface ISessionProvider
|
|
{
|
|
ValueTask<Session.SessionToken> GetOrCreateSession(ISessionToken args, Context ctx);
|
|
}
|
|
|
|
internal class SessionProvider(ClientEnvironment env)
|
|
{
|
|
public async ValueTask<Session.SessionToken> GetOrCreateSession(ISessionToken args, Context ctx)
|
|
{
|
|
if (args.SessionToken is null)
|
|
{
|
|
return await env.Client.CreateSessionInternalAsync(new PrmSessionCreate(uint.MaxValue) { Context = ctx });
|
|
}
|
|
|
|
return new Session.SessionToken().Deserialize(args.SessionToken.Token);
|
|
}
|
|
} |