Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / net / quic / congestion_control / inter_arrival_receiver.cc
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "net/quic/congestion_control/inter_arrival_receiver.h"
6
7 #include "base/basictypes.h"
8
9 namespace net {
10
11 InterArrivalReceiver::InterArrivalReceiver() {
12 }
13
14 InterArrivalReceiver::~InterArrivalReceiver() {
15 }
16
17 bool InterArrivalReceiver::GenerateCongestionFeedback(
18     QuicCongestionFeedbackFrame* feedback) {
19   if (received_packet_times_.size() <= 1) {
20     // Don't waste resources by sending a feedback frame for only one packet.
21     return false;
22   }
23   feedback->type = kInterArrival;
24
25   // Copy our current receive set to our feedback message, we will not resend
26   // this data if it is lost.
27   feedback->inter_arrival.received_packet_times = received_packet_times_;
28
29   // Prepare for the next set of arriving packets by clearing our current set.
30   received_packet_times_.clear();
31   return true;
32 }
33
34 void InterArrivalReceiver::RecordIncomingPacket(
35     QuicByteCount /*bytes*/,
36     QuicPacketSequenceNumber sequence_number,
37     QuicTime timestamp) {
38   received_packet_times_.insert(std::make_pair(sequence_number, timestamp));
39 }
40
41 }  // namespace net