#ifndef TEST_NETWORK_NETWORK_EMULATION_H_
#define TEST_NETWORK_NETWORK_EMULATION_H_
#include <cstdint>
#include <cstring>
#include <deque>
#include <map>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "absl/base/nullability.h"
#include "absl/types/optional.h"
#include "api/array_view.h"
#include "api/numerics/samples_stats_counter.h"
#include "api/sequence_checker.h"
#include "api/task_queue/task_queue_base.h"
#include "api/test/network_emulation/network_emulation_interfaces.h"
#include "api/test/network_emulation_manager.h"
#include "api/test/simulated_network.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
#include "rtc_base/copy_on_write_buffer.h"
#include "rtc_base/network.h"
#include "rtc_base/network_constants.h"
#include "rtc_base/socket_address.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/system/no_unique_address.h"
#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/thread_annotations.h"
#include "system_wrappers/include/clock.h"
namespace webrtc {
class EmulatedNetworkOutgoingStatsBuilder { … };
class EmulatedNetworkIncomingStatsBuilder { … };
class EmulatedNetworkStatsBuilder { … };
class EmulatedNetworkNodeStatsBuilder { … };
class LinkEmulation : public EmulatedNetworkReceiverInterface { … };
class NetworkRouterNode : public EmulatedNetworkReceiverInterface { … };
class EmulatedNetworkNode : public EmulatedNetworkReceiverInterface { … };
class EmulatedEndpointImpl : public EmulatedEndpoint { … };
class EmulatedRoute { … };
class EndpointsContainer { … };
template <typename FakePacketType>
class FakePacketRoute : public EmulatedNetworkReceiverInterface { … };
template <typename RequestPacketType, typename ResponsePacketType>
class TwoWayFakeTrafficRoute { … };
}
#endif