Providing EmulatedRoute instances when creating TcpMessageRoute

This CL makes it so the caller explicitly has to provide
EmulatedRoute instances when creating TcpMessageRoute.
Previously those were automatically generated.

This means that the EmulatedRoute instances can be reused.

Bug: webrtc:9883
Change-Id: I7ad03ca6a5a3dbb91df76e3ca1190a1a75bf0cc5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159703
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29791}
This commit is contained in:
Sebastian Jansson 2019-11-13 14:10:07 +01:00 committed by Commit Bot
parent 017c84f3ea
commit 50f8686c6d
3 changed files with 9 additions and 8 deletions

View File

@ -126,8 +126,9 @@ TEST(TcpMessageRouteTest, DeliveredOnLossyNetwork) {
auto ret = send;
ret.loss_percent = 10;
auto* tcp_route = net.CreateTcpRoute({net.CreateEmulatedNode(send)},
{net.CreateEmulatedNode(ret)});
auto* tcp_route =
net.CreateTcpRoute(net.CreateRoute({net.CreateEmulatedNode(send)}),
net.CreateRoute({net.CreateEmulatedNode(ret)}));
int deliver_count = 0;
// 100 kB is more than what fits into a single packet.
constexpr size_t kMessageSize = 100000;

View File

@ -229,10 +229,10 @@ FakeTcpCrossTraffic* NetworkEmulationManagerImpl::StartFakeTcpCrossTraffic(
}
TcpMessageRoute* NetworkEmulationManagerImpl::CreateTcpRoute(
std::vector<EmulatedNetworkNode*> send_link,
std::vector<EmulatedNetworkNode*> ret_link) {
auto tcp_route = std::make_unique<TcpMessageRoute>(
clock_, task_queue_.Get(), CreateRoute(send_link), CreateRoute(ret_link));
EmulatedRoute* send_route,
EmulatedRoute* ret_route) {
auto tcp_route = std::make_unique<TcpMessageRoute>(clock_, task_queue_.Get(),
send_route, ret_route);
auto* route_ptr = tcp_route.get();
task_queue_.PostTask([this, tcp_route = std::move(tcp_route)]() mutable {
tcp_message_routes_.push_back(std::move(tcp_route));

View File

@ -77,8 +77,8 @@ class NetworkEmulationManagerImpl : public NetworkEmulationManager {
std::vector<EmulatedNetworkNode*> ret_link,
FakeTcpConfig config);
TcpMessageRoute* CreateTcpRoute(std::vector<EmulatedNetworkNode*> send_link,
std::vector<EmulatedNetworkNode*> ret_link);
TcpMessageRoute* CreateTcpRoute(EmulatedRoute* send_route,
EmulatedRoute* ret_route);
void StopCrossTraffic(FakeTcpCrossTraffic* traffic);