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

Side by Side Diff: webrtc/p2p/base/p2ptransportchannel.h

Issue 1455033004: Ping backup connection at a slower rate (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Merge with head Created 5 years 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
« no previous file with comments | « talk/app/webrtc/webrtcsession.cc ('k') | webrtc/p2p/base/p2ptransportchannel.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 rtc::Thread* thread() { return worker_thread_; } 170 rtc::Thread* thread() { return worker_thread_; }
171 bool IsGettingPorts() { return allocator_session()->IsGettingPorts(); } 171 bool IsGettingPorts() { return allocator_session()->IsGettingPorts(); }
172 172
173 // A transport channel is weak if the current best connection is either 173 // A transport channel is weak if the current best connection is either
174 // not receiving or not writable, or if there is no best connection at all. 174 // not receiving or not writable, or if there is no best connection at all.
175 bool weak() const; 175 bool weak() const;
176 void UpdateConnectionStates(); 176 void UpdateConnectionStates();
177 void RequestSort(); 177 void RequestSort();
178 void SortConnections(); 178 void SortConnections();
179 void SwitchBestConnectionTo(Connection* conn); 179 void SwitchBestConnectionTo(Connection* conn);
180 void UpdateChannelState(); 180 void UpdateState();
181 void HandleAllTimedOut(); 181 void HandleAllTimedOut();
182 void MaybeStopPortAllocatorSessions(); 182 void MaybeStopPortAllocatorSessions();
183 TransportChannelState ComputeState() const;
183 184
184 Connection* GetBestConnectionOnNetwork(rtc::Network* network) const; 185 Connection* GetBestConnectionOnNetwork(rtc::Network* network) const;
185 bool CreateConnections(const Candidate& remote_candidate, 186 bool CreateConnections(const Candidate& remote_candidate,
186 PortInterface* origin_port); 187 PortInterface* origin_port);
187 bool CreateConnection(PortInterface* port, 188 bool CreateConnection(PortInterface* port,
188 const Candidate& remote_candidate, 189 const Candidate& remote_candidate,
189 PortInterface* origin_port); 190 PortInterface* origin_port);
190 bool FindConnection(cricket::Connection* connection) const; 191 bool FindConnection(cricket::Connection* connection) const;
191 192
192 uint32_t GetRemoteCandidateGeneration(const Candidate& candidate); 193 uint32_t GetRemoteCandidateGeneration(const Candidate& candidate);
193 bool IsDuplicateRemoteCandidate(const Candidate& candidate); 194 bool IsDuplicateRemoteCandidate(const Candidate& candidate);
194 void RememberRemoteCandidate(const Candidate& remote_candidate, 195 void RememberRemoteCandidate(const Candidate& remote_candidate,
195 PortInterface* origin_port); 196 PortInterface* origin_port);
196 bool IsPingable(Connection* conn); 197 bool IsPingable(Connection* conn, uint32_t now);
197 void PingConnection(Connection* conn); 198 void PingConnection(Connection* conn);
198 void AddAllocatorSession(PortAllocatorSession* session); 199 void AddAllocatorSession(PortAllocatorSession* session);
199 void AddConnection(Connection* connection); 200 void AddConnection(Connection* connection);
200 201
201 void OnPortReady(PortAllocatorSession *session, PortInterface* port); 202 void OnPortReady(PortAllocatorSession *session, PortInterface* port);
202 void OnCandidatesReady(PortAllocatorSession *session, 203 void OnCandidatesReady(PortAllocatorSession *session,
203 const std::vector<Candidate>& candidates); 204 const std::vector<Candidate>& candidates);
204 void OnCandidatesAllocationDone(PortAllocatorSession* session); 205 void OnCandidatesAllocationDone(PortAllocatorSession* session);
205 void OnUnknownAddress(PortInterface* port, 206 void OnUnknownAddress(PortInterface* port,
206 const rtc::SocketAddress& addr, 207 const rtc::SocketAddress& addr,
(...skipping 12 matching lines...) Expand all
219 void OnConnectionDestroyed(Connection *connection); 220 void OnConnectionDestroyed(Connection *connection);
220 221
221 void OnNominated(Connection* conn); 222 void OnNominated(Connection* conn);
222 223
223 void OnMessage(rtc::Message* pmsg) override; 224 void OnMessage(rtc::Message* pmsg) override;
224 void OnSort(); 225 void OnSort();
225 void OnCheckAndPing(); 226 void OnCheckAndPing();
226 227
227 void PruneConnections(); 228 void PruneConnections();
228 Connection* best_nominated_connection() const; 229 Connection* best_nominated_connection() const;
230 bool IsBackupConnection(Connection* conn) const;
229 231
230 P2PTransport* transport_; 232 P2PTransport* transport_;
231 PortAllocator* allocator_; 233 PortAllocator* allocator_;
232 rtc::Thread* worker_thread_; 234 rtc::Thread* worker_thread_;
233 bool incoming_only_; 235 bool incoming_only_;
234 int error_; 236 int error_;
235 std::vector<PortAllocatorSession*> allocator_sessions_; 237 std::vector<PortAllocatorSession*> allocator_sessions_;
236 std::vector<PortInterface *> ports_; 238 std::vector<PortInterface *> ports_;
237 std::vector<Connection *> connections_; 239 std::vector<Connection *> connections_;
238 Connection* best_connection_; 240 Connection* best_connection_;
(...skipping 10 matching lines...) Expand all
249 std::string remote_ice_ufrag_; 251 std::string remote_ice_ufrag_;
250 std::string remote_ice_pwd_; 252 std::string remote_ice_pwd_;
251 IceMode remote_ice_mode_; 253 IceMode remote_ice_mode_;
252 IceRole ice_role_; 254 IceRole ice_role_;
253 uint64_t tiebreaker_; 255 uint64_t tiebreaker_;
254 uint32_t remote_candidate_generation_; 256 uint32_t remote_candidate_generation_;
255 IceGatheringState gathering_state_; 257 IceGatheringState gathering_state_;
256 258
257 int check_receiving_delay_; 259 int check_receiving_delay_;
258 int receiving_timeout_; 260 int receiving_timeout_;
261 int backup_connection_ping_interval_;
259 uint32_t last_ping_sent_ms_ = 0; 262 uint32_t last_ping_sent_ms_ = 0;
260 bool gather_continually_ = false; 263 bool gather_continually_ = false;
261 int weak_ping_delay_ = WEAK_PING_DELAY; 264 int weak_ping_delay_ = WEAK_PING_DELAY;
265 TransportChannelState state_ = TransportChannelState::STATE_INIT;
262 266
263 RTC_DISALLOW_COPY_AND_ASSIGN(P2PTransportChannel); 267 RTC_DISALLOW_COPY_AND_ASSIGN(P2PTransportChannel);
264 }; 268 };
265 269
266 } // namespace cricket 270 } // namespace cricket
267 271
268 #endif // WEBRTC_P2P_BASE_P2PTRANSPORTCHANNEL_H_ 272 #endif // WEBRTC_P2P_BASE_P2PTRANSPORTCHANNEL_H_
OLDNEW
« no previous file with comments | « talk/app/webrtc/webrtcsession.cc ('k') | webrtc/p2p/base/p2ptransportchannel.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698