Ei kuvausta
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TelemetryMetricsService.cs 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using System.Collections.Generic;
  3. namespace UnityEngine.Purchasing.Telemetry
  4. {
  5. class TelemetryMetricsService : ITelemetryMetricsService
  6. {
  7. readonly 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. try
  17. {
  18. handle.StopAndSendMetric();
  19. }
  20. catch (IapTelemetryException exception)
  21. {
  22. Debug.unityLogger.LogIAPError($"An exception occured while sending a metric: {exception.Message}");
  23. }
  24. }
  25. public ITelemetryMetricEvent CreateAndStartMetricEvent(TelemetryMetricDefinition metricDefinition)
  26. {
  27. ITelemetryMetricEvent metricEvent = new TelemetryMetricEvent(m_TelemetryMetricsInstanceWrapper, metricDefinition.MetricType, metricDefinition.MetricName);
  28. try
  29. {
  30. metricEvent.StartMetric();
  31. }
  32. catch (IapTelemetryException exception)
  33. {
  34. Debug.unityLogger.LogIAPError($"An exception occured while starting a metric: {exception.Message}");
  35. }
  36. return metricEvent;
  37. }
  38. }
  39. }