From 9aba17eb902676fbee51f81bb9d9283f70408a54 Mon Sep 17 00:00:00 2001 From: Piotr Piotrowski Date: Wed, 14 Dec 2022 16:55:09 +0100 Subject: [PATCH] [ADDED] Getters for connection callbacks --- nats.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/nats.go b/nats.go index 84ef4c512..5a7b401e8 100644 --- a/nats.go +++ b/nats.go @@ -1285,6 +1285,16 @@ func (nc *Conn) SetDisconnectErrHandler(dcb ConnErrHandler) { nc.Opts.DisconnectedErrCB = dcb } +// DisconnectErrHandler will return the disconnect event handler. +func (nc *Conn) DisconnectErrHandler() ConnErrHandler { + if nc == nil { + return nil + } + nc.mu.Lock() + defer nc.mu.Unlock() + return nc.Opts.DisconnectedErrCB +} + // SetReconnectHandler will set the reconnect event handler. func (nc *Conn) SetReconnectHandler(rcb ConnHandler) { if nc == nil { @@ -1295,6 +1305,16 @@ func (nc *Conn) SetReconnectHandler(rcb ConnHandler) { nc.Opts.ReconnectedCB = rcb } +// ReconnectHandler will return the reconnect event handler. +func (nc *Conn) ReconnectHandler() ConnHandler { + if nc == nil { + return nil + } + nc.mu.Lock() + defer nc.mu.Unlock() + return nc.Opts.ReconnectedCB +} + // SetDiscoveredServersHandler will set the discovered servers handler. func (nc *Conn) SetDiscoveredServersHandler(dscb ConnHandler) { if nc == nil { @@ -1305,6 +1325,16 @@ func (nc *Conn) SetDiscoveredServersHandler(dscb ConnHandler) { nc.Opts.DiscoveredServersCB = dscb } +// DiscoveredServersHandler will return the discovered servers handler. +func (nc *Conn) DiscoveredServersHandler() ConnHandler { + if nc == nil { + return nil + } + nc.mu.Lock() + defer nc.mu.Unlock() + return nc.Opts.DiscoveredServersCB +} + // SetClosedHandler will set the closed event handler. func (nc *Conn) SetClosedHandler(cb ConnHandler) { if nc == nil { @@ -1315,6 +1345,16 @@ func (nc *Conn) SetClosedHandler(cb ConnHandler) { nc.Opts.ClosedCB = cb } +// ClosedHandler will return the closed event handler. +func (nc *Conn) ClosedHandler() ConnHandler { + if nc == nil { + return nil + } + nc.mu.Lock() + defer nc.mu.Unlock() + return nc.Opts.ClosedCB +} + // SetErrorHandler will set the async error handler. func (nc *Conn) SetErrorHandler(cb ErrHandler) { if nc == nil { @@ -1325,6 +1365,16 @@ func (nc *Conn) SetErrorHandler(cb ErrHandler) { nc.Opts.AsyncErrorCB = cb } +// ErrorHandler will return the async error handler. +func (nc *Conn) ErrorHandler() ErrHandler { + if nc == nil { + return nil + } + nc.mu.Lock() + defer nc.mu.Unlock() + return nc.Opts.AsyncErrorCB +} + // Process the url string argument to Connect. // Return an array of urls, even if only one. func processUrlString(url string) []string {