Ejemplo n.º 1
0
        private void BroadcastReceiver()
        {
            log.Info("Starting broadcast receiver");

            try
            {
                Socket broadcast = broadcast_ctx.Socket(SocketType.SUB);
                broadcast.Subscribe("", Encoding.Unicode);
                broadcast.Connect(bcast_addr);

                while (true)
                {
                    ClientAdapterBroadcast message =
                        ClientAdapterBroadcast.ParseFrom(broadcast.Recv( ));

                    if (log.IsDebugEnabled)
                    {
                        log.Debug(" -b-> " + message.ToString());
                    }

                    dispatcher.OnBroadcastCallback(new BroadcastEventArgs(message));
                }
            }
            catch (System.Exception e)
            {
                log.Error("BroadcastReceiver exiting:", e);
            }
        }
Ejemplo n.º 2
0
        private void FireBroadcast(object sender, BroadcastEventArgs e)
        {
            ClientAdapterBroadcast broadcast = e.Data;

            if (broadcast.Type == ClientAdapterBroadcast.Types.BroadcastType.DEALING)
            {
                DealingEngineBroadcast dealing_broadcast = broadcast.DealingBroadcast;

                if (dealing_broadcast.Type == DealingEngineBroadcast.Types.BroadcastType.UPDATE_STATUS)
                {
                    foreach (SystemParameterData system_parameter in dealing_broadcast.SystemParameterList)
                    {
                        if ("send_to_fix".Equals(system_parameter.Name))
                        {
                            sendToFix.Checked   = "1".Equals(system_parameter.Value);
                            splitButton.Enabled = sendToFix.Checked;
                            return;
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public BroadcastEventArgs(ClientAdapterBroadcast data)
 {
     this.data = data;
 }
Ejemplo n.º 4
0
        private void FireBroadcast(object sender, BroadcastEventArgs e)
        {
            ClientAdapterBroadcast broadcast = e.Data;

            if (broadcast.Type == ClientAdapterBroadcast.Types.BroadcastType.DEALING)
            {
                DealingEngineBroadcast dealingBroadcast = broadcast.DealingBroadcast;

                if (dealingBroadcast.Type == DealingEngineBroadcast.Types.BroadcastType.ROLLOVER)
                {
                    orders.Clear();
                    releases.Clear();
                    executions.Clear();

                    dispatcher.RolloverCallback(new DealingEventArgs("ROLLOVER"));
                }

                foreach (OrderMessage order in dealingBroadcast.OrderList)
                {
                    if (order.HasOrderData)
                    {
                        Order o = new Order(order.OrderData);

                        foreach (AllocationData data in order.AllocationDataList)
                        {
                            o.AddAllocation(new Allocation(data));
                        }

                        Update(o);
                    }

                    foreach (ReleaseData data in order.ReleaseDataList)
                    {
                        Update(new Release(data));
                    }

                    foreach (ExecutionData data in order.ExecutionDataList)
                    {
                        Update(new Execution(data));
                    }
                }
            }
            else if (broadcast.Type == ClientAdapterBroadcast.Types.BroadcastType.MARKETDATA)
            {
                MarketDataBroadcast marketDataBroadcast = broadcast.MarketdataBroadcast;

                if (marketDataBroadcast.Type == MarketDataBroadcast.Types.BroadcastType.PRICE)
                {
                    foreach (MarketDataPriceData priceData in marketDataBroadcast.PriceDataList)
                    {
                        if (HasInstrument(priceData.InstrumentId))
                        {
                            Instrument instrument = (Instrument)instruments[priceData.InstrumentId];

                            instrument.SetAttribute(
                                DatabaseObject.LAST_PRC,
                                Convert.ToString(priceData.LastPrc));

                            dispatcher.InstrumentChangedCallback(
                                new MarketDataEventArgs(instrument));
                        }
                    }
                }
            }
        }