Compare commits

...

2 Commits

Author SHA1 Message Date
50c7f98c37 adding notifications 2026-03-11 12:40:24 -03:00
48373b6855 fix store logs 2026-03-10 17:38:47 -03:00
2 changed files with 11 additions and 4 deletions

View File

@ -6,18 +6,21 @@ import (
"quantex.com/qfixdpl/quickfix" "quantex.com/qfixdpl/quickfix"
"quantex.com/qfixdpl/quickfix/gen/fix50sp2/quote" "quantex.com/qfixdpl/quickfix/gen/fix50sp2/quote"
"quantex.com/qfixdpl/src/domain"
) )
type application struct { type application struct {
router *quickfix.MessageRouter router *quickfix.MessageRouter
notifier domain.Notifier
onLogon func(quickfix.SessionID) onLogon func(quickfix.SessionID)
onLogout func(quickfix.SessionID) onLogout func(quickfix.SessionID)
onQuote func(quote.Quote, quickfix.SessionID) onQuote func(quote.Quote, quickfix.SessionID)
} }
func newApplication() *application { func newApplication(n domain.Notifier) *application {
app := &application{ app := &application{
router: quickfix.NewMessageRouter(), router: quickfix.NewMessageRouter(),
notifier: n,
} }
app.router.AddRoute(quote.Route(app.handleQuote)) 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) { func (a *application) OnLogout(sessionID quickfix.SessionID) {
slog.Info("FIX session logged out", "session", sessionID.String()) slog.Info("FIX session logged out", "session", sessionID.String())
a.notifier.SendMsg(domain.MessageChannelError, "Logout", domain.MessageStatusWarning, nil)
if a.onLogout != nil { if a.onLogout != nil {
a.onLogout(sessionID) a.onLogout(sessionID)
} }

View File

@ -13,6 +13,7 @@ import (
"quantex.com/qfixdpl/quickfix/gen/enum" "quantex.com/qfixdpl/quickfix/gen/enum"
"quantex.com/qfixdpl/quickfix/gen/field" "quantex.com/qfixdpl/quickfix/gen/field"
"quantex.com/qfixdpl/quickfix/gen/fix50sp2/quote" "quantex.com/qfixdpl/quickfix/gen/fix50sp2/quote"
"quantex.com/qfixdpl/quickfix/store/file"
"quantex.com/qfixdpl/src/app" "quantex.com/qfixdpl/src/app"
"quantex.com/qfixdpl/src/common/tracerr" "quantex.com/qfixdpl/src/common/tracerr"
"quantex.com/qfixdpl/src/domain" "quantex.com/qfixdpl/src/domain"
@ -39,7 +40,7 @@ func NewManager(cfg app.FIXConfig, orderStore domain.OrderStore, notify domain.N
} }
func (m *Manager) Start() error { func (m *Manager) Start() error {
fixApp := newApplication() fixApp := newApplication(m.notify)
fixApp.onLogon = m.onLogon fixApp.onLogon = m.onLogon
fixApp.onLogout = m.onLogout fixApp.onLogout = m.onLogout
m.app = fixApp m.app = fixApp
@ -61,7 +62,7 @@ func (m *Manager) Start() error {
return err return err
} }
storeFactory := quickfix.NewMemoryStoreFactory() storeFactory := file.NewStoreFactory(settings)
logFactory, err := quickfix.NewFileLogFactory(settings) logFactory, err := quickfix.NewFileLogFactory(settings)
if err != nil { if err != nil {
err = tracerr.Errorf("error creating file log factory: %s", err) err = tracerr.Errorf("error creating file log factory: %s", err)