using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.MediaEncoding; /// /// A no-op implementation of used in single-instance deployments /// where durable session tracking across pods is not required. /// public sealed class NullTranscodeSessionStore : ITranscodeSessionStore { /// public Task TryGetAsync(string playSessionId, CancellationToken cancellationToken = default) => Task.FromResult(null); /// public Task TryTakeoverAsync(string playSessionId, string claimingPod, CancellationToken cancellationToken = default) => Task.FromResult(false); /// public Task SetAsync(TranscodeSession session, CancellationToken cancellationToken = default) => Task.CompletedTask; /// public Task RenewLeaseAsync(string playSessionId, CancellationToken cancellationToken = default) => Task.CompletedTask; /// public Task DeleteAsync(string playSessionId, CancellationToken cancellationToken = default) => Task.CompletedTask; /// public Task> GetActiveSessionsAsync(CancellationToken cancellationToken = default) => Task.FromResult>(Array.Empty()); /// public Task SetLiveStreamAsync(LiveStreamSession session, CancellationToken cancellationToken = default) => Task.CompletedTask; /// public Task TryGetLiveStreamAsync(string liveStreamId, string sessionIdOrPlaySessionId, CancellationToken cancellationToken = default) => Task.FromResult(null); /// public Task DeleteLiveStreamAsync(string liveStreamId, string sessionIdOrPlaySessionId, CancellationToken cancellationToken = default) => Task.CompletedTask; }