Ejemplo n.º 1
0
        public async Task <Possible <Stream, Failure> > GetStreamAsync(CasHash hash, UrgencyHint urgencyHint, Guid activityId)
        {
            var result = await ReadOnlyCacheSession.OpenStreamAsync(new Context(Logger), hash.ToMemoization(), CancellationToken.None);

            switch (result.Code)
            {
            case OpenStreamResult.ResultCode.Success:
                if (result.Stream != null)
                {
                    return(result.Stream);
                }

                return(new NoCasEntryFailure(CacheId, hash));

            case OpenStreamResult.ResultCode.Error:
                return(new CacheFailure(result.ErrorMessage));

            case OpenStreamResult.ResultCode.ContentNotFound:
                return(new NoCasEntryFailure(CacheId, hash));

            default:
                return(new CacheFailure("Unrecognized OpenStreamAsync result code: " + result.Code + ", error message: " + (result.ErrorMessage ?? string.Empty)));
            }
        }
 /// <inheritdoc />
 public Task <OpenStreamResult> OpenStreamAsync(Context context, ContentHash contentHash, CancellationToken cts, UrgencyHint urgencyHint)
 {
     return(_innerCacheSession.OpenStreamAsync(context, contentHash, cts, urgencyHint));
 }