internal void ResetAndRestartPhase()
 {
     _currentPhase = SqlConnectionTimeoutErrorPhase.PreLoginBegin;
     for (int i = 0; i < _phaseDurations.Length; i++)
     {
         _phaseDurations[i] = null;
     }
 }
 internal void SetAndBeginPhase(SqlConnectionTimeoutErrorPhase timeoutErrorPhase)
 {
     _currentPhase = timeoutErrorPhase;
     if (_phaseDurations[(int)timeoutErrorPhase] == null)
     {
         _phaseDurations[(int)timeoutErrorPhase] = new SqlConnectionTimeoutPhaseDuration();
     }
     _phaseDurations[(int)timeoutErrorPhase].StartCapture();
 }
 internal void SetAllCompleteMarker()
 {
     _currentPhase = SqlConnectionTimeoutErrorPhase.Complete;
 }
 internal void EndPhase(SqlConnectionTimeoutErrorPhase timeoutErrorPhase)
 {
     Debug.Assert(_phaseDurations[(int)timeoutErrorPhase] != null, "End phase capture cannot be invoked when the phase duration object is a null.");
     _phaseDurations[(int)timeoutErrorPhase].StopCapture();
 }
 internal void SetAndBeginPhase(SqlConnectionTimeoutErrorPhase timeoutErrorPhase)
 {
     _currentPhase = timeoutErrorPhase;
     if (_phaseDurations[(int)timeoutErrorPhase] == null)
     {
         _phaseDurations[(int)timeoutErrorPhase] = new SqlConnectionTimeoutPhaseDuration();
     }
     _phaseDurations[(int)timeoutErrorPhase].StartCapture();
 }
 internal void ResetAndRestartPhase()
 {
     _currentPhase = SqlConnectionTimeoutErrorPhase.PreLoginBegin;
     for (int i = 0; i < _phaseDurations.Length; i++)
         _phaseDurations[i] = null;
 }
 internal void SetAllCompleteMarker()
 {
     _currentPhase = SqlConnectionTimeoutErrorPhase.Complete;
 }
 internal void EndPhase(SqlConnectionTimeoutErrorPhase timeoutErrorPhase)
 {
     Debug.Assert(_phaseDurations[(int)timeoutErrorPhase] != null, "End phase capture cannot be invoked when the phase duration object is a null.");
     _phaseDurations[(int)timeoutErrorPhase].StopCapture();
 }