public EventDataHandler(IEventDataCache <T, V> cache, IEventDataFactory <T, V> factory, long initialWaitTimeMillis
                         , long maxWaitTimeMillis)
 {
     this.cache    = cache;
     this.factory  = factory;
     this.waitTime = new WaitTime(initialWaitTimeMillis, maxWaitTimeMillis);
 }
        public virtual void IncreaseWaitTime()
        {
            WaitTime local = waitTime;

            waitTime = new WaitTime(local.GetInitial(), local.GetMaximum(), Math.Min(local.GetTime() * 2, local.GetMaximum
                                                                                         ()));
        }
        public virtual void SetNoWaitTime()
        {
            WaitTime local = waitTime;

            waitTime = new WaitTime(local.GetInitial(), local.GetMaximum(), 0);
        }
        public virtual void ResetWaitTime()
        {
            WaitTime local = waitTime;

            waitTime = new WaitTime(local.GetInitial(), local.GetMaximum());
        }