Add Quickfix library #1

Merged
RamiroPaz merged 9 commits from quickfix into develop 2026-03-12 15:32:10 +00:00
1241 changed files with 1408926 additions and 261 deletions
Showing only changes of commit 50c7f98c37 - Show all commits

View File

@ -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(),
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)
}

View File

@ -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