private List <QueryableObject> QueryEventDispatcher(object[] parameters, QueryFilter filter) { List <QueryableObject> list = new List <QueryableObject>(50); IList <OnlineDatabase> onlineDatabases = OnlineDiagnostics.Instance.databaseManager.GetOnlineDatabases((Guid?)parameters[0]); if (onlineDatabases == null || onlineDatabases.Count != 1) { throw new ArgumentException("Could not find the database specified by DatabaseGuid", "DatabaseGuid"); } EventControllerPrivate eventControllerPrivate = (EventControllerPrivate)onlineDatabases[0].EventController; IList <MailboxDispatcher> mailboxDispatcher = eventControllerPrivate.GetMailboxDispatcher((Guid?)parameters[1]); if (mailboxDispatcher == null) { return(list); } MailboxDispatcher mailboxDispatcher2 = mailboxDispatcher[0]; foreach (EventDispatcherPrivate eventDispatcherPrivate in mailboxDispatcher2.GetEventDispatcher((Guid?)parameters[2])) { QueryableEventDispatcher queryableEventDispatcher = new QueryableEventDispatcher(); eventDispatcherPrivate.ExportToQueryableObject(queryableEventDispatcher); if (filter == null || OpathFilterEvaluator.FilterMatches(filter, queryableEventDispatcher)) { list.Add(queryableEventDispatcher); } } return(list); }
public static MailboxDispatcher CreateFromBookmark(EventControllerPrivate controller, EventAccess eventAccess, MapiEvent[] eventTable, Bookmark mailboxBookmark, Bookmark databaseBookmark) { MailboxDispatcher mailboxDispatcher = new MailboxDispatcher(mailboxBookmark.Identity, controller, controller.Assistants.Count); foreach (AssistantCollectionEntry assistantCollectionEntry in controller.Assistants) { EventDispatcherPrivate value = new EventDispatcherPrivate(mailboxDispatcher, assistantCollectionEntry, controller, mailboxBookmark[assistantCollectionEntry.Identity]); mailboxDispatcher.assistantDispatchers.Add(assistantCollectionEntry.Identity, value); assistantCollectionEntry.PerformanceCounters.EventDispatchers.Increment(); } foreach (EventDispatcherPrivate eventDispatcherPrivate in mailboxDispatcher.assistantDispatchers.Values) { eventDispatcherPrivate.Initialize(eventAccess, eventTable, databaseBookmark[eventDispatcherPrivate.AssistantIdentity]); } return(mailboxDispatcher); }
// Token: 0x06000255 RID: 597 RVA: 0x0000D178 File Offset: 0x0000B378 public EventDispatcherPrivate(MailboxDispatcher parentMailboxDispatcher, AssistantCollectionEntry assistant, EventControllerPrivate controller, long watermark) : base(assistant, new MailboxGovernor(controller.Governor, new Throttle("EventDispatcherPrivate", 1, controller.Throttle)), controller) { this.parentMailboxDispatcher = parentMailboxDispatcher; this.committedWatermark = watermark; this.highestEventQueued = watermark; }
private MailboxDispatcher(Guid mailboxGuid, EventControllerPrivate controller, int numberOfAssistants) { this.MailboxGuid = mailboxGuid; this.controller = controller; this.assistantDispatchers = new Dictionary <Guid, EventDispatcherPrivate>(numberOfAssistants); }
public static MailboxDispatcher CreateWithoutBookmark(EventControllerPrivate controller, EventAccess eventAccess, Guid mailboxGuid, Bookmark databaseBookmark, bool dispatcherIsUpToDate) { Bookmark mailboxBookmark = eventAccess.GetMailboxBookmark(mailboxGuid, databaseBookmark, dispatcherIsUpToDate); return(MailboxDispatcher.CreateFromBookmark(controller, eventAccess, null, mailboxBookmark, databaseBookmark)); }