/// <summary /> /// <param name="pipelineType"></param> /// <param name="aggregationKindMoniker"></param> /// <param name="converter"></param> public void Add(Type pipelineType, string aggregationKindMoniker, IMetricAggregateToTelemetryPipelineConverter converter) { ValidateKeys(pipelineType, aggregationKindMoniker); Util.ValidateNotNull(converter, nameof(converter)); ConcurrentDictionary <string, IMetricAggregateToTelemetryPipelineConverter> converters = _pipelineTable.GetOrAdd( pipelineType, new ConcurrentDictionary <string, IMetricAggregateToTelemetryPipelineConverter>()); converters[aggregationKindMoniker] = converter; }
/// <summary /> /// <param name="pipelineType"></param> /// <param name="aggregationKindMoniker"></param> /// <param name="converter"></param> /// <returns></returns> public bool TryGet(Type pipelineType, string aggregationKindMoniker, out IMetricAggregateToTelemetryPipelineConverter converter) { ValidateKeys(pipelineType, aggregationKindMoniker); ConcurrentDictionary <string, IMetricAggregateToTelemetryPipelineConverter> converters; if (false == _pipelineTable.TryGetValue(pipelineType, out converters)) { converter = null; return(false); } bool hasConverter = converters.TryGetValue(aggregationKindMoniker, out converter); return(hasConverter); }