blob: 9eae922d2ee2dbab32c5d020f4bf454e8f9aa7da [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 Vijaykar794e68c2022-05-30 15:26:51 +020015#include "p2p/base/ice_switch_reason.h"
16
Jonas Oreland09c452e2019-11-20 09:01:02 +010017namespace cricket {
18
19std::string IceControllerEvent::ToString() const {
Sameer Vijaykar794e68c2022-05-30 15:26:51 +020020 std::string str = IceSwitchReasonToString(reason);
Jonas Orelandb5aa0a82019-12-03 09:59:11 +010021 if (recheck_delay_ms) {
Sameer Vijaykar794e68c2022-05-30 15:26:51 +020022 str += " (after delay: " + std::to_string(recheck_delay_ms) + ")";
Jonas Oreland09c452e2019-11-20 09:01:02 +010023 }
Sameer Vijaykar794e68c2022-05-30 15:26:51 +020024 return str;
25}
26
27// TODO(bugs.webrtc.org/14125) remove when Type is replaced with
28// IceSwitchReason.
29IceControllerEvent::Type IceControllerEvent::FromIceSwitchReason(
30 IceSwitchReason reason) {
31 switch (reason) {
32 case IceSwitchReason::REMOTE_CANDIDATE_GENERATION_CHANGE:
33 return IceControllerEvent::REMOTE_CANDIDATE_GENERATION_CHANGE;
34 case IceSwitchReason::NETWORK_PREFERENCE_CHANGE:
35 return IceControllerEvent::NETWORK_PREFERENCE_CHANGE;
36 case IceSwitchReason::NEW_CONNECTION_FROM_LOCAL_CANDIDATE:
37 return IceControllerEvent::NEW_CONNECTION_FROM_LOCAL_CANDIDATE;
38 case IceSwitchReason::NEW_CONNECTION_FROM_REMOTE_CANDIDATE:
39 return IceControllerEvent::NEW_CONNECTION_FROM_REMOTE_CANDIDATE;
40 case IceSwitchReason::NEW_CONNECTION_FROM_UNKNOWN_REMOTE_ADDRESS:
41 return IceControllerEvent::NEW_CONNECTION_FROM_UNKNOWN_REMOTE_ADDRESS;
42 case IceSwitchReason::NOMINATION_ON_CONTROLLED_SIDE:
43 return IceControllerEvent::NOMINATION_ON_CONTROLLED_SIDE;
44 case IceSwitchReason::DATA_RECEIVED:
45 return IceControllerEvent::DATA_RECEIVED;
46 case IceSwitchReason::CONNECT_STATE_CHANGE:
47 return IceControllerEvent::CONNECT_STATE_CHANGE;
48 case IceSwitchReason::SELECTED_CONNECTION_DESTROYED:
49 return IceControllerEvent::SELECTED_CONNECTION_DESTROYED;
50 case IceSwitchReason::ICE_CONTROLLER_RECHECK:
51 return IceControllerEvent::ICE_CONTROLLER_RECHECK;
52 }
53}
54
55// TODO(bugs.webrtc.org/14125) remove when Type is replaced with
56// IceSwitchReason.
57IceSwitchReason IceControllerEvent::FromType(IceControllerEvent::Type type) {
58 switch (type) {
59 case IceControllerEvent::REMOTE_CANDIDATE_GENERATION_CHANGE:
60 return IceSwitchReason::REMOTE_CANDIDATE_GENERATION_CHANGE;
61 case IceControllerEvent::NETWORK_PREFERENCE_CHANGE:
62 return IceSwitchReason::NETWORK_PREFERENCE_CHANGE;
63 case IceControllerEvent::NEW_CONNECTION_FROM_LOCAL_CANDIDATE:
64 return IceSwitchReason::NEW_CONNECTION_FROM_LOCAL_CANDIDATE;
65 case IceControllerEvent::NEW_CONNECTION_FROM_REMOTE_CANDIDATE:
66 return IceSwitchReason::NEW_CONNECTION_FROM_REMOTE_CANDIDATE;
67 case IceControllerEvent::NEW_CONNECTION_FROM_UNKNOWN_REMOTE_ADDRESS:
68 return IceSwitchReason::NEW_CONNECTION_FROM_UNKNOWN_REMOTE_ADDRESS;
69 case IceControllerEvent::NOMINATION_ON_CONTROLLED_SIDE:
70 return IceSwitchReason::NOMINATION_ON_CONTROLLED_SIDE;
71 case IceControllerEvent::DATA_RECEIVED:
72 return IceSwitchReason::DATA_RECEIVED;
73 case IceControllerEvent::CONNECT_STATE_CHANGE:
74 return IceSwitchReason::CONNECT_STATE_CHANGE;
75 case IceControllerEvent::SELECTED_CONNECTION_DESTROYED:
76 return IceSwitchReason::SELECTED_CONNECTION_DESTROYED;
77 case IceControllerEvent::ICE_CONTROLLER_RECHECK:
78 return IceSwitchReason::ICE_CONTROLLER_RECHECK;
79 }
Jonas Oreland09c452e2019-11-20 09:01:02 +010080}
81
82} // namespace cricket