public async Task StoreResponseAsync(HttpResponseMessage response)
        {
            var primaryCacheKey = new PrimaryCacheKey(
                response.RequestMessage.RequestUri,
                response.RequestMessage.Method);

            var cacheEntry = await _contentStore.GetEntryAsync(primaryCacheKey)
                             ?? new CacheEntry(primaryCacheKey, response.Headers.Vary);

            var content = cacheEntry.CreateContent(response);
            await _contentStore.UpdateEntryAsync(content);
        }
        public Task<CacheEntry> GetEntryAsync(PrimaryCacheKey cacheKey)
        {
            // NB: Task.FromResult doesn't exist in MS.BCL.Async
            var ret = new TaskCompletionSource<CacheEntry>();

            if (_responseCache.ContainsKey(cacheKey))
            {
                ret.SetResult(_responseCache[cacheKey].CacheEntry);
            }
            else
            {
                ret.SetResult(null);
            }

            return ret.Task;
        }
Exemple #3
0
        public Task <CacheEntry> GetEntryAsync(PrimaryCacheKey cacheKey)
        {
            // NB: Task.FromResult doesn't exist in MS.BCL.Async
            var ret = new TaskCompletionSource <CacheEntry>();

            if (_responseCache.ContainsKey(cacheKey))
            {
                ret.SetResult(_responseCache[cacheKey].CacheEntry);
            }
            else
            {
                ret.SetResult(null);
            }

            return(ret.Task);
        }
 internal CacheEntry(PrimaryCacheKey key, HttpHeaderValueCollection <string> varyHeaders)
 {
     Key         = key;
     VaryHeaders = varyHeaders;
 }
        public async Task StoreResponseAsync(HttpResponseMessage response)
        {
            var primaryCacheKey = new PrimaryCacheKey(
                response.RequestMessage.RequestUri,
                response.RequestMessage.Method);

            var cacheEntry = await _contentStore.GetEntryAsync(primaryCacheKey)
                ?? new CacheEntry(primaryCacheKey, response.Headers.Vary);

            var content = cacheEntry.CreateContent(response);
            await _contentStore.UpdateEntryAsync(content);
        }
 internal CacheEntry(PrimaryCacheKey key, HttpHeaderValueCollection<string> varyHeaders)
 {
     Key = key;
     VaryHeaders = varyHeaders;
 }