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

Side by Side Diff: webrtc/p2p/base/transport.cc

Issue 1356103002: Revert of Replace readable with receiving where receiving means receiving anything (stun ping, response or da… (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Created 5 years, 3 months 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 | « webrtc/p2p/base/transport.h ('k') | webrtc/p2p/base/transportchannel.h » ('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
11 #include "webrtc/p2p/base/transport.h" 11 #include "webrtc/p2p/base/transport.h"
12 12
13 #include "webrtc/p2p/base/candidate.h" 13 #include "webrtc/p2p/base/candidate.h"
14 #include "webrtc/p2p/base/constants.h" 14 #include "webrtc/p2p/base/constants.h"
15 #include "webrtc/p2p/base/port.h" 15 #include "webrtc/p2p/base/port.h"
16 #include "webrtc/p2p/base/transportchannelimpl.h" 16 #include "webrtc/p2p/base/transportchannelimpl.h"
17 #include "webrtc/base/bind.h" 17 #include "webrtc/base/bind.h"
18 #include "webrtc/base/common.h" 18 #include "webrtc/base/common.h"
19 #include "webrtc/base/logging.h" 19 #include "webrtc/base/logging.h"
20 20
21 namespace cricket { 21 namespace cricket {
22 22
23 using rtc::Bind; 23 using rtc::Bind;
24 24
25 enum { 25 enum {
26 MSG_ONSIGNALINGREADY = 1, 26 MSG_ONSIGNALINGREADY = 1,
27 MSG_ONREMOTECANDIDATE, 27 MSG_ONREMOTECANDIDATE,
28 MSG_READSTATE,
28 MSG_WRITESTATE, 29 MSG_WRITESTATE,
29 MSG_REQUESTSIGNALING, 30 MSG_REQUESTSIGNALING,
30 MSG_CANDIDATEREADY, 31 MSG_CANDIDATEREADY,
31 MSG_ROUTECHANGE, 32 MSG_ROUTECHANGE,
32 MSG_CONNECTING, 33 MSG_CONNECTING,
33 MSG_CANDIDATEALLOCATIONCOMPLETE, 34 MSG_CANDIDATEALLOCATIONCOMPLETE,
34 MSG_ROLECONFLICT, 35 MSG_ROLECONFLICT,
35 MSG_COMPLETED, 36 MSG_COMPLETED,
36 MSG_FAILED, 37 MSG_FAILED,
37 MSG_RECEIVINGSTATE, 38 MSG_RECEIVINGSTATE,
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 impl->SetReceivingTimeout(channel_receiving_timeout_); 231 impl->SetReceivingTimeout(channel_receiving_timeout_);
231 // TODO(ronghuawu): Change CreateChannel_w to be able to return error since 232 // TODO(ronghuawu): Change CreateChannel_w to be able to return error since
232 // below Apply**Description_w calls can fail. 233 // below Apply**Description_w calls can fail.
233 if (local_description_) 234 if (local_description_)
234 ApplyLocalTransportDescription_w(impl, NULL); 235 ApplyLocalTransportDescription_w(impl, NULL);
235 if (remote_description_) 236 if (remote_description_)
236 ApplyRemoteTransportDescription_w(impl, NULL); 237 ApplyRemoteTransportDescription_w(impl, NULL);
237 if (local_description_ && remote_description_) 238 if (local_description_ && remote_description_)
238 ApplyNegotiatedTransportDescription_w(impl, NULL); 239 ApplyNegotiatedTransportDescription_w(impl, NULL);
239 240
241 impl->SignalReadableState.connect(this, &Transport::OnChannelReadableState);
240 impl->SignalWritableState.connect(this, &Transport::OnChannelWritableState); 242 impl->SignalWritableState.connect(this, &Transport::OnChannelWritableState);
241 impl->SignalReceivingState.connect(this, &Transport::OnChannelReceivingState); 243 impl->SignalReceivingState.connect(this, &Transport::OnChannelReceivingState);
242 impl->SignalRequestSignaling.connect( 244 impl->SignalRequestSignaling.connect(
243 this, &Transport::OnChannelRequestSignaling); 245 this, &Transport::OnChannelRequestSignaling);
244 impl->SignalCandidateReady.connect(this, &Transport::OnChannelCandidateReady); 246 impl->SignalCandidateReady.connect(this, &Transport::OnChannelCandidateReady);
245 impl->SignalRouteChange.connect(this, &Transport::OnChannelRouteChange); 247 impl->SignalRouteChange.connect(this, &Transport::OnChannelRouteChange);
246 impl->SignalCandidatesAllocationDone.connect( 248 impl->SignalCandidatesAllocationDone.connect(
247 this, &Transport::OnChannelCandidatesAllocationDone); 249 this, &Transport::OnChannelCandidatesAllocationDone);
248 impl->SignalRoleConflict.connect(this, &Transport::OnRoleConflict); 250 impl->SignalRoleConflict.connect(this, &Transport::OnRoleConflict);
249 impl->SignalConnectionRemoved.connect( 251 impl->SignalConnectionRemoved.connect(
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 486
485 void Transport::OnRemoteCandidate_w(const Candidate& candidate) { 487 void Transport::OnRemoteCandidate_w(const Candidate& candidate) {
486 ASSERT(worker_thread()->IsCurrent()); 488 ASSERT(worker_thread()->IsCurrent());
487 ChannelMap::iterator iter = channels_.find(candidate.component()); 489 ChannelMap::iterator iter = channels_.find(candidate.component());
488 // It's ok for a channel to go away while this message is in transit. 490 // It's ok for a channel to go away while this message is in transit.
489 if (iter != channels_.end()) { 491 if (iter != channels_.end()) {
490 iter->second->OnCandidate(candidate); 492 iter->second->OnCandidate(candidate);
491 } 493 }
492 } 494 }
493 495
496 void Transport::OnChannelReadableState(TransportChannel* channel) {
497 ASSERT(worker_thread()->IsCurrent());
498 signaling_thread()->Post(this, MSG_READSTATE, NULL);
499 }
500
501 void Transport::OnChannelReadableState_s() {
502 ASSERT(signaling_thread()->IsCurrent());
503 TransportState readable = GetTransportState_s(TRANSPORT_READABLE_STATE);
504 if (readable_ != readable) {
505 readable_ = readable;
506 SignalReadableState(this);
507 }
508 }
509
494 void Transport::OnChannelWritableState(TransportChannel* channel) { 510 void Transport::OnChannelWritableState(TransportChannel* channel) {
495 ASSERT(worker_thread()->IsCurrent()); 511 ASSERT(worker_thread()->IsCurrent());
496 signaling_thread()->Post(this, MSG_WRITESTATE, NULL); 512 signaling_thread()->Post(this, MSG_WRITESTATE, NULL);
497 513
498 MaybeCompleted_w(); 514 MaybeCompleted_w();
499 } 515 }
500 516
501 void Transport::OnChannelWritableState_s() { 517 void Transport::OnChannelWritableState_s() {
502 ASSERT(signaling_thread()->IsCurrent()); 518 ASSERT(signaling_thread()->IsCurrent());
503 TransportState writable = GetTransportState_s(TRANSPORT_WRITABLE_STATE); 519 TransportState writable = GetTransportState_s(TRANSPORT_WRITABLE_STATE);
(...skipping 20 matching lines...) Expand all
524 540
525 TransportState Transport::GetTransportState_s(TransportStateType state_type) { 541 TransportState Transport::GetTransportState_s(TransportStateType state_type) {
526 ASSERT(signaling_thread()->IsCurrent()); 542 ASSERT(signaling_thread()->IsCurrent());
527 543
528 rtc::CritScope cs(&crit_); 544 rtc::CritScope cs(&crit_);
529 bool any = false; 545 bool any = false;
530 bool all = !channels_.empty(); 546 bool all = !channels_.empty();
531 for (const auto iter : channels_) { 547 for (const auto iter : channels_) {
532 bool b = false; 548 bool b = false;
533 switch (state_type) { 549 switch (state_type) {
550 case TRANSPORT_READABLE_STATE:
551 b = iter.second->readable();
552 break;
534 case TRANSPORT_WRITABLE_STATE: 553 case TRANSPORT_WRITABLE_STATE:
535 b = iter.second->writable(); 554 b = iter.second->writable();
536 break; 555 break;
537 case TRANSPORT_RECEIVING_STATE: 556 case TRANSPORT_RECEIVING_STATE:
538 b = iter.second->receiving(); 557 b = iter.second->receiving();
539 break; 558 break;
540 default: 559 default:
541 ASSERT(false); 560 ASSERT(false);
542 } 561 }
543 any |= b; 562 any |= b;
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
844 break; 863 break;
845 case MSG_ONREMOTECANDIDATE: { 864 case MSG_ONREMOTECANDIDATE: {
846 ChannelParams* params = static_cast<ChannelParams*>(msg->pdata); 865 ChannelParams* params = static_cast<ChannelParams*>(msg->pdata);
847 OnRemoteCandidate_w(*params->candidate); 866 OnRemoteCandidate_w(*params->candidate);
848 delete params; 867 delete params;
849 } 868 }
850 break; 869 break;
851 case MSG_CONNECTING: 870 case MSG_CONNECTING:
852 OnConnecting_s(); 871 OnConnecting_s();
853 break; 872 break;
873 case MSG_READSTATE:
874 OnChannelReadableState_s();
875 break;
854 case MSG_WRITESTATE: 876 case MSG_WRITESTATE:
855 OnChannelWritableState_s(); 877 OnChannelWritableState_s();
856 break; 878 break;
857 case MSG_RECEIVINGSTATE: 879 case MSG_RECEIVINGSTATE:
858 OnChannelReceivingState_s(); 880 OnChannelReceivingState_s();
859 break; 881 break;
860 case MSG_REQUESTSIGNALING: 882 case MSG_REQUESTSIGNALING:
861 OnChannelRequestSignaling_s(); 883 OnChannelRequestSignaling_s();
862 break; 884 break;
863 case MSG_CANDIDATEREADY: 885 case MSG_CANDIDATEREADY:
(...skipping 14 matching lines...) Expand all
878 case MSG_COMPLETED: 900 case MSG_COMPLETED:
879 SignalCompleted(this); 901 SignalCompleted(this);
880 break; 902 break;
881 case MSG_FAILED: 903 case MSG_FAILED:
882 SignalFailed(this); 904 SignalFailed(this);
883 break; 905 break;
884 } 906 }
885 } 907 }
886 908
887 } // namespace cricket 909 } // namespace cricket
OLDNEW
« no previous file with comments | « webrtc/p2p/base/transport.h ('k') | webrtc/p2p/base/transportchannel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698