summaryrefslogtreecommitdiff
path: root/vendor/github.com/pion/webrtc/v3/icetransportstate.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/pion/webrtc/v3/icetransportstate.go')
-rw-r--r--vendor/github.com/pion/webrtc/v3/icetransportstate.go107
1 files changed, 107 insertions, 0 deletions
diff --git a/vendor/github.com/pion/webrtc/v3/icetransportstate.go b/vendor/github.com/pion/webrtc/v3/icetransportstate.go
new file mode 100644
index 0000000..da93e44
--- /dev/null
+++ b/vendor/github.com/pion/webrtc/v3/icetransportstate.go
@@ -0,0 +1,107 @@
+package webrtc
+
+import "github.com/pion/ice/v2"
+
+// ICETransportState represents the current state of the ICE transport.
+type ICETransportState int
+
+const (
+ // ICETransportStateNew indicates the ICETransport is waiting
+ // for remote candidates to be supplied.
+ ICETransportStateNew = iota + 1
+
+ // ICETransportStateChecking indicates the ICETransport has
+ // received at least one remote candidate, and a local and remote
+ // ICECandidateComplete dictionary was not added as the last candidate.
+ ICETransportStateChecking
+
+ // ICETransportStateConnected indicates the ICETransport has
+ // received a response to an outgoing connectivity check, or has
+ // received incoming DTLS/media after a successful response to an
+ // incoming connectivity check, but is still checking other candidate
+ // pairs to see if there is a better connection.
+ ICETransportStateConnected
+
+ // ICETransportStateCompleted indicates the ICETransport tested
+ // all appropriate candidate pairs and at least one functioning
+ // candidate pair has been found.
+ ICETransportStateCompleted
+
+ // ICETransportStateFailed indicates the ICETransport the last
+ // candidate was added and all appropriate candidate pairs have either
+ // failed connectivity checks or have lost consent.
+ ICETransportStateFailed
+
+ // ICETransportStateDisconnected indicates the ICETransport has received
+ // at least one local and remote candidate, but the final candidate was
+ // received yet and all appropriate candidate pairs thus far have been
+ // tested and failed.
+ ICETransportStateDisconnected
+
+ // ICETransportStateClosed indicates the ICETransport has shut down
+ // and is no longer responding to STUN requests.
+ ICETransportStateClosed
+)
+
+func (c ICETransportState) String() string {
+ switch c {
+ case ICETransportStateNew:
+ return "new"
+ case ICETransportStateChecking:
+ return "checking"
+ case ICETransportStateConnected:
+ return "connected"
+ case ICETransportStateCompleted:
+ return "completed"
+ case ICETransportStateFailed:
+ return "failed"
+ case ICETransportStateDisconnected:
+ return "disconnected"
+ case ICETransportStateClosed:
+ return "closed"
+ default:
+ return unknownStr
+ }
+}
+
+func newICETransportStateFromICE(i ice.ConnectionState) ICETransportState {
+ switch i {
+ case ice.ConnectionStateNew:
+ return ICETransportStateNew
+ case ice.ConnectionStateChecking:
+ return ICETransportStateChecking
+ case ice.ConnectionStateConnected:
+ return ICETransportStateConnected
+ case ice.ConnectionStateCompleted:
+ return ICETransportStateCompleted
+ case ice.ConnectionStateFailed:
+ return ICETransportStateFailed
+ case ice.ConnectionStateDisconnected:
+ return ICETransportStateDisconnected
+ case ice.ConnectionStateClosed:
+ return ICETransportStateClosed
+ default:
+ return ICETransportState(Unknown)
+ }
+}
+
+func (c ICETransportState) toICE() ice.ConnectionState {
+ switch c {
+ case ICETransportStateNew:
+ return ice.ConnectionStateNew
+ case ICETransportStateChecking:
+ return ice.ConnectionStateChecking
+ case ICETransportStateConnected:
+ return ice.ConnectionStateConnected
+ case ICETransportStateCompleted:
+ return ice.ConnectionStateCompleted
+ case ICETransportStateFailed:
+ return ice.ConnectionStateFailed
+ case ICETransportStateDisconnected:
+ return ice.ConnectionStateDisconnected
+ case ICETransportStateClosed:
+ return ice.ConnectionStateClosed
+ default:
+ return ice.ConnectionState(Unknown)
+ }
+}