// Token: 0x0600157E RID: 5502 RVA: 0x0007A440 File Offset: 0x00078640 private void RegisterMailboxProcessorsForCurrentWorkcycle() { this.mailboxProcessorConstructors = null; this.mailboxProcessorConstructors = (MailboxProcessorAssistant.MailboxProcessorConstructor)Delegate.Combine(this.mailboxProcessorConstructors, new MailboxProcessorAssistant.MailboxProcessorConstructor(() => new MailboxLockedDetector())); MailboxProcessorAssistantType.TraceInformation((long)this.GetHashCode(), "{0} mailbox processors were registered for current workcycle.", new object[] { this.mailboxProcessorConstructors.GetInvocationList().Count <Delegate>() }); this.RefreshRegisteredMailboxProcessors(); }
// Token: 0x0600157F RID: 5503 RVA: 0x0007A4C0 File Offset: 0x000786C0 private void RefreshRegisteredMailboxProcessors() { this.mailboxProcessors.Clear(); this.mailboxProcessorStartWorkcycleActions = null; this.mailboxProcessorStopWorkcycleActions = null; foreach (MailboxProcessorAssistant.MailboxProcessorConstructor mailboxProcessorConstructor in this.mailboxProcessorConstructors.GetInvocationList()) { IMailboxProcessor mailboxProcessor = mailboxProcessorConstructor(); this.EnableMailboxProcessor(mailboxProcessor); this.mailboxProcessors.Add(mailboxProcessor); } MailboxProcessorAssistantType.TraceInformation((long)this.GetHashCode(), "{0} of actual mailbox processors were instantiated for the current workcycle.", new object[] { this.mailboxProcessors.Count }); }
// Token: 0x06001581 RID: 5505 RVA: 0x0007A608 File Offset: 0x00078808 private void DisableMailboxProcessor(IMailboxProcessor processor) { if (!processor.IsEnabled) { MailboxProcessorAssistantType.TraceInformation((long)this.GetHashCode(), "Mailbox processor of type {0} already disabled for current workcycle.", new object[] { processor.GetType().ToString() }); return; } processor.IsEnabled = false; this.mailboxProcessorStartWorkcycleActions = (MailboxProcessorAssistant.MailboxProcessorOnStartStopAction)Delegate.Remove(this.mailboxProcessorStartWorkcycleActions, new MailboxProcessorAssistant.MailboxProcessorOnStartStopAction(processor.OnStartWorkcycle)); this.mailboxProcessorStopWorkcycleActions = (MailboxProcessorAssistant.MailboxProcessorOnStartStopAction)Delegate.Remove(this.mailboxProcessorStopWorkcycleActions, new MailboxProcessorAssistant.MailboxProcessorOnStartStopAction(processor.OnStopWorkcycle)); MailboxProcessorAssistantType.TraceInformation((long)this.GetHashCode(), "Mailbox processor of type {0} was disabled for current workcycle.", new object[] { processor.GetType().ToString() }); }
// Token: 0x0600157A RID: 5498 RVA: 0x0007A170 File Offset: 0x00078370 public override List <MailboxData> GetMailboxesToProcess() { if (!AssistantsService.AssistantsLastScanTimes.ContainsKey(WorkloadType.MailboxProcessorAssistant)) { AssistantsService.AssistantsLastScanTimes[WorkloadType.MailboxProcessorAssistant] = new Dictionary <string, DateTime>(); } AssistantsService.AssistantsLastScanTimes[WorkloadType.MailboxProcessorAssistant][base.DatabaseInfo.DatabaseName] = DateTime.UtcNow; MailboxProcessorAssistantType.TraceInformation((long)this.GetHashCode(), "MailboxProcessorAssistant is starting to process mailboxes on {0}", new object[] { base.DatabaseInfo.DisplayName }); this.RegisterMailboxProcessorsForCurrentWorkcycle(); this.mailboxProcessorStartWorkcycleActions(); HashSet <PropTag> hashSet = new HashSet <PropTag>(); foreach (IMailboxProcessor mailboxProcessor in from processor in this.mailboxProcessors where processor.IsEnabled select processor) { hashSet.AddRange(mailboxProcessor.RequiredMailboxTableProperties); } return(MailboxTableQueryUtils.GetMailboxTable(hashSet.ToArray <PropTag>(), base.DatabaseInfo)); }