コード例 #1
0
        private static void ProcessMarketOrder(string queueName, MarketOrder[] orders)
        {
            var sessionInfo = SessionInfo.Instance.dicQueueSession.First(s => s.MessageQueue == queueName);

            Logger.InfoFormat("Получено {0} ордеров из очереди {1}", orders.Length, queueName);
            foreach (var order in orders)
            {
                Message msg;
                try
                {
                    msg = FixMessageMaker.Instance.MakeMessage(order, sessionInfo);
                }
                catch (Exception ex)
                {
                    Logger.Error("ProcessMarketOrder: ошибка форматирования сообщения", ex);
                    continue;
                }
                if (msg == null)
                {
                    continue;
                }
                try
                {
                    FixApplication.SendMessage(msg);
                }
                catch (Exception ex)
                {
                    Logger.Error("ProcessMarketOrder: ошибка отправки сообщения", ex);
                }
            }
        }
コード例 #2
0
        private static void RequestTicker(string ticker, SessionID sessionId)
        {
            if (sessionId == null)
            {
                return;
            }
            Message msg;

            try
            {
                msg = MakeQuoteRequest(ticker, sessionId);
            }
            catch (Exception ex)
            {
                Logger.Error("QuoteRequest.RequestTicker: ошибка форматирования сообщения", ex);
                return;
            }
            if (msg == null)
            {
                Logger.ErrorFormat("Ошибка сборки сообщения (запрос котировки) для {0}, {1}", ticker, sessionId);
                return;
            }
            try
            {
                Logger.InfoFormat("Отправка запроса \"{0}\": {1}", ticker, msg);
                FixApplication.SendMessage(msg);
            }
            catch (Exception ex)
            {
                Logger.Error("QuoteRequest.RequestTicker: ошибка отправки сообщения", ex);
            }
        }
コード例 #3
0
        private FixProxyServer()
        {
            quoteRequest = new QuoteRequest();
            FileStoreFactory      mesStoreFact;
            DefaultMessageFactory mesFact;

            SessionSettings sets;

            try
            {
                sets = new SessionSettings(string.Format("{0}\\{1}",
                                                         ExecutablePath.ExecPath,
                                                         SessionSettingsParser.SessionSettingsFileName));
                SessionSettingsParser.Init(string.Format("{0}\\{1}",
                                                         ExecutablePath.ExecPath,
                                                         SessionSettingsParser.SessionSettingsFileName));
                app = new FixApplication();
                app.processMessageFromBroker += MessageDispatcher.ProcessMessageFromBroker;
                mesStoreFact = new FileStoreFactory(string.Format("{0}\\log",
                                                                  ExecutablePath.ExecPath));
                mesFact = new DefaultMessageFactory();

                app.OnSessionLogon += AppOnSessionLogon;
            }
            catch (Exception ex)
            {
                Logger.Error("SocketInitiator pre-create error", ex);
                throw;
            }

            try
            {
                initiator = new SocketInitiator(app, mesStoreFact, sets, mesFact);
            }
            catch (Exception ex)
            {
                Logger.Error("SocketInitiator create error", ex);
                throw;
            }
        }