Example #1
0
        /// <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);
 }
Example #5
0
 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> ();
     }
                ));
 }
Example #8
0
 private List <IEventHandlerFactory> GetOrCreateHandlerFactories(Type eventType)
 {
     return(HandlerFactories.GetOrAdd(
                eventType,
                type =>
     {
         var eventName = EventNameAttribute.GetNameOrDefault(type);
         EventStopingTokens[eventName] = new CancellationTokenSource();
         return new List <IEventHandlerFactory>();
     }
                ));
 }
Example #9
0
        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);
                }
            }
        }
Example #10
0
        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);
                }
            }
        }
Example #11
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="eventType"></param>
 /// <returns></returns>
 protected List <IEventHandlerFactory> GetOrCreateHandlerFactories(Type eventType) => HandlerFactories.GetOrAdd(eventType, (type) => new List <IEventHandlerFactory>());
Example #12
0
 private List <IEventHandlerFactory> GetOrCreateHandlerFactories(Type eventType)
 {
     return(HandlerFactories.GetOrAdd(eventType, (type) => new List <IEventHandlerFactory>()));
 }