Пример #1
0
        public bool AddOperation(ActivityOperationType activityOperationType, string instance, float value = 0f, int count = 1)
        {
            if (ExTraceGlobals.ActivityContextTracer.IsTraceEnabled(TraceType.DebugTrace))
            {
                ExTraceGlobals.ActivityContextTracer.TraceDebug((long)this.LocalId.GetHashCode(), "ActivityScopeImpl.AddOperation - activityOperationType = {0}, instance = {1}, value = {2}. Key = {3}", new object[]
                {
                    activityOperationType,
                    instance ?? "<null>",
                    value,
                    this.LocalId
                });
            }
            if (!this.VerifyIsStarted())
            {
                return(false);
            }
            OperationStatistics operationStatistics = this.GetOperationStatistics(activityOperationType, instance);

            if (this.Status == ActivityContextStatus.ActivityStarted)
            {
                operationStatistics.AddCall(value, count);
                return(true);
            }
            return(false);
        }
Пример #2
0
 public static void OnGlobalActivityEnded(ActivityScope globalActivityScope)
 {
     if (!ActivityCoverageReport.IsReportEnabled || globalActivityScope.ActivityType != ActivityType.Global)
     {
         return;
     }
     foreach (KeyValuePair <OperationKey, OperationStatistics> keyValuePair in globalActivityScope.Statistics)
     {
         OperationStatistics operationStatistics = null;
         if (ActivityCoverageReport.statistics.TryGetValue(keyValuePair.Key, out operationStatistics))
         {
             operationStatistics.Merge(keyValuePair.Value);
         }
         else
         {
             ActivityCoverageReport.statistics[keyValuePair.Key] = keyValuePair.Value;
         }
     }
     ActivityCoverageReport.currentActivityCycleCount++;
     if (ActivityCoverageReport.currentActivityCycleCount == ActivityCoverageReport.rollupActivityCycleCount)
     {
         ActivityCoverageReport.LogReport();
         ActivityCoverageReport.Clear();
     }
 }
Пример #3
0
        private OperationStatistics GetOperationStatistics(ActivityOperationType activityOperationType, string instance)
        {
            OperationKey key = new OperationKey(activityOperationType, instance);
            Func <OperationKey, OperationStatistics> valueFactory = (OperationKey operationKey) => OperationStatistics.GetInstance(operationKey);

            return(this.statistics.GetOrAdd(key, valueFactory));
        }