TelemetryDiagnosticsInstanceWrapper.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using Unity.Services.Core.Telemetry.Internal;
  3. namespace UnityEngine.Purchasing.Telemetry
  4. {
  5. class TelemetryDiagnosticsInstanceWrapper : ITelemetryDiagnosticsInstanceWrapper
  6. {
  7. IDiagnostics m_Instance;
  8. TelemetryQueue<TelemetryDiagnosticParams> m_Queue;
  9. public TelemetryDiagnosticsInstanceWrapper()
  10. {
  11. m_Queue = new TelemetryQueue<TelemetryDiagnosticParams>(SendDiagnostic);
  12. }
  13. public void SetDiagnosticsInstance(IDiagnostics diagnosticsInstance)
  14. {
  15. m_Instance = diagnosticsInstance;
  16. m_Queue.SendQueuedEvents();
  17. }
  18. public void SendDiagnostic(string diagnosticName, string diagnosticException)
  19. {
  20. var diagnosticParams = new TelemetryDiagnosticParams(diagnosticName, diagnosticException);
  21. if (m_Instance != null)
  22. {
  23. SendDiagnostic(diagnosticParams);
  24. }
  25. else
  26. {
  27. m_Queue.QueueEvent(diagnosticParams);
  28. }
  29. }
  30. void SendDiagnostic(TelemetryDiagnosticParams diagnosticParams)
  31. {
  32. m_Instance.SendDiagnostic(diagnosticParams.name, diagnosticParams.exception);
  33. }
  34. }
  35. }