diff --git a/src/client/fix/application.go b/src/client/fix/application.go index 8b6868f..77d2e86 100644 --- a/src/client/fix/application.go +++ b/src/client/fix/application.go @@ -6,18 +6,21 @@ import ( "quantex.com/qfixdpl/quickfix" "quantex.com/qfixdpl/quickfix/gen/fix50sp2/quote" + "quantex.com/qfixdpl/src/domain" ) type application struct { router *quickfix.MessageRouter + notifier domain.Notifier onLogon func(quickfix.SessionID) onLogout func(quickfix.SessionID) onQuote func(quote.Quote, quickfix.SessionID) } -func newApplication() *application { +func newApplication(n domain.Notifier) *application { app := &application{ - router: quickfix.NewMessageRouter(), + router: quickfix.NewMessageRouter(), + notifier: n, } app.router.AddRoute(quote.Route(app.handleQuote)) @@ -38,6 +41,9 @@ func (a *application) OnLogon(sessionID quickfix.SessionID) { func (a *application) OnLogout(sessionID quickfix.SessionID) { slog.Info("FIX session logged out", "session", sessionID.String()) + + a.notifier.SendMsg(domain.MessageChannelError, "Logout", domain.MessageStatusWarning, nil) + if a.onLogout != nil { a.onLogout(sessionID) } diff --git a/src/client/fix/manager.go b/src/client/fix/manager.go index 3ff68f3..3eb26c7 100644 --- a/src/client/fix/manager.go +++ b/src/client/fix/manager.go @@ -40,7 +40,7 @@ func NewManager(cfg app.FIXConfig, orderStore domain.OrderStore, notify domain.N } func (m *Manager) Start() error { - fixApp := newApplication() + fixApp := newApplication(m.notify) fixApp.onLogon = m.onLogon fixApp.onLogout = m.onLogout m.app = fixApp