func NewTrackingReadConn(cfg TrackingReadConnConfig) (*TrackingReadConn, error) {
	if err := cfg.CheckAndSetDefaults(); err != nil {
		return nil, trace.Wrap(err)
	}
	return &TrackingReadConn{
		cfg:        cfg,
		mtx:        sync.RWMutex{},
		Conn:       cfg.Conn,
		lastActive: time.Time{},
	}, nil
}
// NewTrackingReadConn returns a new tracking read connection.
NewTrackingReadConn returns a new tracking read connection.
// NewTrackingReadConn returns a new tracking read connection .
func NewTrackingReadConn(cfg TrackingReadConnConfig) (*TrackingReadConn, error) {
	if err := cfg.CheckAndSetDefaults(); err != nil {
		return nil, trace.Wrap(err)
	}
	return &TrackingReadConn{
		cfg:        cfg,
		mtx:        sync.RWMutex{},
		Conn:       cfg.Conn,
		lastActive: time.Time{},
	}, nil
}
func NewTrackingReadConn ( cfg TrackingReadConnConfig ) ( * TrackingReadConn , error ) { if err := cfg . CheckAndSetDefaults ( ) ; err != nil { return nil , trace . Wrap ( err ) } return & TrackingReadConn { cfg : cfg , mtx : sync . RWMutex { } , Conn : cfg . Conn , lastActive : time . Time { } , } , nil }
NewTrackingReadConn returns a new tracking read connection.
NewTrackingReadConn returns a new tracking read connection .