Compare commits
2 Commits
1d32854a09
...
50c7f98c37
| Author | SHA1 | Date | |
|---|---|---|---|
| 50c7f98c37 | |||
| 48373b6855 |
@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user