public CGateStateController(IHavingCGateState target)
        {
            if( target == null )
                throw new ArgumentNullException("target");

            Target = target;
            _previousState = target.State;

            ReopenTimeout = TimeSpan.FromSeconds(30);
            TooFastReopenThreshold = TimeSpan.FromSeconds(3);
        }
 public StateChangedEventArgs(IHavingCGateState target)
 {
     Target = target;
 }