Beispiel #1
0
 public void InitializeCache()
 {
     if (this.Initialized)
     {
         return;
     }
     lock (this.cacheInitializeLock)
     {
         if (!this.Initialized)
         {
             this.caches = new Dictionary <ReputationEntityType, MemoryCache>();
             for (ReputationEntityType reputationEntityType = ReputationEntityType.IP; reputationEntityType < ReputationEntityType.Max; reputationEntityType += 1)
             {
                 this.caches.Add(reputationEntityType, new MemoryCache(string.Format("ReputationCache_{0}", reputationEntityType.ToString()), new NameValueCollection
                 {
                     {
                         "physicalMemoryLimitPercentage",
                         "1"
                     },
                     {
                         "pollingInterval",
                         "00:00:01"
                     }
                 }));
             }
             this.Initialized = true;
         }
     }
 }
Beispiel #2
0
        public bool TryAddValue(ReputationEntityType entityType, int dataPoint, string reputationEntityKey, long value, int ttl)
        {
            MemoryCache memoryCache = null;

            return(this.caches.TryGetValue(entityType, out memoryCache) && ttl >= 0 && memoryCache.Add(new CacheItem(this.GetCacheIndex(reputationEntityKey, dataPoint), value), new CacheItemPolicy
            {
                SlidingExpiration = TimeSpan.FromMilliseconds((double)ttl)
            }));
        }
Beispiel #3
0
        public bool TryGetValue(ReputationEntityType entityType, int dataPoint, string reputationEntityKey, out long value)
        {
            value = 0L;
            MemoryCache memoryCache = null;

            if (!this.caches.TryGetValue(entityType, out memoryCache))
            {
                return(false);
            }
            object obj = memoryCache.Get(this.GetCacheIndex(reputationEntityKey, dataPoint), null);

            if (obj == null)
            {
                return(false);
            }
            if (obj.GetType() != typeof(long))
            {
                return(false);
            }
            value = (long)obj;
            return(true);
        }