in tchannel-core/src/main/java/com/uber/tchannel/channels/Connection.java [74:89]
public boolean satisfy(@Nullable ConnectionState preferredState) {
synchronized (lock) {
ConnectionState connState = this.state;
if (connState == ConnectionState.DESTROYED) {
return false;
} else if (preferredState == null) {
return true;
} else if (connState == preferredState || connState == ConnectionState.IDENTIFIED) {
return true;
} else if (connState == ConnectionState.CONNECTED && preferredState == ConnectionState.UNCONNECTED) {
return true;
} else {
return false;
}
}
}