stats_go.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. //go:build !js
  2. // +build !js
  3. package webrtc
  4. // GetConnectionStats is a helper method to return the associated stats for a given PeerConnection
  5. func (r StatsReport) GetConnectionStats(conn *PeerConnection) (PeerConnectionStats, bool) {
  6. statsID := conn.getStatsID()
  7. stats, ok := r[statsID]
  8. if !ok {
  9. return PeerConnectionStats{}, false
  10. }
  11. pcStats, ok := stats.(PeerConnectionStats)
  12. if !ok {
  13. return PeerConnectionStats{}, false
  14. }
  15. return pcStats, true
  16. }
  17. // GetDataChannelStats is a helper method to return the associated stats for a given DataChannel
  18. func (r StatsReport) GetDataChannelStats(dc *DataChannel) (DataChannelStats, bool) {
  19. statsID := dc.getStatsID()
  20. stats, ok := r[statsID]
  21. if !ok {
  22. return DataChannelStats{}, false
  23. }
  24. dcStats, ok := stats.(DataChannelStats)
  25. if !ok {
  26. return DataChannelStats{}, false
  27. }
  28. return dcStats, true
  29. }
  30. // GetICECandidateStats is a helper method to return the associated stats for a given ICECandidate
  31. func (r StatsReport) GetICECandidateStats(c *ICECandidate) (ICECandidateStats, bool) {
  32. statsID := c.statsID
  33. stats, ok := r[statsID]
  34. if !ok {
  35. return ICECandidateStats{}, false
  36. }
  37. candidateStats, ok := stats.(ICECandidateStats)
  38. if !ok {
  39. return ICECandidateStats{}, false
  40. }
  41. return candidateStats, true
  42. }
  43. // GetICECandidatePairStats is a helper method to return the associated stats for a given ICECandidatePair
  44. func (r StatsReport) GetICECandidatePairStats(c *ICECandidatePair) (ICECandidatePairStats, bool) {
  45. statsID := c.statsID
  46. stats, ok := r[statsID]
  47. if !ok {
  48. return ICECandidatePairStats{}, false
  49. }
  50. candidateStats, ok := stats.(ICECandidatePairStats)
  51. if !ok {
  52. return ICECandidatePairStats{}, false
  53. }
  54. return candidateStats, true
  55. }
  56. // GetCertificateStats is a helper method to return the associated stats for a given Certificate
  57. func (r StatsReport) GetCertificateStats(c *Certificate) (CertificateStats, bool) {
  58. statsID := c.statsID
  59. stats, ok := r[statsID]
  60. if !ok {
  61. return CertificateStats{}, false
  62. }
  63. certificateStats, ok := stats.(CertificateStats)
  64. if !ok {
  65. return CertificateStats{}, false
  66. }
  67. return certificateStats, true
  68. }
  69. // GetCodecStats is a helper method to return the associated stats for a given Codec
  70. func (r StatsReport) GetCodecStats(c *RTPCodecParameters) (CodecStats, bool) {
  71. statsID := c.statsID
  72. stats, ok := r[statsID]
  73. if !ok {
  74. return CodecStats{}, false
  75. }
  76. codecStats, ok := stats.(CodecStats)
  77. if !ok {
  78. return CodecStats{}, false
  79. }
  80. return codecStats, true
  81. }