public void HandleEvent(IEvent @event) { if (null == @event) { return; } if (null != @event.Transaction) { ServerResources.Dispose(@event.Transaction); AddStatistics(@event); } var tempQueue = new Queue <Transaction>(); while (TransactionsQueue.TryDequeue(out var transaction)) { if (ServerResources.IsHandleAllowed(transaction)) { ServerResources.AllocateForTransaction(transaction); EventsCollector.AddEvent(new OutputEvent(transaction)); } else { tempQueue.Enqueue(transaction); } } while (tempQueue.TryDequeue(out var transaction)) { TransactionsQueue.Enqueue(transaction); } }
private ImmutableDictionary <string, GraphFieldEventInfo> GetFieldEvents(EventsCollector eventsCollector, EventType eventType) { if (Type == GraphType.None) { return(ImmutableDictionary.Create <string, GraphFieldEventInfo>()); } OverridableItemsCollection <GraphFieldEventInfo> rawCollection = eventsCollector.GetFieldEvents(eventType); return(rawCollection.ToImmutableDictionary() ?? ImmutableDictionary.Create <string, GraphFieldEventInfo>()); }
public void RemoveChildKernelCleansUp() { IKernel subkernel = new DefaultKernel(); var eventCollector = new EventsCollector(subkernel); subkernel.RemovedAsChildKernel += eventCollector.RemovedAsChildKernel; subkernel.AddedAsChildKernel += eventCollector.AddedAsChildKernel; kernel.AddChildKernel(subkernel); Assert.AreEqual(kernel, subkernel.Parent); Assert.AreEqual(1, eventCollector.Events.Count); Assert.AreEqual(EventsCollector.Added, eventCollector.Events[0]); kernel.RemoveChildKernel(subkernel); Assert.IsNull(subkernel.Parent); Assert.AreEqual(2, eventCollector.Events.Count); Assert.AreEqual(EventsCollector.Removed, eventCollector.Events[1]); }
public void HandleEvent(IEvent @event) { var transaction = _transactionCreator.CreateTransactionByType(); AddStatistics(transaction); if (ServerResources.IsHandleAllowed(transaction)) { ServerResources.AllocateForTransaction(transaction); EventsCollector.AddEvent(new OutputEvent(transaction)); } else { TransactionsQueue.Enqueue(transaction); } EventsCollector.AddEvent(new InputEvent()); }
public void RemovingChildKernelUnsubscribesFromParentEvents() { IKernel subkernel = new DefaultKernel(); var eventCollector = new EventsCollector(subkernel); subkernel.RemovedAsChildKernel += eventCollector.RemovedAsChildKernel; subkernel.AddedAsChildKernel += eventCollector.AddedAsChildKernel; kernel.AddChildKernel(subkernel); kernel.RemoveChildKernel(subkernel); kernel.AddChildKernel(subkernel); kernel.RemoveChildKernel(subkernel); Assert.AreEqual(4, eventCollector.Events.Count); Assert.AreEqual(EventsCollector.Added, eventCollector.Events[0]); Assert.AreEqual(EventsCollector.Removed, eventCollector.Events[1]); Assert.AreEqual(EventsCollector.Added, eventCollector.Events[2]); Assert.AreEqual(EventsCollector.Removed, eventCollector.Events[3]); }
private EventsCollector InitializeEvents() { _cancellation.ThrowIfCancellationRequested(); var methods = GetAllGraphMethodsFromBaseToDerived(); var eventsCollector = new EventsCollector(this, _pxContext); int declarationOrder = 0; foreach (IMethodSymbol method in methods) { _cancellation.ThrowIfCancellationRequested(); var(eventType, eventSignatureType) = method.GetEventHandlerInfo(_pxContext); if (eventSignatureType == EventHandlerSignatureType.None || eventType == EventType.None) { continue; } GraphEventCategory eventCategory = GetEventCategoryByEventType(eventType); if (!IsValidGraphEvent(method, eventSignatureType, eventCategory)) { continue; } if (eventCategory == GraphEventCategory.Row) { eventsCollector.AddEvent(eventSignatureType, eventType, method, declarationOrder, _cancellation); } else if (eventCategory == GraphEventCategory.Field) { eventsCollector.AddFieldEvent(eventSignatureType, eventType, method, declarationOrder, _cancellation); } declarationOrder++; } return(eventsCollector); }
public void RemovingChildKernelUnsubscribesFromParentEvents() { IKernel subkernel = new DefaultKernel(); var eventCollector = new EventsCollector(subkernel); subkernel.RemovedAsChildKernel += eventCollector.RemovedAsChildKernel; subkernel.AddedAsChildKernel += eventCollector.AddedAsChildKernel; Kernel.AddChildKernel(subkernel); Kernel.RemoveChildKernel(subkernel); Kernel.AddChildKernel(subkernel); Kernel.RemoveChildKernel(subkernel); Assert.AreEqual(4, eventCollector.Events.Count); Assert.AreEqual(EventsCollector.Added, eventCollector.Events[0]); Assert.AreEqual(EventsCollector.Removed, eventCollector.Events[1]); Assert.AreEqual(EventsCollector.Added, eventCollector.Events[2]); Assert.AreEqual(EventsCollector.Removed, eventCollector.Events[3]); }
public void RemoveChildKernelCleansUp() { IKernel subkernel = new DefaultKernel(); var eventCollector = new EventsCollector(subkernel); subkernel.RemovedAsChildKernel += eventCollector.RemovedAsChildKernel; subkernel.AddedAsChildKernel += eventCollector.AddedAsChildKernel; Kernel.AddChildKernel(subkernel); Assert.AreEqual(Kernel, subkernel.Parent); Assert.AreEqual(1, eventCollector.Events.Count); Assert.AreEqual(EventsCollector.Added, eventCollector.Events[0]); Kernel.RemoveChildKernel(subkernel); Assert.IsNull(subkernel.Parent); Assert.AreEqual(2, eventCollector.Events.Count); Assert.AreEqual(EventsCollector.Removed, eventCollector.Events[1]); }