#include "p2p/base/wrapping_active_ice_controller.h"
#include <memory>
#include <utility>
#include <vector>
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/units/time_delta.h"
#include "p2p/base/basic_ice_controller.h"
#include "p2p/base/connection.h"
#include "p2p/base/ice_agent_interface.h"
#include "p2p/base/ice_controller_interface.h"
#include "p2p/base/ice_switch_reason.h"
#include "p2p/base/ice_transport_internal.h"
#include "p2p/base/transport_description.h"
#include "rtc_base/logging.h"
#include "rtc_base/thread.h"
#include "rtc_base/time_utils.h"
namespace {
SafeTask;
TimeDelta;
}
namespace cricket {
WrappingActiveIceController::WrappingActiveIceController(
IceAgentInterface* ice_agent,
std::unique_ptr<IceControllerInterface> wrapped)
: … { … }
WrappingActiveIceController::WrappingActiveIceController(
IceAgentInterface* ice_agent,
IceControllerFactoryInterface* wrapped_factory,
const IceControllerFactoryArgs& wrapped_factory_args)
: … { … }
WrappingActiveIceController::~WrappingActiveIceController() { … }
void WrappingActiveIceController::SetIceConfig(const IceConfig& config) { … }
bool WrappingActiveIceController::GetUseCandidateAttribute(
const Connection* connection,
NominationMode mode,
IceMode remote_ice_mode) const { … }
void WrappingActiveIceController::OnConnectionAdded(
const Connection* connection) { … }
void WrappingActiveIceController::OnConnectionPinged(
const Connection* connection) { … }
void WrappingActiveIceController::OnConnectionUpdated(
const Connection* connection) { … }
void WrappingActiveIceController::OnConnectionSwitched(
const Connection* connection) { … }
void WrappingActiveIceController::OnConnectionDestroyed(
const Connection* connection) { … }
void WrappingActiveIceController::MaybeStartPinging() { … }
void WrappingActiveIceController::SelectAndPingConnection() { … }
void WrappingActiveIceController::HandlePingResult(
IceControllerInterface::PingResult result) { … }
void WrappingActiveIceController::OnSortAndSwitchRequest(
IceSwitchReason reason) { … }
void WrappingActiveIceController::OnImmediateSortAndSwitchRequest(
IceSwitchReason reason) { … }
void WrappingActiveIceController::SortAndSwitchToBestConnection(
IceSwitchReason reason) { … }
bool WrappingActiveIceController::OnImmediateSwitchRequest(
IceSwitchReason reason,
const Connection* selected) { … }
void WrappingActiveIceController::HandleSwitchResult(
IceSwitchReason reason_for_switch,
IceControllerInterface::SwitchResult result) { … }
void WrappingActiveIceController::UpdateStateOnConnectionsResorted() { … }
void WrappingActiveIceController::PruneConnections() { … }
const Connection* WrappingActiveIceController::FindNextPingableConnection() { … }
}