Exemple #1
0
            public bool ShouldAbort(int bytesTransferred, out ChaosAbortReason reason)
            {
                reason = 0;

                if (abortFromTime && time <= Timestamp.Create())
                {
                    reason = ChaosAbortReason.TimeExpired;
                    return(true);
                }

                if (abortFromBytes)
                {
                    long transferred = Interlocked.Add(ref this.transferred, bytesTransferred);
                    if (transferred > bytes)
                    {
                        reason = ChaosAbortReason.MaximumTransferred;
                        return(true);
                    }
                }

                return(false);
            }
Exemple #2
0
 /// <summary>
 /// Initializes a new <see cref="ChaosAbortedEventArgs"/>.
 /// </summary>
 /// <param name="reason">The reason a connection is aborted.</param>
 /// <param name="upstreamTransferred">The number of bytes transferred upstream
 /// when the connection was aborted.</param>
 /// <param name="downstreamTransferred">The number of bytes transferred downstream
 /// when the connection was aborted.</param>
 public ChaosAbortedEventArgs(ChaosAbortReason reason, long upstreamTransferred, long downstreamTransferred)
 {
     Reason = reason;
     UpstreamTransferred   = upstreamTransferred;
     DownstreamTransferred = downstreamTransferred;
 }
Exemple #3
0
 internal void RaiseAborted(ChaosAbortReason reason, long upstreamTransferred, long downstreamTransferred)
 {
     OnAborted(new ChaosAbortedEventArgs(reason, upstreamTransferred, downstreamTransferred));
 }