Chromium Code Reviews| 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_; |