/* * Copyright 2020 The WebRTC Project Authors. All rights reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #include "rtc_base/network_monitor_factory.h" namespace { // This is set by NetworkMonitorFactory::SetFactory and the caller of // NetworkMonitorFactory::SetFactory must be responsible for calling // ReleaseFactory to destroy the factory. rtc::NetworkMonitorFactory* network_monitor_factory = nullptr; } // namespace namespace rtc { NetworkMonitorFactory::NetworkMonitorFactory() {} NetworkMonitorFactory::~NetworkMonitorFactory() {} void NetworkMonitorFactory::SetFactory(NetworkMonitorFactory* factory) { if (network_monitor_factory != nullptr) { delete network_monitor_factory; } network_monitor_factory = factory; } void NetworkMonitorFactory::ReleaseFactory(NetworkMonitorFactory* factory) { if (factory == network_monitor_factory) { SetFactory(nullptr); } } NetworkMonitorFactory* NetworkMonitorFactory::GetFactory() { return network_monitor_factory; } } // namespace rtc