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 }