Index: webrtc/p2p/base/transport.h |
diff --git a/webrtc/p2p/base/transport.h b/webrtc/p2p/base/transport.h |
index 10b289ce2082864c53a00def0c7c4d19511beb9c..a3daa39fbdbe80c25804fd5334be6c283524c93f 100644 |
--- a/webrtc/p2p/base/transport.h |
+++ b/webrtc/p2p/base/transport.h |
@@ -65,21 +65,6 @@ enum IceGatheringState { |
kIceGatheringComplete, |
}; |
-// For "writable" and "receiving", we need to differentiate between |
-// none, all, and some. |
-enum TransportState { |
- TRANSPORT_STATE_NONE = 0, |
- TRANSPORT_STATE_SOME, |
- TRANSPORT_STATE_ALL |
-}; |
- |
-// When checking transport state, we need to differentiate between |
-// "writable" or "receiving" check. |
-enum TransportStateType { |
- TRANSPORT_WRITABLE_STATE = 0, |
- TRANSPORT_RECEIVING_STATE |
-}; |
- |
// Stats that we can return about the connections for a transport channel. |
// TODO(hta): Rename to ConnectionStats |
struct ConnectionInfo { |
@@ -165,37 +150,10 @@ class Transport : public sigslot::has_slots<> { |
// Returns the port allocator object for this transport. |
PortAllocator* port_allocator() { return allocator_; } |
- // Returns the states of this manager. These bits are the ORs |
- // of the corresponding bits on the managed channels. Each time one of these |
- // states changes, a signal is raised. |
- // TODO(honghaiz): Replace uses of writable() with any_channels_writable(). |
- bool writable() const { return any_channels_writable(); } |
- bool was_writable() const { return was_writable_; } |
- bool any_channels_writable() const { |
- return (writable_ == TRANSPORT_STATE_SOME || |
- writable_ == TRANSPORT_STATE_ALL); |
- } |
- bool all_channels_writable() const { |
- return (writable_ == TRANSPORT_STATE_ALL); |
- } |
- bool any_channel_receiving() const { |
- return (receiving_ == TRANSPORT_STATE_SOME || |
- receiving_ == TRANSPORT_STATE_ALL); |
- } |
bool ready_for_remote_candidates() const { |
return local_description_set_ && remote_description_set_; |
} |
- bool AllChannelsCompleted() const; |
- bool AnyChannelFailed() const; |
- |
- IceGatheringState gathering_state() const { return gathering_state_; } |
- |
- sigslot::signal1<Transport*> SignalWritableState; |
- sigslot::signal1<Transport*> SignalReceivingState; |
- sigslot::signal1<Transport*> SignalCompleted; |
- sigslot::signal1<Transport*> SignalFailed; |
- |
// Returns whether the client has requested the channels to connect. |
bool connect_requested() const { return connect_requested_; } |
@@ -229,6 +187,7 @@ class Transport : public sigslot::has_slots<> { |
return (NULL != GetChannel(component)); |
} |
bool HasChannels(); |
+ |
void DestroyChannel(int component); |
// Set the local TransportDescription to be used by TransportChannels. |
@@ -241,10 +200,8 @@ class Transport : public sigslot::has_slots<> { |
ContentAction action, |
std::string* error_desc); |
- // Tells all current and future channels to start connecting. When the first |
- // channel begins connecting, the following signal is raised. |
+ // Tells all current and future channels to start connecting. |
void ConnectChannels(); |
- sigslot::signal1<Transport*> SignalConnecting; |
// Tells channels to start gathering candidates if necessary. |
// Should be called after ConnectChannels() has been called at least once, |
@@ -260,12 +217,6 @@ class Transport : public sigslot::has_slots<> { |
bool GetStats(TransportStats* stats); |
- sigslot::signal1<Transport*> SignalGatheringState; |
- |
- // Handles sending of ready candidates and receiving of remote candidates. |
- sigslot::signal2<Transport*, const std::vector<Candidate>&> |
- SignalCandidatesGathered; |
- |
// Called when one or more candidates are ready from the remote peer. |
bool AddRemoteCandidates(const std::vector<Candidate>& candidates, |
std::string* error); |
@@ -275,14 +226,6 @@ class Transport : public sigslot::has_slots<> { |
virtual bool VerifyCandidate(const Candidate& candidate, |
std::string* error); |
- // Signals when the best connection for a channel changes. |
- sigslot::signal3<Transport*, |
- int, // component |
- const Candidate&> SignalRouteChange; |
- |
- // Forwards the signal from TransportChannel to BaseSession. |
- sigslot::signal0<> SignalRoleConflict; |
- |
virtual bool GetSslRole(rtc::SSLRole* ssl_role) const { return false; } |
// Must be called before channel is starting to connect. |
@@ -335,74 +278,16 @@ class Transport : public sigslot::has_slots<> { |
std::string* error_desc); |
private: |
- struct ChannelMapEntry { |
- ChannelMapEntry() : impl_(NULL), ref_(0) {} |
- explicit ChannelMapEntry(TransportChannelImpl *impl) |
- : impl_(impl), |
- ref_(0) { |
- } |
- |
- void AddRef() { ++ref_; } |
- void DecRef() { |
- ASSERT(ref_ > 0); |
- --ref_; |
- } |
- int ref() const { return ref_; } |
- |
- TransportChannelImpl* get() const { return impl_; } |
- TransportChannelImpl* operator->() const { return impl_; } |
- |
- private: |
- TransportChannelImpl* impl_; |
- int ref_; |
- }; |
- |
- // Candidate component => ChannelMapEntry |
- typedef std::map<int, ChannelMapEntry> ChannelMap; |
- |
- // Called when the write state of a channel changes. |
- void OnChannelWritableState(TransportChannel* channel); |
- |
- // Called when the receiving state of a channel changes. |
- void OnChannelReceivingState(TransportChannel* channel); |
- |
- // Called when a channel starts finishes gathering candidates |
- void OnChannelGatheringState(TransportChannelImpl* channel); |
- |
- // Called when a candidate is ready from channel. |
- void OnChannelCandidateGathered(TransportChannelImpl* channel, |
- const Candidate& candidate); |
- void OnChannelRouteChange(TransportChannel* channel, |
- const Candidate& remote_candidate); |
- // Called when there is ICE role change. |
- void OnRoleConflict(TransportChannelImpl* channel); |
- // Called when the channel removes a connection. |
- void OnChannelConnectionRemoved(TransportChannelImpl* channel); |
+ // Candidate component => TransportChannelImpl* |
+ typedef std::map<int, TransportChannelImpl*> ChannelMap; |
// Helper function that invokes the given function on every channel. |
typedef void (TransportChannelImpl::* TransportChannelFunc)(); |
void CallChannels(TransportChannelFunc func); |
- // Computes the AND and OR of the channel's read/write/receiving state |
- // (argument picks the operation). |
- TransportState GetTransportState(TransportStateType type); |
- |
- // Sends SignalCompleted if we are now in that state. |
- void MaybeSignalCompleted(); |
- |
- // Sends SignalGatheringState if gathering state changed |
- void UpdateGatheringState(); |
- |
- void UpdateWritableState(); |
- void UpdateReceivingState(); |
- |
const std::string name_; |
PortAllocator* const allocator_; |
bool channels_destroyed_ = false; |
- TransportState readable_ = TRANSPORT_STATE_NONE; |
- TransportState writable_ = TRANSPORT_STATE_NONE; |
- TransportState receiving_ = TRANSPORT_STATE_NONE; |
- bool was_writable_ = false; |
bool connect_requested_ = false; |
IceRole ice_role_ = ICEROLE_UNKNOWN; |
uint64 tiebreaker_ = 0; |
@@ -412,7 +297,6 @@ class Transport : public sigslot::has_slots<> { |
rtc::scoped_ptr<TransportDescription> remote_description_; |
bool local_description_set_ = false; |
bool remote_description_set_ = false; |
- IceGatheringState gathering_state_ = kIceGatheringNew; |
ChannelMap channels_; |