| // Copyright (c) 2019 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "net/third_party/quiche/src/quic/quartc/test/quartc_competing_endpoint.h" | 
 |  | 
 | #include "net/third_party/quiche/src/quic/platform/api/quic_str_cat.h" | 
 |  | 
 | namespace quic { | 
 | namespace test { | 
 |  | 
 | QuartcCompetingEndpoint::QuartcCompetingEndpoint( | 
 |     simulator::Simulator* simulator, | 
 |     QuicTime::Delta send_interval, | 
 |     QuicByteCount bytes_per_interval, | 
 |     const std::string& name, | 
 |     const std::string& peer_name, | 
 |     Perspective perspective, | 
 |     QuicConnectionId connection_id) | 
 |     : Actor(simulator, QuicStrCat(name, " actor")), | 
 |       send_interval_(send_interval), | 
 |       bytes_per_interval_(bytes_per_interval), | 
 |       endpoint_(QuicMakeUnique<simulator::QuicEndpoint>(simulator, | 
 |                                                         name, | 
 |                                                         peer_name, | 
 |                                                         perspective, | 
 |                                                         connection_id)) { | 
 |   // Schedule the first send for one send interval into the test. | 
 |   Schedule(simulator_->GetClock()->Now() + send_interval_); | 
 |   last_send_time_ = simulator_->GetClock()->Now(); | 
 | } | 
 |  | 
 | void QuartcCompetingEndpoint::Act() { | 
 |   endpoint_->AddBytesToTransfer(bytes_per_interval_); | 
 |   if (send_interval_ > QuicTime::Delta::Zero()) { | 
 |     Schedule(last_send_time_ + send_interval_); | 
 |   } | 
 |   last_send_time_ = simulator_->GetClock()->Now(); | 
 | } | 
 |  | 
 | }  // namespace test | 
 | }  // namespace quic |