Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: net/quic/quic_multipath_transmissions_map.cc

Issue 1431363002: Add a data structure QuicMultipathTransmissionsMap which is not in use now. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@106859834
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 #include "net/quic/quic_multipath_transmissions_map.h"
2
3 namespace net_quic {
4
5 QuicMultipathTransmissionsMap::QuicMultipathTransmissionsMap() {}
6
7 QuicMultipathTransmissionsMap::~QuicMultipathTransmissionsMap() {
8 for (std::pair<QuicPathIdPacketNumber, MultipathTransmissionsList*>
9 packet_transmissions : transmission_map_) {
10 packet_transmissions.second->pop_front();
11 if (packet_transmissions.second->empty()) {
12 delete packet_transmissions.second;
13 }
14 }
15 }
16
17 void QuicMultipathTransmissionsMap::OnPacketRetransmittedOnDifferentPath(
18 QuicPathIdPacketNumber original_path_id_packet_number,
19 QuicPathIdPacketNumber path_id_packet_number) {
20 MultipathTransmissionsList* across_paths_transmission_list = nullptr;
21 MultipathTransmissionsMap::iterator it =
22 transmission_map_.find(original_path_id_packet_number);
23 if (it != transmission_map_.end()) {
24 across_paths_transmission_list = it->second;
25 } else {
26 across_paths_transmission_list = new MultipathTransmissionsList();
27 across_paths_transmission_list->push_back(original_path_id_packet_number);
28 transmission_map_[original_path_id_packet_number] =
29 across_paths_transmission_list;
30 }
31
32 across_paths_transmission_list->push_back(path_id_packet_number);
33 transmission_map_[path_id_packet_number] = across_paths_transmission_list;
34 }
35
36 const QuicMultipathTransmissionsMap::MultipathTransmissionsList*
37 QuicMultipathTransmissionsMap::MaybeGetTransmissionsOnOtherPaths(
38 QuicPathIdPacketNumber path_id_packet_number) const {
39 MultipathTransmissionsMap::const_iterator it =
40 transmission_map_.find(path_id_packet_number);
41 if (it == transmission_map_.end()) {
42 return nullptr;
43 }
44
45 return it->second;
46 }
47
48 void QuicMultipathTransmissionsMap::OnPacketHandled(
49 QuicPathIdPacketNumber path_id_packet_number) {
50 MultipathTransmissionsMap::iterator it =
51 transmission_map_.find(path_id_packet_number);
52 if (it == transmission_map_.end()) {
53 return;
54 }
55
56 MultipathTransmissionsList* transmission_list = it->second;
57 MultipathTransmissionsList::iterator transmission_it;
58 // Remove all across paths transmissions of this packet from the map.
59 for (QuicPathIdPacketNumber path_id_packet_number : *transmission_list) {
60 transmission_map_.erase(path_id_packet_number);
61 }
62 // Remove the multipath transmissions list.
63 delete transmission_list;
64 }
65
66 } // namespace net_quic
OLDNEW
« no previous file with comments | « net/quic/quic_multipath_transmissions_map.h ('k') | net/quic/quic_multipath_transmissions_map_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698