TelemetryMetricsService.cs 1.1 KB

1234567891011121314151617181920212223242526272829
  1. using System;
  2. using System.Collections.Generic;
  3. namespace UnityEngine.Purchasing.Telemetry
  4. {
  5. class TelemetryMetricsService : ITelemetryMetricsService
  6. {
  7. ITelemetryMetricsInstanceWrapper m_TelemetryMetricsInstanceWrapper;
  8. public TelemetryMetricsService(ITelemetryMetricsInstanceWrapper telemetryMetricsInstanceWrapper)
  9. {
  10. m_TelemetryMetricsInstanceWrapper = telemetryMetricsInstanceWrapper;
  11. }
  12. public void ExecuteTimedAction(Action timedAction, TelemetryMetricDefinition metricDefinition)
  13. {
  14. var handle = CreateAndStartMetricEvent(metricDefinition);
  15. timedAction();
  16. handle.StopAndSendMetric();
  17. }
  18. public ITelemetryMetricEvent CreateAndStartMetricEvent(TelemetryMetricDefinition metricDefinition)
  19. {
  20. ITelemetryMetricEvent metricEvent = new TelemetryMetricEvent(m_TelemetryMetricsInstanceWrapper, metricDefinition.MetricType, metricDefinition.MetricName);
  21. metricEvent.StartMetric();
  22. return metricEvent;
  23. }
  24. }
  25. }