Files
webrtc/rtcicecomponent.go
Konstantin Itskov 5be692f2ec Add Spec compliant enum structures
Add RTCIceRole structure with complete unittests
Add RTCIceProtocol structure with unittests
Add RTCIceComponent structure with unittests
Add RTCIceCandidateType with complete unittests

Relates to #83
2018-09-14 13:42:41 -04:00

48 lines
1.3 KiB
Go

package webrtc
// RTCIceComponent describes if the ice transport is used for RTP
// (or RTCP multiplexing).
type RTCIceComponent int
const (
// RTCIceComponentRtp indicates that the ICE Transport is used for RTP (or
// RTCP multiplexing), as defined in
// https://tools.ietf.org/html/rfc5245#section-4.1.1.1. Protocols
// multiplexed with RTP (e.g. data channel) share its component ID. This
// represents the component-id value 1 when encoded in candidate-attribute.
RTCIceComponentRtp RTCIceComponent = iota + 1
// RTCIceComponentRtcp indicates that the ICE Transport is used for RTCP as
// defined by https://tools.ietf.org/html/rfc5245#section-4.1.1.1. This
// represents the component-id value 2 when encoded in candidate-attribute.
RTCIceComponentRtcp
)
// This is done this way because of a linter.
const (
rtcIceComponentRtpStr = "rtp"
rtcIceComponentRtcpStr = "rtcp"
)
func newRTCIceComponent(raw string) RTCIceComponent {
switch raw {
case rtcIceComponentRtpStr:
return RTCIceComponentRtp
case rtcIceComponentRtcpStr:
return RTCIceComponentRtcp
default:
return RTCIceComponent(Unknown)
}
}
func (t RTCIceComponent) String() string {
switch t {
case RTCIceComponentRtp:
return rtcIceComponentRtpStr
case RTCIceComponentRtcp:
return rtcIceComponentRtcpStr
default:
return ErrUnknownType.Error()
}
}