func main() { flag.Parse() cfgFileName := "ordermatch.cfg" if flag.NArg() > 0 { cfgFileName = flag.Arg(0) } cfg, err := os.Open(cfgFileName) if err != nil { fmt.Printf("Error opening %v, %v\n", cfgFileName, err) return } appSettings, err := quickfix.ParseSettings(cfg) if err != nil { fmt.Println("Error reading cfg,", err) return } logFactory := quickfix.NewScreenLogFactory() app := newApplication() acceptor, err := quickfix.NewAcceptor(app, quickfix.NewMemoryStoreFactory(), appSettings, logFactory) if err != nil { fmt.Printf("Unable to create Acceptor: %s\n", err) return } err = acceptor.Start() if err != nil { fmt.Printf("Unable to start Acceptor: %s\n", err) return } interrupt := make(chan os.Signal) signal.Notify(interrupt, os.Interrupt, os.Kill) go func() { <-interrupt acceptor.Stop() os.Exit(0) }() scanner := bufio.NewScanner(os.Stdin) for { scanner.Scan() switch value := scanner.Text(); value { case "#symbols": app.Display() default: app.DisplayMarket(value) } } }
func main() { flag.Parse() cfgFileName := path.Join("config", "executor.cfg") if flag.NArg() > 0 { cfgFileName = flag.Arg(0) } cfg, err := os.Open(cfgFileName) if err != nil { fmt.Printf("Error opening %v, %v\n", cfgFileName, err) return } appSettings, err := quickfix.ParseSettings(cfg) if err != nil { fmt.Println("Error reading cfg,", err) return } logFactory := quickfix.NewScreenLogFactory() app := newExecutor() acceptor, err := quickfix.NewAcceptor(app, quickfix.NewMemoryStoreFactory(), appSettings, logFactory) if err != nil { fmt.Printf("Unable to create Acceptor: %s\n", err) return } err = acceptor.Start() if err != nil { fmt.Printf("Unable to start Acceptor: %s\n", err) return } interrupt := make(chan os.Signal) signal.Notify(interrupt, os.Interrupt, os.Kill) <-interrupt acceptor.Stop() }
func NewSellSideSimulator(logger string) *SellSideSimulator { mc := &SellSideSimulator{} // QuickFIX settings appSettings := quickfix.NewSettings() var settings *quickfix.SessionSettings settings = appSettings.GlobalSettings() settings.Set("SocketAcceptPort", "5001") settings.Set("SenderCompID", "CORP") settings.Set("TargetCompID", "CYAN") settings.Set("ResetOnLogon", "Y") settings.Set("FileLogPath", "tmp") settings = quickfix.NewSessionSettings() settings.Set("BeginString", "FIX.4.4") appSettings.AddSession(settings) app := NewExecutor() var logFactory quickfix.LogFactory switch logger { case "console": logFactory = quickfix.NewScreenLogFactory() default: logFactory = quickfix.NewNullLogFactory() } acceptor, err := quickfix.NewAcceptor(app, quickfix.NewMemoryStoreFactory(), appSettings, logFactory) if err != nil { log.Panic(err) } mc.acceptor = acceptor return mc }