blob: b0719c90731227cfde24c9c5065d2cb60ebfa30a [file] [log] [blame]
Jonas Oreland09c452e2019-11-20 09:01:02 +01001/*
2 * Copyright 2019 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "p2p/base/ice_controller_interface.h"
12
13#include <string>
14
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020015#include "p2p/base/ice_switch_reason.h"
16
Jonas Oreland09c452e2019-11-20 09:01:02 +010017namespace cricket {
18
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020019std::string IceRecheckEvent::ToString() const {
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020020 std::string str = IceSwitchReasonToString(reason);
Sameer Vijaykar9453e5f2022-05-31 11:38:20 +000021 if (recheck_delay_ms) {
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020022 str += " (after delay: " + std::to_string(recheck_delay_ms) + ")";
Sameer Vijaykar9453e5f2022-05-31 11:38:20 +000023 }
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020024 return str;
25}
26
27// TODO(bugs.webrtc.org/14125) remove when Type is replaced with
28// IceSwitchReason.
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020029IceRecheckEvent::Type IceRecheckEvent::FromIceSwitchReason(
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020030 IceSwitchReason reason) {
31 switch (reason) {
32 case IceSwitchReason::REMOTE_CANDIDATE_GENERATION_CHANGE:
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020033 return IceRecheckEvent::REMOTE_CANDIDATE_GENERATION_CHANGE;
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020034 case IceSwitchReason::NETWORK_PREFERENCE_CHANGE:
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020035 return IceRecheckEvent::NETWORK_PREFERENCE_CHANGE;
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020036 case IceSwitchReason::NEW_CONNECTION_FROM_LOCAL_CANDIDATE:
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020037 return IceRecheckEvent::NEW_CONNECTION_FROM_LOCAL_CANDIDATE;
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020038 case IceSwitchReason::NEW_CONNECTION_FROM_REMOTE_CANDIDATE:
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020039 return IceRecheckEvent::NEW_CONNECTION_FROM_REMOTE_CANDIDATE;
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020040 case IceSwitchReason::NEW_CONNECTION_FROM_UNKNOWN_REMOTE_ADDRESS:
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020041 return IceRecheckEvent::NEW_CONNECTION_FROM_UNKNOWN_REMOTE_ADDRESS;
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020042 case IceSwitchReason::NOMINATION_ON_CONTROLLED_SIDE:
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020043 return IceRecheckEvent::NOMINATION_ON_CONTROLLED_SIDE;
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020044 case IceSwitchReason::DATA_RECEIVED:
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020045 return IceRecheckEvent::DATA_RECEIVED;
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020046 case IceSwitchReason::CONNECT_STATE_CHANGE:
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020047 return IceRecheckEvent::CONNECT_STATE_CHANGE;
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020048 case IceSwitchReason::SELECTED_CONNECTION_DESTROYED:
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020049 return IceRecheckEvent::SELECTED_CONNECTION_DESTROYED;
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020050 case IceSwitchReason::ICE_CONTROLLER_RECHECK:
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020051 return IceRecheckEvent::ICE_CONTROLLER_RECHECK;
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020052 }
53}
54
55// TODO(bugs.webrtc.org/14125) remove when Type is replaced with
56// IceSwitchReason.
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020057IceSwitchReason IceRecheckEvent::FromType(IceRecheckEvent::Type type) {
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020058 switch (type) {
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020059 case IceRecheckEvent::REMOTE_CANDIDATE_GENERATION_CHANGE:
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020060 return IceSwitchReason::REMOTE_CANDIDATE_GENERATION_CHANGE;
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020061 case IceRecheckEvent::NETWORK_PREFERENCE_CHANGE:
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020062 return IceSwitchReason::NETWORK_PREFERENCE_CHANGE;
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020063 case IceRecheckEvent::NEW_CONNECTION_FROM_LOCAL_CANDIDATE:
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020064 return IceSwitchReason::NEW_CONNECTION_FROM_LOCAL_CANDIDATE;
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020065 case IceRecheckEvent::NEW_CONNECTION_FROM_REMOTE_CANDIDATE:
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020066 return IceSwitchReason::NEW_CONNECTION_FROM_REMOTE_CANDIDATE;
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020067 case IceRecheckEvent::NEW_CONNECTION_FROM_UNKNOWN_REMOTE_ADDRESS:
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020068 return IceSwitchReason::NEW_CONNECTION_FROM_UNKNOWN_REMOTE_ADDRESS;
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020069 case IceRecheckEvent::NOMINATION_ON_CONTROLLED_SIDE:
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020070 return IceSwitchReason::NOMINATION_ON_CONTROLLED_SIDE;
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020071 case IceRecheckEvent::DATA_RECEIVED:
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020072 return IceSwitchReason::DATA_RECEIVED;
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020073 case IceRecheckEvent::CONNECT_STATE_CHANGE:
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020074 return IceSwitchReason::CONNECT_STATE_CHANGE;
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020075 case IceRecheckEvent::SELECTED_CONNECTION_DESTROYED:
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020076 return IceSwitchReason::SELECTED_CONNECTION_DESTROYED;
Sameer Vijaykar2a1accd2022-06-03 11:39:39 +020077 case IceRecheckEvent::ICE_CONTROLLER_RECHECK:
Sameer Vijaykar3382c1c2022-06-02 11:29:09 +020078 return IceSwitchReason::ICE_CONTROLLER_RECHECK;
79 }
Jonas Oreland09c452e2019-11-20 09:01:02 +010080}
81
82} // namespace cricket