Index: webrtc/p2p/base/transport.h |
diff --git a/webrtc/p2p/base/transport.h b/webrtc/p2p/base/transport.h |
index d7ebc9cbe4adbcdb2af886bb8dbb648dd2af8695..ffc725faf70aba6d104d759f811fdee6a551ae63 100644 |
--- a/webrtc/p2p/base/transport.h |
+++ b/webrtc/p2p/base/transport.h |
@@ -61,6 +61,14 @@ enum TransportState { |
TRANSPORT_STATE_ALL |
}; |
+// When checking transport state, we need to differentiate between |
+// "readable", "writable", or "flaky" check. |
+enum TransportStateType { |
+ TRANSPORT_READABLE_STATE = 0, |
+ TRANSPORT_WRITABLE_STATE, |
+ TRANSPORT_FLAKY_STATE |
pthatcher1
2015/06/26 19:24:03
TRANSPORT_RECEIVING_STATE
honghaiz3
2015/08/05 23:56:56
Done.
|
+}; |
+ |
// Stats that we can return about the connections for a transport channel. |
// TODO(hta): Rename to ConnectionStats |
struct ConnectionInfo { |
@@ -172,8 +180,13 @@ class Transport : public rtc::MessageHandler, |
bool all_channels_writable() const { |
return (writable_ == TRANSPORT_STATE_ALL); |
} |
+ bool all_channels_flaky() const { |
+ return (flaky_ == TRANSPORT_STATE_ALL); |
+ } |
+ |
sigslot::signal1<Transport*> SignalReadableState; |
sigslot::signal1<Transport*> SignalWritableState; |
+ sigslot::signal1<Transport*> SignalFlakyState; |
sigslot::signal1<Transport*> SignalCompleted; |
sigslot::signal1<Transport*> SignalFailed; |
@@ -363,6 +376,9 @@ class Transport : public rtc::MessageHandler, |
void OnChannelReadableState(TransportChannel* channel); |
void OnChannelWritableState(TransportChannel* channel); |
+ // Called when the flakiness of a channel changes. |
+ void OnChannelFlakyState(TransportChannel* channel); |
pthatcher1
2015/06/26 19:24:03
OnChannelReceivingState
honghaiz3
2015/08/05 23:56:57
Done.
|
+ |
// Called when a channel requests signaling. |
void OnChannelRequestSignaling(TransportChannelImpl* channel); |
@@ -393,6 +409,7 @@ class Transport : public rtc::MessageHandler, |
void OnRemoteCandidate_w(const Candidate& candidate); |
void OnChannelReadableState_s(); |
void OnChannelWritableState_s(); |
+ void OnChannelFlakyState_s(); |
void OnChannelRequestSignaling_s(); |
void OnConnecting_s(); |
void OnChannelRouteChange_s(const TransportChannel* channel, |
@@ -403,8 +420,9 @@ class Transport : public rtc::MessageHandler, |
typedef void (TransportChannelImpl::* TransportChannelFunc)(); |
void CallChannels_w(TransportChannelFunc func); |
- // Computes the OR of the channel's read or write state (argument picks). |
- TransportState GetTransportState_s(bool read); |
+ // Computes the AND and OR of the channel's read/write/flaky state |
+ // (argument picks the operation). |
+ TransportState GetTransportState_s(TransportStateType type); |
void OnChannelCandidateReady_s(); |
@@ -430,6 +448,7 @@ class Transport : public rtc::MessageHandler, |
bool destroyed_; |
TransportState readable_; |
TransportState writable_; |
+ TransportState flaky_; |
pthatcher1
2015/06/26 19:24:03
receiving_;
honghaiz3
2015/08/05 23:56:57
Done.
|
bool was_writable_; |
bool connect_requested_; |
IceRole ice_role_; |