예제 #1
0
        private static bool IsSimpleCaching(CacheExpires expires, ICacheSignal signal)
        {
            // signal provided - complex caching
            if (signal != null)
            {
                return(false);
            }

            // no signal, no expires - simple caching
            if (expires == null)
            {
                return(true);
            }

            // expires absolute has meaningful value - complex caching
            if (expires.Absolute != CacheExpires.NoAbsoluteExpiration &&
                expires.Absolute != DateTime.MaxValue)
            {
                return(false);
            }

            // expires sliding has meaningful value - complex caching
            if (expires.Sliding != CacheExpires.NoSlidingExpiration &&
                expires.Sliding != TimeSpan.MaxValue &&
                expires.Sliding != TimeSpan.Zero)
            {
                return(false);
            }

            // no signal, no meaningful expires value - simple caching
            return(true);
        }
 public CachingWorkflowRegistry(IWorkflowRegistry workflowRegistry, IMemoryCache memoryCache, ICacheSignal cacheSignal, IWorkflowInstanceStore workflowInstanceStore)
 {
     _workflowRegistry      = workflowRegistry;
     _memoryCache           = memoryCache;
     _cacheSignal           = cacheSignal;
     _workflowInstanceStore = workflowInstanceStore;
 }
예제 #3
0
 public ActivityTypeService(IEnumerable <IActivityTypeProvider> providers, IMemoryCache memoryCache, IMediator mediator, ICacheSignal cacheSignal)
 {
     _providers   = providers;
     _memoryCache = memoryCache;
     _mediator    = mediator;
     _cacheSignal = cacheSignal;
 }
예제 #4
0
        private static bool IsSimpleCaching(CacheExpires expires, ICacheSignal signal)
        {
            // signal provided - complex caching
            if (signal != null)
                return false;

            // no signal, no expires - simple caching
            if (expires == null)
                return true;

            // expires absolute has meaningful value - complex caching
            if (expires.Absolute != CacheExpires.NoAbsoluteExpiration &&
                expires.Absolute != DateTime.MaxValue)
            {
                return false;
            }

            // expires sliding has meaningful value - complex caching
            if (expires.Sliding != CacheExpires.NoSlidingExpiration &&
                expires.Sliding != TimeSpan.MaxValue &&
                expires.Sliding != TimeSpan.Zero)
            {
                return false;
            }

            // no signal, no meaningful expires value - simple caching
            return true;
        }
 public static CacheDependency For(ICacheSignal signal)
 {
     if (signal != null)
     {
         return(new DefaultCacheService.SignalDependency(signal));
     }
     return(null);
 }
예제 #6
0
        public void Store(string identifier, CacheExpires expires, ICacheSignal signal, object item)
        {
            _cache[identifier] = new Entry {Value = item, UtcExpires = ToAbsolute(expires)};

            if (signal != null)
            {
                signal.Changed += (sender, e) => _cache.Remove(identifier);
            }
        }
예제 #7
0
 public SparkViewBase.CacheScopeImpl End(ICacheSignal signal)
 {
     if (this._recording)
     {
         CacheMemento item = this._originator.EndMemento();
         this._cacheService.Store(this._identifier, this._expires, signal, item);
     }
     return(this._previousCacheScope);
 }
예제 #8
0
 public void Store(string identifier, CacheExpires expires, ICacheSignal signal, object item)
 {
     _cache.Insert(
         identifier,
         item,
         SignalDependency.For(signal),
         (expires ?? CacheExpires.Empty).Absolute,
         (expires ?? CacheExpires.Empty).Sliding);
 }
예제 #9
0
 public CacheScopeImpl End(ICacheSignal signal)
 {
     if (_recording)
     {
         var memento = _originator.EndMemento();
         _cacheService.Store(_identifier, _expires, signal, memento);
     }
     return(_previousCacheScope);
 }
예제 #10
0
 public void Store(string identifier, CacheExpires expires, ICacheSignal signal, object item)
 {
     _cache.Insert(
         identifier,
         item,
         SignalDependency.For(signal),
         (expires ?? CacheExpires.Empty).Absolute,
         (expires ?? CacheExpires.Empty).Sliding);
 }
예제 #11
0
        public void Store(string identifier, CacheExpires expires, ICacheSignal signal, object item)
        {
            _cache[identifier] = new Entry {
                Value = item, UtcExpires = ToAbsolute(expires)
            };

            if (signal != null)
            {
                signal.Changed += (sender, e) => _cache.Remove(identifier);
            }
        }
예제 #12
0
 public void Store(string identifier, CacheExpires expires, ICacheSignal signal, object item)
 {
     if (IsSimpleCaching(expires, signal))
     {
         // use MR cache service for simple identifier-only caching
         _monorailCacheProvider.Store(identifier, item);
     }
     else
     {
         // use the httpcontext cache when storing with expires or signal args in effect
         _fallbackCacheService.Store(identifier, expires, signal, item);
     }
 }
예제 #13
0
 public void Store(string identifier, CacheExpires expires, ICacheSignal signal, object item)
 {
     if (IsSimpleCaching(expires, signal))
     {
         // use MR cache service for simple identifier-only caching
         _monorailCacheProvider.Store(identifier, item);
     }
     else
     {
         // use the httpcontext cache when storing with expires or signal args in effect
         _fallbackCacheService.Store(identifier, expires, signal, item);
     }
 }
예제 #14
0
 public void Store(string identifier, CacheExpires expires, ICacheSignal signal, object item)
 {
 }
예제 #15
0
 protected void EndCachedContent(ICacheSignal signal)
 {
     _currentCacheScope = _currentCacheScope.End(signal);
 }
예제 #16
0
 public CacheScopeImpl End(ICacheSignal signal)
 {
     if (_recording)
     {
         var memento = _originator.EndMemento();
         _cacheService.Store(_identifier, _expires, signal, memento);
     }
     return _previousCacheScope;
 }
예제 #17
0
 public RebusCacheSignal(ICacheSignal cacheSignal, IEventPublisher eventPublisher)
 {
     _cacheSignal    = cacheSignal;
     _eventPublisher = eventPublisher;
 }
예제 #18
0
 public TransientWorkflowStorageProvider(IMemoryCache cache, ICacheSignal cacheSignal)
 {
     _cache       = cache;
     _cacheSignal = cacheSignal;
 }
예제 #19
0
 public EvictWorkflowRegistryCacheHandler(ICacheSignal cacheSignal)
 {
     _cacheSignal = cacheSignal;
 }
예제 #20
0
 public SubscribeToRedisCacheSignals(RedisBus redisBus, ICacheSignal cacheSignal)
 {
     _redisBus    = redisBus;
     _cacheSignal = cacheSignal;
 }
예제 #21
0
 public RedisCacheSignal(ICacheSignal cacheSignal, RedisBus redisBus)
 {
     _cacheSignal = cacheSignal;
     _redisBus    = redisBus;
 }
예제 #22
0
 public TriggerCacheSignalConsumer(ICacheSignal cacheSignal) => _cacheSignal = cacheSignal;
예제 #23
0
 SignalDependency(ICacheSignal signal)
 {
     _signal = signal;
     _signal.Changed += SignalChanged;
 }
예제 #24
0
 public static CacheDependency For(ICacheSignal signal)
 {
     return signal == null ? null : new SignalDependency(signal);
 }
 private SignalDependency(ICacheSignal signal)
 {
     this._signal          = signal;
     this._signal.Changed += new EventHandler(this.SignalChanged);
 }
예제 #26
0
 public static CacheDependency For(ICacheSignal signal)
 {
     return(signal == null ? null : new SignalDependency(signal));
 }
예제 #27
0
 protected void EndCachedContent(ICacheSignal signal)
 {
     _currentCacheScope = _currentCacheScope.End(signal);
 }
예제 #28
0
 SignalDependency(ICacheSignal signal)
 {
     _signal          = signal;
     _signal.Changed += SignalChanged;
 }
예제 #29
0
 public CachingWorkflowRegistry(IWorkflowRegistry workflowRegistry, IMemoryCache memoryCache, ICacheSignal cacheSignal)
 {
     _workflowRegistry = workflowRegistry;
     _memoryCache      = memoryCache;
     _cacheSignal      = cacheSignal;
 }
예제 #30
0
 public void Store(string identifier, CacheExpires expires, ICacheSignal signal, object item)
 {
 }
예제 #31
0
 public EvictWorkflowRegistryCacheHandler(ITriggerIndexer triggerIndexer, ICacheSignal cacheSignal)
 {
     _triggerIndexer = triggerIndexer;
     _cacheSignal = cacheSignal;
 }