Chromium Code Reviews| Index: webrtc/p2p/base/port.h | 
| diff --git a/webrtc/p2p/base/port.h b/webrtc/p2p/base/port.h | 
| index 37926c955603a3f27918270b5b43b177cdccddf9..94214b09bdd15047b5755eac00bcd3536b810c80 100644 | 
| --- a/webrtc/p2p/base/port.h | 
| +++ b/webrtc/p2p/base/port.h | 
| @@ -122,6 +122,7 @@ typedef std::set<rtc::SocketAddress> ServerAddresses; | 
| class Port : public PortInterface, public rtc::MessageHandler, | 
| public sigslot::has_slots<> { | 
| public: | 
| + enum class State { INIT, READY, PRUNED }; | 
| 
 
pthatcher1
2016/07/28 19:35:05
This could use a description of states.  Such as:
 
honghaiz3
2016/07/28 22:51:44
Done.
 
 | 
| Port(rtc::Thread* thread, | 
| const std::string& type, | 
| rtc::PacketSocketFactory* factory, | 
| @@ -153,6 +154,11 @@ class Port : public PortInterface, public rtc::MessageHandler, | 
| virtual bool SharedSocket() const { return shared_socket_; } | 
| void ResetSharedSocket() { shared_socket_ = false; } | 
| + // Called when a port is ready to use. | 
| + void BecomeReady(); | 
| 
 
pthatcher1
2016/07/28 19:35:05
I think a better name would be "KeepAliveUntilPrun
 
honghaiz3
2016/07/28 22:51:44
Done.
 
 | 
| + // Called when a port is pruned. | 
| 
 
pthatcher1
2016/07/28 19:35:05
A better comment would be "Allows the port to be d
 
honghaiz3
2016/07/28 22:52:28
Done.
 
 | 
| + void Prune(); | 
| + | 
| // The thread on which this port performs its I/O. | 
| rtc::Thread* thread() { return thread_; } | 
| @@ -297,10 +303,7 @@ class Port : public PortInterface, public rtc::MessageHandler, | 
| int16_t network_cost() const { return network_cost_; } | 
| protected: | 
| - enum { | 
| - MSG_DEAD = 0, | 
| - MSG_FIRST_AVAILABLE | 
| - }; | 
| + enum { MSG_CHECK_DEAD = 0, MSG_FIRST_AVAILABLE }; | 
| 
 
pthatcher1
2016/07/28 19:35:05
MSG_MAYBE_DESTORY might be a better name than MSG_
 
honghaiz3
2016/07/28 22:51:44
Using MSG_DESTROY_IF_DEAD.
 
 | 
| virtual void UpdateNetworkCost(); | 
| @@ -357,11 +360,8 @@ class Port : public PortInterface, public rtc::MessageHandler, | 
| // Called when one of our connections deletes itself. | 
| void OnConnectionDestroyed(Connection* conn); | 
| - // Whether this port is dead, and hence, should be destroyed on the controlled | 
| - // side. | 
| - bool dead() const { | 
| - return ice_role_ == ICEROLE_CONTROLLED && connections_.empty(); | 
| - } | 
| + // Whether this port is dead, and hence, should be destroyed. | 
| + bool dead() const; | 
| void OnNetworkTypeChanged(const rtc::Network* network); | 
| @@ -401,6 +401,7 @@ class Port : public PortInterface, public rtc::MessageHandler, | 
| // (WiFi. vs. Cellular). It takes precedence over the priority when | 
| // comparing two connections. | 
| uint16_t network_cost_; | 
| + State state_ = State::INIT; | 
| friend class Connection; | 
| }; |