| Index: net/quic/quic_protocol.cc
|
| diff --git a/net/quic/quic_protocol.cc b/net/quic/quic_protocol.cc
|
| index 2661107d9ebfc7e8f1fbac7744b84621d25c62a8..ffa2e08a2e56e0cc216db24eae8267278cfcfd95 100644
|
| --- a/net/quic/quic_protocol.cc
|
| +++ b/net/quic/quic_protocol.cc
|
| @@ -5,6 +5,8 @@
|
| #include "net/quic/quic_protocol.h"
|
|
|
| using base::StringPiece;
|
| +using base::hash_set;
|
| +using std::ostream;
|
|
|
| namespace net {
|
|
|
| @@ -28,8 +30,43 @@ SentPacketInfo::SentPacketInfo() {}
|
|
|
| SentPacketInfo::~SentPacketInfo() {}
|
|
|
| +ostream& operator<<(ostream& os, const QuicAckFrame& s) {
|
| + os << "largest_received: " << s.received_info.largest_received
|
| + << " time: " << s.received_info.time_received
|
| + << " missing: ";
|
| + for (hash_set<QuicPacketSequenceNumber>::const_iterator it =
|
| + s.received_info.missing_packets.begin();
|
| + it != s.received_info.missing_packets.end(); ++it) {
|
| + os << *it << " ";
|
| + }
|
| +
|
| + os << " least_waiting: " << s.sent_info.least_unacked
|
| + << " no_retransmit: ";
|
| + for (hash_set<QuicPacketSequenceNumber>::const_iterator it =
|
| + s.sent_info.non_retransmiting.begin();
|
| + it != s.sent_info.non_retransmiting.end(); ++it) {
|
| + os << *it << " ";
|
| + }
|
| + os << "\n";
|
| + return os;
|
| +}
|
| +
|
| QuicFecData::QuicFecData() {}
|
|
|
| +bool QuicFecData::operator==(const QuicFecData& other) const {
|
| + if (fec_group != other.fec_group) {
|
| + return false;
|
| + }
|
| + if (first_protected_packet_sequence_number !=
|
| + other.first_protected_packet_sequence_number) {
|
| + return false;
|
| + }
|
| + if (redundancy != other.redundancy) {
|
| + return false;
|
| + }
|
| + return true;
|
| +}
|
| +
|
| QuicData::~QuicData() {
|
| if (owns_buffer_) {
|
| delete [] const_cast<char*>(buffer_);
|
|
|