示例#1
0
 // Token: 0x0600003F RID: 63 RVA: 0x00004116 File Offset: 0x00002316
 internal LatencyRecord(LatencyTracker latencyTracker, LatencyComponent latencyComponent)
 {
     this.latencyTracker   = latencyTracker;
     this.latencyComponent = latencyComponent;
 }
示例#2
0
 // Token: 0x0600002B RID: 43 RVA: 0x000037F4 File Offset: 0x000019F4
 private static void BeginTrackLatency(MapiEvent mapiEvent, LatencyTracker latencyTracker, LatencyComponent latencyComponent)
 {
     MailboxTransportSubmissionAssistant.LatencyRecord value = new MailboxTransportSubmissionAssistant.LatencyRecord(latencyTracker, latencyComponent);
     MailboxTransportSubmissionAssistant.eventCounterToLatencyMap[mapiEvent.EventCounter] = value;
     LatencyTracker.BeginTrackLatency(latencyComponent, latencyTracker);
 }
 public override void AckMailItem(AckStatus ackStatus, SmtpResponse smtpResponse, AckDetails details, TimeSpan?retryInterval, MessageTrackingSource source, string messageTrackingSourceContext, LatencyComponent deliveryComponent, string remoteMta, bool shadowed, string primaryServer, bool reportEndToEndLatencies)
 {
     if (this.recipientsPending != 0 && ackStatus == AckStatus.Success)
     {
         throw new InvalidOperationException("Cannot ack message successfully until all pending recipients have been acked");
     }
     if (ackStatus == AckStatus.Pending)
     {
         this.recipientsPending      = this.readyRecipients.Count;
         this.recipientEnumerator    = this.mailItem.Recipients.GetEnumerator();
         this.recipientEnumeratorAck = this.mailItem.Recipients.GetEnumerator();
         this.result = null;
     }
     else
     {
         if (this.result == null)
         {
             this.result = new SmtpMailItemResult();
         }
         this.result.MessageResponse    = new AckStatusAndResponse(ackStatus, smtpResponse);
         this.mailItemSentForProcessing = true;
     }
     if (this.notificationHandler != null)
     {
         this.notificationHandler.AckMessage(ackStatus, smtpResponse);
     }
 }
示例#4
0
 public void TrackSuccessfulConnectLatency(LatencyComponent connectComponent)
 {
     LatencyTracker.EndAndBeginTrackLatency(connectComponent, LatencyComponent.Delivery, this.mailItem.LatencyTracker);
 }
示例#5
0
 public void FinalizeDeliveryLatencyTracking(LatencyComponent deliveryComponent)
 {
     LatencyTracker.EndTrackLatency(LatencyComponent.Delivery, deliveryComponent, this.mailItem.LatencyTracker);
 }
 public void TrackSuccessfulConnectLatency(LatencyComponent connectComponent)
 {
     LatencyTracker.EndTrackLatency(LatencyComponent.MailboxTransportSubmissionStoreDriverSubmissionSmtp, connectComponent, this.LatencyTracker);
     LatencyTracker.BeginTrackLatency(LatencyComponent.MailboxTransportSubmissionStoreDriverSubmissionSmtp, this.LatencyTracker);
 }