Example #1
0
        public void Start()
        {
            try
            {
                // Assinar o recebimento de
                this.OnNegociosHandler = new MdsHttpClient.OnNegociosHandler(OnNegocios);
                MdsHttpClient.Instance.OnNegociosEvent += this.OnNegociosHandler;
                _running = true;

                _queueMsgs  = new Queue <MdsNegociosEventArgs>();
                _dicTrading = new Dictionary <string, MdsTradingInfo>();
                // Conectar ao streamer
                if (!this.ConnectToStreamer())
                {
                    logger.Info("Nao foi possivel conectar ao servidor Streamer");
                }

                _thProcessTrading = new Thread(new ThreadStart(this.ProcessMdsNegocios));
                _thProcessTrading.Start();
            }
            catch (Exception ex)
            {
                logger.Error("Problemas no start do StreamerManager: " + ex.Message, ex);
            }
        }
Example #2
0
        public void Stop()
        {
            try
            {
                _running = false;


                MdsHttpClient.Instance.OnNegociosEvent -= this.OnNegociosHandler;
                this.OnNegociosHandler = null;

                // Desassinar os papeis
                foreach (KeyValuePair <string, MdsTradingInfo> item in _dicTrading)
                {
                    MdsAssinatura mdsSign = new MdsAssinatura();
                    mdsSign.Instrumento = item.Key.ToUpper().Trim();
                    mdsSign.Sinal       = TipoSinal.CotacaoRapida;
                    MdsHttpClient.Instance.CancelaAssinatura(mdsSign);
                    logger.Info("Desassinando instrumento: " + item.Key);
                    mdsSign = null;
                }

                // Desconectar ao streamer
                if (!this.DisconnectStreamer())
                {
                    logger.Info("Nao foi possivel desconectar o Streamer!");
                }
                else
                {
                    logger.Info("Streamer desconectado!");
                }

                // Limpar controle de assinaturas
                if (null != _dicTrading)
                {
                    _dicTrading.Clear();
                    _dicTrading = null;
                }

                if (null != _queueMsgs)
                {
                    _queueMsgs.Clear();
                    _queueMsgs = null;
                }
            }
            catch (Exception ex)
            {
                logger.Error("Problemas no stop do StreamerManager: " + ex.Message, ex);
            }
        }