Example #1
0
        private void iniciaCanal()
        {
            if (!channelConfig.IsNewsChannel)
            {
                secListProc = new SecurityListProcessor(channelState, channelConfig, monitorConfig);
                channelState.SecListProc             = secListProc;
                secListProc.OnSecurityListCompleted += new SecurityListProcessor.OnSecurityListCompletedHandler(OnSecurityListCompleted);

                mktRecvProc = new MarketRecoveryProcessor(channelState, channelConfig, monitorConfig);
                mktRecvProc.OnRecoveryStarted   += new MarketRecoveryProcessor.OnRecoveryStartedHandler(OnRecoveryStarted);
                mktRecvProc.OnRecoveryCompleted += new MarketRecoveryProcessor.OnRecoveryCompletedHandler(OnRecoveryCompleted);
                channelState.MktRecvProc         = mktRecvProc;

                mktIncrProc = new MarketIncrementalProcessor(channelState, channelConfig, monitorConfig);
                channelState.MktIncrProc = mktIncrProc;

                secListProc.Start();
            }
            else
            {
                mktIncrProc = new MarketIncrementalProcessor(channelState, channelConfig, monitorConfig);
                channelState.MktIncrProc = mktIncrProc;

                mktIncrProc.Start();

                Thread.Sleep(200);

                mktIncrProc.StartPacketProcessing(0);
            }
        }
Example #2
0
 public static TCPReplayBMF GetInstance(MarketIncrementalProcessor mktIncProc, ChannelUMDFConfig channelConfig, string templateFile, Queue <UdpPacket> qUdpPkt, Object replayLockObject)
 {
     if (_me == null)
     {
         lock (_mutex)
         {
             if (_me == null)
             {
                 _me = new TCPReplayBMF(mktIncProc, channelConfig, templateFile, qUdpPkt, replayLockObject);
             }
         }
     }
     return(_me);
 }
Example #3
0
        public FixInitiator(MarketIncrementalProcessor mktIncProc, ChannelUMDFConfig channelUmdfConfig, string templateFile, Queue <UdpPacket> qUdpPkt, Object replayLockObject)
        {
            logger = LogManager.GetLogger("FixInitiator-" + channelUmdfConfig.ChannelID);

            MDSUtils.AddAppender("FixInitiator-" + channelUmdfConfig.ChannelID, logger.Logger);

            XMLMessageTemplateLoader loader = new XMLMessageTemplateLoader();

            registry = UmdfUtils.loadTemplates(templateFile);
            context  = new Context();
            context.TemplateRegistry = registry;

            _mktIncProc        = mktIncProc;
            _channelUmdfConfig = channelUmdfConfig;

            if (!listaChannelQueues.ContainsKey(channelUmdfConfig.ChannelID))
            {
                listaChannelQueues.Add(channelUmdfConfig.ChannelID, new ListChannelQueues(qUdpPkt, replayLockObject));
            }

            logger.Info("Start(): iniciando sessao FIX...");
            try
            {
                // Cria sessao FIX
                _session = new QuickFix.SessionID(
                    _channelUmdfConfig.TCPConfig.BeginString,
                    _channelUmdfConfig.TCPReplayConfig.SenderCompID,
                    _channelUmdfConfig.TCPReplayConfig.SubID,
                    _channelUmdfConfig.TCPReplayConfig.TargetCompID,
                    _channelUmdfConfig.TCPReplayConfig.SubID);

                // Cria dicionario da configuracao
                QuickFix.Dictionary mainDic = new QuickFix.Dictionary();
                mainDic.SetLong("SocketConnectPort", _channelUmdfConfig.TCPReplayConfig.SocketConnectPort);
                mainDic.SetLong("HeartBtInt", _channelUmdfConfig.TCPConfig.HeartBtInt);
                mainDic.SetLong("ReconnectInterval", _channelUmdfConfig.TCPConfig.ReconnectInterval);
                mainDic.SetBool("ResetOnLogon", _channelUmdfConfig.TCPConfig.ResetOnLogon);
                mainDic.SetBool("ResetOnLogout", _channelUmdfConfig.TCPConfig.ResetOnLogout);
                mainDic.SetBool("ResetOnDisconnect", _channelUmdfConfig.TCPConfig.ResetOnDisconnect);
                mainDic.SetBool("PersistMessages", _channelUmdfConfig.TCPConfig.PersistMessages);
                mainDic.SetString("ConnectionType", _channelUmdfConfig.TCPConfig.ConnectionType);
                mainDic.SetString("SocketConnectHost", _channelUmdfConfig.TCPReplayConfig.SocketConnectHost);
                mainDic.SetString("FileStorePath", _channelUmdfConfig.TCPConfig.FileStorePath);
                mainDic.SetString("FileLogPath", _channelUmdfConfig.TCPConfig.FileLogPath);
                mainDic.SetString("StartTime", _channelUmdfConfig.TCPReplayConfig.StartTime);
                mainDic.SetString("EndTime", _channelUmdfConfig.TCPReplayConfig.EndTime);

                QuickFix.Dictionary sessDic = new QuickFix.Dictionary();
                sessDic.SetString("BeginString", _channelUmdfConfig.TCPConfig.BeginString);
                sessDic.SetString("SenderCompID", _channelUmdfConfig.TCPReplayConfig.SenderCompID);
                sessDic.SetString("SenderSubID", _channelUmdfConfig.TCPReplayConfig.SubID);
                sessDic.SetString("TargetCompID", _channelUmdfConfig.TCPReplayConfig.TargetCompID);
                sessDic.SetString("TargetSubID", _channelUmdfConfig.TCPReplayConfig.SubID);
                sessDic.SetString("DataDictionary", _channelUmdfConfig.TCPConfig.DataDictionary);
                sessDic.SetBool("UseDataDictionary", true);

                // Configure the session settings
                QuickFix.SessionSettings settings = new QuickFix.SessionSettings();

                settings.Set(mainDic);
                settings.Set(_session, sessDic);

                MemoryStoreFactory store   = new MemoryStoreFactory();
                FileLogFactory     log     = new FileLogFactory(settings);
                IMessageFactory    message = new DefaultMessageFactory();

                // Cria o socket
                _initiator = new QuickFix.Transport.SocketInitiator(this, store, settings, log, message);
                _initiator.Start();
            }
            catch (Exception ex)
            {
                logger.Error("Start():" + ex.Message, ex);
            }

            logger.Info("Start(): Sessao FIX iniciado!");
        }
Example #4
0
 public TCPReplayBovespa(MarketIncrementalProcessor mktIncProc, ChannelUMDFConfig channelConfig, string templateFile, Queue <UdpPacket> qUdpPkt, Object replayLockObject)
     : base(mktIncProc, channelConfig, templateFile, qUdpPkt, replayLockObject)
 {
 }