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

Unified Diff: webrtc/p2p/base/p2ptransportchannel.cc

Issue 1246913005: TransportController refactoring (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: minor cleanup Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/p2p/base/p2ptransportchannel.cc
diff --git a/webrtc/p2p/base/p2ptransportchannel.cc b/webrtc/p2p/base/p2ptransportchannel.cc
index 94eb01754d459111533fa7f9a7c71e9e5e3223d1..27ecb1073eb1892157995233b1119affae3f61a7 100644
--- a/webrtc/p2p/base/p2ptransportchannel.cc
+++ b/webrtc/p2p/base/p2ptransportchannel.cc
@@ -11,6 +11,7 @@
#include "webrtc/p2p/base/p2ptransportchannel.h"
#include <set>
+#include <algorithm>
#include "webrtc/p2p/base/common.h"
#include "webrtc/p2p/base/relayport.h" // For RELAY_PORT_TYPE.
#include "webrtc/p2p/base/stunport.h" // For STUN_PORT_TYPE.
@@ -180,13 +181,12 @@ namespace cricket {
P2PTransportChannel::P2PTransportChannel(const std::string& content_name,
int component,
P2PTransport* transport,
- PortAllocator *allocator) :
+ PortAllocator* allocator) :
TransportChannelImpl(content_name, component),
transport_(transport),
allocator_(allocator),
worker_thread_(rtc::Thread::Current()),
incoming_only_(false),
- waiting_for_signaling_(false),
error_(0),
best_connection_(NULL),
pending_best_connection_(NULL),
@@ -197,6 +197,7 @@ P2PTransportChannel::P2PTransportChannel(const std::string& content_name,
ice_role_(ICEROLE_UNKNOWN),
tiebreaker_(0),
remote_candidate_generation_(0),
+ candidate_gathering_state_(Transport::kGatheringNew),
check_receiving_delay_(MIN_CHECK_RECEIVING_DELAY * 5),
receiving_timeout_(MIN_CHECK_RECEIVING_DELAY * 50) {
}
@@ -435,7 +436,7 @@ void P2PTransportChannel::OnPortReady(PortAllocatorSession *session,
// A new candidate is available, let listeners know
void P2PTransportChannel::OnCandidatesReady(
- PortAllocatorSession *session, const std::vector<Candidate>& candidates) {
+ PortAllocatorSession* session, const std::vector<Candidate>& candidates) {
ASSERT(worker_thread_ == rtc::Thread::Current());
for (size_t i = 0; i < candidates.size(); ++i) {
SignalCandidateReady(this, candidates[i]);
@@ -445,6 +446,7 @@ void P2PTransportChannel::OnCandidatesReady(
void P2PTransportChannel::OnCandidatesAllocationDone(
PortAllocatorSession* session) {
ASSERT(worker_thread_ == rtc::Thread::Current());
+ candidate_gathering_state_ = Transport::kGatheringDone;
SignalCandidatesAllocationDone(this);
}
@@ -631,16 +633,6 @@ void P2PTransportChannel::OnRoleConflict(PortInterface* port) {
// from Transport.
}
-// When the signalling channel is ready, we can really kick off the allocator
-void P2PTransportChannel::OnSignalingReady() {
- ASSERT(worker_thread_ == rtc::Thread::Current());
- if (waiting_for_signaling_) {
- waiting_for_signaling_ = false;
- AddAllocatorSession(allocator_->CreateSession(
- SessionId(), content_name(), component(), ice_ufrag_, ice_pwd_));
- }
-}
-
void P2PTransportChannel::OnUseCandidate(Connection* conn) {
ASSERT(worker_thread_ == rtc::Thread::Current());
ASSERT(ice_role_ == ICEROLE_CONTROLLED);
@@ -917,7 +909,7 @@ bool P2PTransportChannel::GetStats(ConnectionInfos *infos) {
std::vector<Connection *>::const_iterator it;
for (it = connections_.begin(); it != connections_.end(); ++it) {
- Connection *connection = *it;
+ Connection* connection = *it;
ConnectionInfo info;
info.best_connection = (best_connection_ == connection);
info.readable =
@@ -952,12 +944,15 @@ rtc::DiffServCodePoint P2PTransportChannel::DefaultDscpValue() const {
return static_cast<rtc::DiffServCodePoint> (it->second);
}
-// Begin allocate (or immediately re-allocate, if MSG_ALLOCATE pending)
+// Begin allocate
void P2PTransportChannel::Allocate() {
pthatcher1 2015/08/10 20:40:17 We could probably call this Gather() now
Taylor Brandstetter 2015/08/11 01:20:07 Done (I'll call it StartGatheringCandidates for cl
- // Time for a new allocator, lets make sure we have a signalling channel
- // to communicate candidates through first.
- waiting_for_signaling_ = true;
- SignalRequestSignaling(this);
+ // Time for a new allocator
+ if (candidate_gathering_state_ != Transport::kGatheringGathering) {
+ candidate_gathering_state_ = Transport::kGatheringGathering;
+ SignalCandidatesAllocationStarted(this);
+ }
+ AddAllocatorSession(allocator_->CreateSession(
+ SessionId(), content_name(), component(), ice_ufrag_, ice_pwd_));
}
// Monitor connection states.
@@ -1407,7 +1402,7 @@ void P2PTransportChannel::OnPortDestroyed(PortInterface* port) {
// We data is available, let listeners know
void P2PTransportChannel::OnReadPacket(
- Connection *connection, const char *data, size_t len,
+ Connection* connection, const char *data, size_t len,
const rtc::PacketTime& packet_time) {
ASSERT(worker_thread_ == rtc::Thread::Current());

Powered by Google App Engine
This is Rietveld 408576698