예제 #1
0
        public static ExpirationHint ReadExpHint(CompactReader reader)
        {
            ExpirationHintType expHint = ExpirationHintType.Parent;

            expHint = (ExpirationHintType)reader.ReadInt16();
            ExpirationHint tmpObj = null;

            switch (expHint)
            {
            case ExpirationHintType.NULL:
                return(null);

            case ExpirationHintType.Parent:
                tmpObj = (ExpirationHint)reader.ReadObject();
                return((ExpirationHint)tmpObj);

            case ExpirationHintType.FixedExpiration:
                FixedExpiration fe = new FixedExpiration();
                ((ICompactSerializable)fe).Deserialize(reader);
                return((ExpirationHint)fe);

            case ExpirationHintType.IdleExpiration:
                IdleExpiration ie = new IdleExpiration();
                ((ICompactSerializable)ie).Deserialize(reader);
                return((ExpirationHint)ie);

            default:
                break;
            }
            return(null);
        }
예제 #2
0
 protected static void Construct(FixedExpiration expiration, DateTime absoluteTime)
 {
     if (expiration != null)
     {
         expiration._absoluteTime = AppUtil.DiffSeconds(absoluteTime);
         expiration._milliseconds = AppUtil.DiffMilliseconds(absoluteTime);
     }
 }
예제 #3
0
        public static FixedIdleExpiration Create(PoolManager poolManager, TimeSpan idleTime, DateTime absoluteTime)
        {
            var expiration = Create(poolManager);

            Construct(expiration, FixedExpiration.Create(poolManager, absoluteTime), IdleExpiration.Create(poolManager, idleTime));

            return(expiration);
        }
예제 #4
0
        public static ExpirationHint ReadExpHint(CompactReader reader, PoolManager poolManager)
        {
            ExpirationHintType expHint = ExpirationHintType.Parent;

            expHint = (ExpirationHintType)reader.ReadInt16();

            switch (expHint)
            {
            case ExpirationHintType.NULL:
                return(null);

            case ExpirationHintType.Parent:
                return((ExpirationHint)reader.ReadObject());

            case ExpirationHintType.FixedExpiration:
                var fe = FixedExpiration.Create(poolManager);
                fe.Deserialize(reader);
                return(fe);

            case ExpirationHintType.TTLExpiration:
                var ttle = TTLExpiration.Create(poolManager);
                ((ICompactSerializable)ttle).Deserialize(reader);
                return(ttle);

            case ExpirationHintType.FixedIdleExpiration:
                var fie = FixedIdleExpiration.Create(poolManager);
                ((ICompactSerializable)fie).Deserialize(reader);
                return(fie);

#if !(DEVELOPMENT || CLIENT)
            case ExpirationHintType.NodeExpiration:
                var ne = NodeExpiration.Create(poolManager);
                ((ICompactSerializable)ne).Deserialize(reader);
                return(ne);
#endif
            case ExpirationHintType.IdleExpiration:
                var ie = IdleExpiration.Create(poolManager);
                ((ICompactSerializable)ie).Deserialize(reader);
                return(ie);

            case ExpirationHintType.AggregateExpirationHint:
                var aeh = AggregateExpirationHint.Create(poolManager);
                ((ICompactSerializable)aeh).Deserialize(reader);
                return(aeh);

            case ExpirationHintType.DependencyHint:
                break;

            default:
                break;
            }
            return(null);
        }
예제 #5
0
        public static ExpirationHint GetExpirationHint(DateTime absoluteExpiration, TimeSpan slidingExpiration)
        {
            ExpirationHint hint = null;

            if (DateTime.MaxValue.ToUniversalTime().Equals(absoluteExpiration) && TimeSpan.Zero.Equals(slidingExpiration))
                return null;

            if (DateTime.MaxValue.ToUniversalTime().Equals(absoluteExpiration))
                hint = new IdleExpiration(slidingExpiration);
            else
            {
                absoluteExpiration = absoluteExpiration.ToUniversalTime();
                hint = new FixedExpiration(absoluteExpiration);
            }

            return hint;
        }
예제 #6
0
        public static ExpirationHint GetExpirationHint(DateTime absoluteExpiration, TimeSpan slidingExpiration)
        {
            ExpirationHint hint = null;

            if (DateTime.MaxValue.ToUniversalTime().Equals(absoluteExpiration) && TimeSpan.Zero.Equals(slidingExpiration))
            {
                return(null);
            }

            if (DateTime.MaxValue.ToUniversalTime().Equals(absoluteExpiration))
            {
                hint = new IdleExpiration(slidingExpiration);
            }
            else
            {
                absoluteExpiration = absoluteExpiration.ToUniversalTime();
                hint = new FixedExpiration(absoluteExpiration);
            }

            return(hint);
        }
예제 #7
0
        private static ExpirationHint GetExpirationHint(PoolManager poolManager, DateTime absoluteExpiration, TimeSpan slidingExpiration)
        {
            ExpirationHint hint = null;

            if (ExpirationConstants.AbsoluteNoneExpiration.ToUniversalTime().Equals(absoluteExpiration) && ExpirationConstants.SlidingNoneExpiration.Equals(slidingExpiration))
            {
                return(null);
            }

            if (!ExpirationConstants.AbsoluteNoneExpiration.ToUniversalTime().Equals(absoluteExpiration.ToUniversalTime()))
            {
                absoluteExpiration = absoluteExpiration.ToUniversalTime();
                hint = FixedExpiration.Create(poolManager, absoluteExpiration);
            }
            else if (!ExpirationConstants.SlidingNoneExpiration.Equals(slidingExpiration))

            {
                hint = IdleExpiration.Create(poolManager, slidingExpiration);
            }

            return(hint);
        }
예제 #8
0
        public static ExpirationHint GetExpirationHintObj(long absoluteExpiration, long slidingExpiration, string serializationContext)
        {
            ExpirationHint hint = null;
            //We expect Web.Cache to send in UTC DateTime, AbsoluteExpiration is dealt in UTC
            if (absoluteExpiration != 0 && absoluteExpiration != DateTime.MaxValue.ToUniversalTime().Ticks) hint = new FixedExpiration(new DateTime(absoluteExpiration, DateTimeKind.Utc));
            if (slidingExpiration != 0) hint = new IdleExpiration(new TimeSpan(slidingExpiration));


            return hint;
        }
예제 #9
0
        private static ExpirationHint GetExpirationHint(ExpirationPolicy policy, DateTime absoluteExpiration, TimeSpan slidingExpiration)
        {
            ExpirationHint hint = null;

            if (policy.SlidingExpiration.LongerEnabled || policy.SlidingExpiration.DefaultEnabled || policy.AbsoluteExpiration.LongerEnabled || policy.AbsoluteExpiration.DefaultEnabled)
            {
                if ((absoluteExpiration == AbsoluteDefaultExpiration.ToUniversalTime() || absoluteExpiration == AbsoluteLongerExpiration.ToUniversalTime() || (slidingExpiration == SlidingDefaultExpiration || slidingExpiration == SlidingLongerExpiration)))
                {
                    #region In case user provides sliding expiration as an enum

                    if (absoluteExpiration == DateTime.MaxValue)
                    {
                        if (slidingExpiration == SlidingLongerExpiration && policy.SlidingExpiration.LongerEnabled)
                        {
                            hint = new IdleExpiration(new TimeSpan(policy.SlidingExpiration.Longer * TICKS));
                        }
                        else if (slidingExpiration == SlidingDefaultExpiration && policy.SlidingExpiration.DefaultEnabled)
                        {
                            hint = new IdleExpiration(new TimeSpan(policy.SlidingExpiration.Default * TICKS));
                        }
                    }
                    #endregion

                    #region In case user provides absolute expiration as an enum

                    if (slidingExpiration == TimeSpan.Zero)
                    {
                        if (absoluteExpiration == AbsoluteLongerExpiration.ToUniversalTime() && policy.AbsoluteExpiration.LongerEnabled)// check if Longer is enabled in config
                        {
                            hint = new FixedExpiration(DateTime.Now.AddSeconds(policy.AbsoluteExpiration.Longer).ToUniversalTime());
                        }
                        else if (absoluteExpiration == AbsoluteDefaultExpiration.ToUniversalTime() && policy.AbsoluteExpiration.DefaultEnabled)
                        {
                            hint = new FixedExpiration(DateTime.Now.AddSeconds(policy.AbsoluteExpiration.Default).ToUniversalTime());
                        }
                    }
                    #endregion

                    // If no expirations were enabled we have to assign the default expiration
                }
                else
                {
                    if (hint == null)
                    {
                        hint = new FixedExpiration(DateTime.Now.AddSeconds(policy.AbsoluteExpiration.Default).ToUniversalTime());
                    }
                }
            }

            if (DateTime.MaxValue.ToUniversalTime().Equals(absoluteExpiration) && TimeSpan.Zero.Equals(slidingExpiration))
            {
                return(null);
            }

            if (DateTime.MaxValue.ToUniversalTime().Equals(absoluteExpiration))
            {
                hint = new IdleExpiration(slidingExpiration);
            }
            else
            {
                absoluteExpiration = absoluteExpiration.ToUniversalTime();
                hint = new FixedExpiration(absoluteExpiration);
            }

            return(hint);
        }
예제 #10
0
        public static ExpirationHint ReadExpHint(CompactReader reader)
        {
            ExpirationHintType expHint = ExpirationHintType.Parent;

            expHint = (ExpirationHintType)reader.ReadInt16();
            ExpirationHint tmpObj = null;

            switch (expHint)
            {
            case ExpirationHintType.NULL:
                return(null);

            case ExpirationHintType.Parent:
                tmpObj = (ExpirationHint)reader.ReadObject();
                return((ExpirationHint)tmpObj);

            case ExpirationHintType.FixedExpiration:
                FixedExpiration fe = new FixedExpiration();
                ((ICompactSerializable)fe).Deserialize(reader);
                return((ExpirationHint)fe);

            case ExpirationHintType.TTLExpiration:
                TTLExpiration ttle = new TTLExpiration();
                ((ICompactSerializable)ttle).Deserialize(reader);
                return((ExpirationHint)ttle);

            case ExpirationHintType.TTLIdleExpiration:
                TTLIdleExpiration ttlie = new TTLIdleExpiration();
                ((ICompactSerializable)ttlie).Deserialize(reader);
                return((ExpirationHint)ttlie);

            case ExpirationHintType.FixedIdleExpiration:
                FixedIdleExpiration fie = new FixedIdleExpiration();
                ((ICompactSerializable)fie).Deserialize(reader);
                return((ExpirationHint)fie);

            case ExpirationHintType.FileDependency:
                FileDependency fd = new FileDependency();
                ((ICompactSerializable)fd).Deserialize(reader);
                return((ExpirationHint)fd);

            case ExpirationHintType.KeyDependency:
                KeyDependency kd = new KeyDependency();
                ((ICompactSerializable)kd).Deserialize(reader);
                return((ExpirationHint)kd);

#if !(DEVELOPMENT || CLIENT)
            case ExpirationHintType.NodeExpiration:
                NodeExpiration ne = new NodeExpiration();
                ((ICompactSerializable)ne).Deserialize(reader);
                return((ExpirationHint)ne);
#endif
            case ExpirationHintType.Sql7CacheDependency:
                Sql7CacheDependency s7cd = new Sql7CacheDependency();
                ((ICompactSerializable)s7cd).Deserialize(reader);
                return((ExpirationHint)s7cd);

            case ExpirationHintType.OleDbCacheDependency:
                OleDbCacheDependency oledbDependency = new OleDbCacheDependency();
                ((ICompactSerializable)oledbDependency).Deserialize(reader);
                return((ExpirationHint)oledbDependency);

            case ExpirationHintType.SqlYukonCacheDependency:
                SqlYukonCacheDependency sycd = new SqlYukonCacheDependency();
                ((ICompactSerializable)sycd).Deserialize(reader);
                return((ExpirationHint)sycd);

            case ExpirationHintType.OracleCacheDependency:
                OracleCacheDependency orclcd = new OracleCacheDependency();
                ((ICompactSerializable)orclcd).Deserialize(reader);
                return((ExpirationHint)orclcd);


            case ExpirationHintType.IdleExpiration:
                IdleExpiration ie = new IdleExpiration();
                ((ICompactSerializable)ie).Deserialize(reader);
                return((ExpirationHint)ie);

            case ExpirationHintType.AggregateExpirationHint:
                AggregateExpirationHint aeh = new AggregateExpirationHint();
                ((ICompactSerializable)aeh).Deserialize(reader);
                return((ExpirationHint)aeh);

            case ExpirationHintType.DBCacheDependency:
                DBCacheDependency dbcd = new DBCacheDependency();
                ((ICompactSerializable)dbcd).Deserialize(reader);
                return((ExpirationHint)dbcd);

            case ExpirationHintType.ExtensibleDependency:
                ExtensibleDependency ed = new ExtensibleDependency();
                ed = (ExtensibleDependency)reader.ReadObject();
                return((ExpirationHint)ed);

            case ExpirationHintType.NosDBCacheDependency:
                NosDBCacheDependency nosDbd = new NosDBCacheDependency();
                ((ICompactSerializable)nosDbd).Deserialize(reader);
                return(nosDbd);

            case ExpirationHintType.DependencyHint:
                break;

            default:
                break;
            }
            return(null);
        }
예제 #11
0
 public static ExpirationHint ReadExpHint(CompactReader reader)
 {
     ExpirationHintType expHint = ExpirationHintType.Parent;
     expHint = (ExpirationHintType)reader.ReadInt16();
     ExpirationHint tmpObj = null;
     switch (expHint)
     {
         case ExpirationHintType.NULL:
             return null;
         
         case ExpirationHintType.Parent:
             tmpObj = (ExpirationHint)reader.ReadObject();
             return (ExpirationHint)tmpObj;                    
         
         case ExpirationHintType.FixedExpiration:
             FixedExpiration fe = new FixedExpiration();
             ((ICompactSerializable)fe).Deserialize(reader);
             return (ExpirationHint)fe;                    
         
         case ExpirationHintType.IdleExpiration:
             IdleExpiration ie = new IdleExpiration();
             ((ICompactSerializable)ie).Deserialize(reader);
             return (ExpirationHint)ie;
         
         default:
             break;            
     }
     return null;
 }