Beispiel #1
0
 // 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();
 }
Beispiel #2
0
 // 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
     });
 }
Beispiel #3
0
 // 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()
     });
 }
Beispiel #4
0
        // 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));
        }