Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
 }
Exemplo n.º 4
0
 private MailboxDispatcher(Guid mailboxGuid, EventControllerPrivate controller, int numberOfAssistants)
 {
     this.MailboxGuid          = mailboxGuid;
     this.controller           = controller;
     this.assistantDispatchers = new Dictionary <Guid, EventDispatcherPrivate>(numberOfAssistants);
 }
Exemplo n.º 5
0
        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));
        }