mirror of
https://github.com/pion/webrtc.git
synced 2024-05-03 11:54:53 +08:00
0647ce9c26
Relates to #408
72 lines
1.6 KiB
Go
72 lines
1.6 KiB
Go
package webrtc
|
|
|
|
// PriorityType determines the priority type of a data channel.
|
|
type PriorityType int
|
|
|
|
const (
|
|
// PriorityTypeVeryLow corresponds to "below normal".
|
|
PriorityTypeVeryLow PriorityType = iota + 1
|
|
|
|
// PriorityTypeLow corresponds to "normal".
|
|
PriorityTypeLow
|
|
|
|
// PriorityTypeMedium corresponds to "high".
|
|
PriorityTypeMedium
|
|
|
|
// PriorityTypeHigh corresponds to "extra high".
|
|
PriorityTypeHigh
|
|
)
|
|
|
|
// This is done this way because of a linter.
|
|
const (
|
|
priorityTypeVeryLowStr = "very-low"
|
|
priorityTypeLowStr = "low"
|
|
priorityTypeMediumStr = "medium"
|
|
priorityTypeHighStr = "high"
|
|
)
|
|
|
|
func newPriorityTypeFromString(raw string) PriorityType {
|
|
switch raw {
|
|
case priorityTypeVeryLowStr:
|
|
return PriorityTypeVeryLow
|
|
case priorityTypeLowStr:
|
|
return PriorityTypeLow
|
|
case priorityTypeMediumStr:
|
|
return PriorityTypeMedium
|
|
case priorityTypeHighStr:
|
|
return PriorityTypeHigh
|
|
default:
|
|
return PriorityType(Unknown)
|
|
}
|
|
}
|
|
|
|
func newPriorityTypeFromUint16(raw uint16) PriorityType {
|
|
switch {
|
|
case raw <= 128:
|
|
return PriorityTypeVeryLow
|
|
case 129 <= raw && raw <= 256:
|
|
return PriorityTypeLow
|
|
case 257 <= raw && raw <= 512:
|
|
return PriorityTypeMedium
|
|
case 513 <= raw:
|
|
return PriorityTypeHigh
|
|
default:
|
|
return PriorityType(Unknown)
|
|
}
|
|
}
|
|
|
|
func (p PriorityType) String() string {
|
|
switch p {
|
|
case PriorityTypeVeryLow:
|
|
return priorityTypeVeryLowStr
|
|
case PriorityTypeLow:
|
|
return priorityTypeLowStr
|
|
case PriorityTypeMedium:
|
|
return priorityTypeMediumStr
|
|
case PriorityTypeHigh:
|
|
return priorityTypeHighStr
|
|
default:
|
|
return ErrUnknownType.Error()
|
|
}
|
|
}
|