/// <summary> /// Installs performance counters in the current assembly using PerfItFilterAttribute. /// </summary> public static void Install() { Uninstall(); var perfItFilterAttributes = FindAllFilters(); var dictionary = new Dictionary <string, CounterCreationDataCollection>(); foreach (var filter in perfItFilterAttributes) { if (!dictionary.ContainsKey(filter.CategoryName)) { dictionary.Add(filter.CategoryName, new CounterCreationDataCollection()); } foreach (var counterType in filter.Counters) { if (!HandlerFactories.ContainsKey(counterType)) { throw new ArgumentException("Counter type not defined: " + counterType); } using (var counterHandler = HandlerFactories[counterType]("Dummy", filter)) { dictionary[filter.CategoryName].AddRange(counterHandler.BuildCreationData()); } } } // now create them foreach (var categoryName in dictionary.Keys) { PerformanceCounterCategory.Create(categoryName, "PerfItMvc category for " + categoryName, PerformanceCounterCategoryType.MultiInstance, dictionary[categoryName]); } }
private static ImmutableArray <string> GetEvaluationRuleNames() { return(HandlerFactories.Select(e => e.EvaluationRuleName) .Where(name => !string.IsNullOrEmpty(name)) .Distinct(StringComparers.RuleNames) .ToImmutableArray()); }
/// <summary> /// Add a list of exception handler class names. /// </summary> /// <param name="classNames">to add</param> public void AddClasses(IEnumerable <String> classNames) { if (HandlerFactories == null) { HandlerFactories = new List <String>(); } HandlerFactories.AddAll(classNames); }
/// <summary>Add an exception handler factory class name. <para /> Provide a fully-qualified class name of the implementation of the <seealso cref="com.espertech.esper.client.hook.ExceptionHandlerFactory" /> interface. </summary> /// <param name="exceptionHandlerFactoryClassName">class name of exception handler factory</param> public void AddClass(String exceptionHandlerFactoryClassName) { if (HandlerFactories == null) { HandlerFactories = new List <String>(); } HandlerFactories.Add(exceptionHandlerFactoryClassName); }
private new EventHandlerFactoryList GetOrCreateHandlerFactories(Type eventType) { return HandlerFactories.GetOrAdd(eventType, (type) => { var eventName = EventNameAttribute.GetNameOrDefault(type); EventTypes[eventName] = type; return new EventHandlerFactoryList(); }) as EventHandlerFactoryList; }
/// <summary> /// 获取事件处理器工厂列表 /// </summary> /// <param name="eventType"></param> /// <returns></returns> protected override IEnumerable <EventTypeWithEventHandlerFactories> GetHandlerFactories(Type eventType) { var handlerFactoryList = new List <EventTypeWithEventHandlerFactories>(); foreach (var handlerFactory in HandlerFactories.Where(hf => ShouldTriggerEventForHandler(eventType, hf.Key))) { handlerFactoryList.Add(new EventTypeWithEventHandlerFactories(handlerFactory.Key, handlerFactory.Value)); } return(handlerFactoryList.ToArray()); }
private List <IEventHandlerFactory> GetOrCreateHandlerFactories(Type eventType) { return(HandlerFactories.GetOrAdd( eventType, type => { var eventName = EventNameAttribute.GetNameOrDefault(type); EventTypes[eventName] = type; return new List <IEventHandlerFactory> (); } )); }
private List <IEventHandlerFactory> GetOrCreateHandlerFactories(Type eventType) { return(HandlerFactories.GetOrAdd( eventType, type => { var eventName = EventNameAttribute.GetNameOrDefault(type); EventStopingTokens[eventName] = new CancellationTokenSource(); return new List <IEventHandlerFactory>(); } )); }
public MessagesHandler(HandlerFactories handlerFactories, HandlerFactories sagaHandlerFactories, SagaMetadata[] sagaMetadata) { this.handlerFactories = handlerFactories; this.sagaHandlerFactories = sagaHandlerFactories; sagaHandlersInfo = new Dictionary <Type, IDictionary <Type, SagaHandlerInfo> >(); foreach (var sagaMeta in sagaMetadata) { foreach (var sagaMessage in sagaMeta.AssociatedMessages) { IDictionary <Type, SagaHandlerInfo> sagaHandlersInfoForMessageType; if (!sagaHandlersInfo.TryGetValue(sagaMessage.MessageType, out sagaHandlersInfoForMessageType)) { sagaHandlersInfo[sagaMessage.MessageType] = sagaHandlersInfoForMessageType = new Dictionary <Type, SagaHandlerInfo>(); } sagaHandlersInfoForMessageType[sagaMeta.SagaDataType] = new SagaHandlerInfo(sagaMessage.SagaHandlerType, sagaMessage.IsAllowedToStartSaga); } } }
public MessagesHandler(HandlerFactories handlerFactories, HandlerFactories sagaHandlerFactories, SagaMetadata[] sagaMetadata) { this.handlerFactories = handlerFactories; this.sagaHandlerFactories = sagaHandlerFactories; sagaHandlersInfo = new Dictionary<Type, IDictionary<Type, SagaHandlerInfo>>(); foreach (var sagaMeta in sagaMetadata) { foreach (var sagaMessage in sagaMeta.AssociatedMessages) { IDictionary<Type, SagaHandlerInfo> sagaHandlersInfoForMessageType; if (!sagaHandlersInfo.TryGetValue(sagaMessage.MessageType, out sagaHandlersInfoForMessageType)) { sagaHandlersInfo[sagaMessage.MessageType] = sagaHandlersInfoForMessageType = new Dictionary<Type, SagaHandlerInfo>(); } sagaHandlersInfoForMessageType[sagaMeta.SagaDataType] = new SagaHandlerInfo(sagaMessage.SagaHandlerType, sagaMessage.IsAllowedToStartSaga); } } }
/// <summary> /// /// </summary> /// <param name="eventType"></param> /// <returns></returns> protected List <IEventHandlerFactory> GetOrCreateHandlerFactories(Type eventType) => HandlerFactories.GetOrAdd(eventType, (type) => new List <IEventHandlerFactory>());
private List <IEventHandlerFactory> GetOrCreateHandlerFactories(Type eventType) { return(HandlerFactories.GetOrAdd(eventType, (type) => new List <IEventHandlerFactory>())); }