func (c *Connection) IntrospectState(opts *IntrospectionOptions) ConnectionRuntimeState {
	c.stateMut.RLock()
	defer c.stateMut.RUnlock()

	// TODO(prashantv): Add total number of health checks, and health check options.
	state := ConnectionRuntimeState{
		ID:               c.connID,
		ConnectionState:  c.state.String(),
		LocalHostPort:    c.conn.LocalAddr().String(),
		RemoteHostPort:   c.conn.RemoteAddr().String(),
		OutboundHostPort: c.outboundHP,
		RemotePeer:       c.remotePeerInfo,
		InboundExchange:  c.inbound.IntrospectState(opts),
		OutboundExchange: c.outbound.IntrospectState(opts),
		HealthChecks:     c.healthCheckHistory.asBools(),
		LastActivity:     c.lastActivity.Load(),
	}
	if c.relay != nil {
		state.Relayer = c.relay.IntrospectState(opts)
	}
	return state
}
func (c *Connection) IntrospectState(opts *IntrospectionOptions) ConnectionRuntimeState {
	c.stateMut.RLock()
	defer c.stateMut.RUnlock()

	
	state := ConnectionRuntimeState{
		ID:               c.connID,
		ConnectionState:  c.state.String(),
		LocalHostPort:    c.conn.LocalAddr().String(),
		RemoteHostPort:   c.conn.RemoteAddr().String(),
		OutboundHostPort: c.outboundHP,
		RemotePeer:       c.remotePeerInfo,
		InboundExchange:  c.inbound.IntrospectState(opts),
		OutboundExchange: c.outbound.IntrospectState(opts),
		HealthChecks:     c.healthCheckHistory.asBools(),
		LastActivity:     c.lastActivity.Load(),
	}
	if c.relay != nil {
		state.Relayer = c.relay.IntrospectState(opts)
	}
	return state
}
func ( c * Connection ) IntrospectState ( opts * IntrospectionOptions ) ConnectionRuntimeState { c . stateMut . RLock ( ) defer c . stateMut . RUnlock ( ) // TODO(prashantv): Add total number of health checks, and health check options. state := ConnectionRuntimeState { ID : c . connID , ConnectionState : c . state . String ( ) , LocalHostPort : c . conn . LocalAddr ( ) . String ( ) , RemoteHostPort : c . conn . RemoteAddr ( ) . String ( ) , OutboundHostPort : c . outboundHP , RemotePeer : c . remotePeerInfo , InboundExchange : c . inbound . IntrospectState ( opts ) , OutboundExchange : c . outbound . IntrospectState ( opts ) , HealthChecks : c . healthCheckHistory . asBools ( ) , LastActivity : c . lastActivity . Load ( ) , } if c . relay != nil { state . Relayer = c . relay . IntrospectState ( opts ) } return state }
// IntrospectState returns the runtime state for this connection.
IntrospectState returns the runtime state for this connection .