예제 #1
0
        internal static bool IsCachedEntityExpiresInTheFuture(HTTPRequest request)
        {
            if (!IsSupported)
            {
                return(false);
            }

            CheckSetup();

            HTTPCacheFileInfo info = null;

            rwLock.EnterReadLock();
            try
            {
                if (!library.TryGetValue(request.CurrentUri, out info))
                {
                    return(false);
                }
            }
            finally
            {
                rwLock.ExitReadLock();
            }

            return(info.WillExpireInTheFuture());
        }
예제 #2
0
        internal static bool IsCachedEntityExpiresInTheFuture(HTTPRequest request)
        {
            if (!IsSupported || request.DisableCache)
            {
                return(false);
            }

            CheckSetup();

            HTTPCacheFileInfo info = null;

            rwLock.EnterReadLock();
            try
            {
                if (!library.TryGetValue(request.CurrentUri, out info))
                {
                    return(false);
                }
            }
            finally
            {
                rwLock.ExitReadLock();
            }

            return(info.WillExpireInTheFuture(request.State == HTTPRequestStates.ConnectionTimedOut ||
                                              request.State == HTTPRequestStates.TimedOut ||
                                              request.State == HTTPRequestStates.Error ||
                                              (request.State == HTTPRequestStates.Finished && request.Response != null && request.Response.StatusCode >= 500)));
        }