blob: 0cbb1f0d8a34396c0c2bb20dfe76e740ab23f1f0 [file] [log] [blame]
// Copyright (c) 2016 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 "quic/test_tools/simulator/packet_filter.h"
namespace quic {
namespace simulator {
PacketFilter::PacketFilter(Simulator* simulator,
std::string name,
Endpoint* input)
: Endpoint(simulator, name), input_(input) {
input_->SetTxPort(this);
}
PacketFilter::~PacketFilter() {}
void PacketFilter::AcceptPacket(std::unique_ptr<Packet> packet) {
if (FilterPacket(*packet)) {
output_tx_port_->AcceptPacket(std::move(packet));
}
}
QuicTime::Delta PacketFilter::TimeUntilAvailable() {
return output_tx_port_->TimeUntilAvailable();
}
void PacketFilter::Act() {}
UnconstrainedPortInterface* PacketFilter::GetRxPort() {
return input_->GetRxPort();
}
void PacketFilter::SetTxPort(ConstrainedPortInterface* port) {
output_tx_port_ = port;
}
} // namespace simulator
} // namespace quic