github.com/argoproj/argo-events@v1.9.1/eventbus/jetstream/base/jetstream_conn.go (about)

     1  package base
     2  
     3  import (
     4  	"fmt"
     5  
     6  	nats "github.com/nats-io/nats.go"
     7  	"go.uber.org/zap"
     8  )
     9  
    10  type JetstreamConnection struct {
    11  	NATSConn  *nats.Conn
    12  	JSContext nats.JetStreamContext
    13  
    14  	NATSConnected bool
    15  
    16  	Logger *zap.SugaredLogger
    17  }
    18  
    19  func (jsc *JetstreamConnection) Close() error {
    20  	if jsc == nil {
    21  		return fmt.Errorf("can't close Jetstream connection, JetstreamConnection is nil")
    22  	}
    23  	if jsc.NATSConn != nil && jsc.NATSConn.IsConnected() {
    24  		jsc.NATSConn.Close()
    25  	}
    26  	return nil
    27  }
    28  
    29  func (jsc *JetstreamConnection) IsClosed() bool {
    30  	return jsc == nil || jsc.NATSConn == nil || !jsc.NATSConnected || jsc.NATSConn.IsClosed()
    31  }