コード例 #1
0
        public StudioRegistryConnector(IConnector studioConnector)
        {
            EntityFactory = new StudioConnectorEntityFactory();

            MarketDataAdapter  = _adapter = new PassThroughMessageAdapter(new PassThroughSessionHolder(TransactionIdGenerator));
            TransactionAdapter = new PassThroughMessageAdapter(new PassThroughSessionHolder(TransactionIdGenerator));

            ApplyMessageProcessor(MessageDirections.In, true, true);
            ApplyMessageProcessor(MessageDirections.Out, true, true);

            _entityRegistry = ConfigManager.GetService <IStudioEntityRegistry>();
            _entityRegistry.Securities.Added += s => _adapter.SendOutMessage(s.ToMessage(GetSecurityId(s)));
            _entityRegistry.Portfolios.Added += p => _adapter.SendOutMessage(p.ToMessage());

            var cmdSvc = ConfigManager.GetService <IStudioCommandService>();

            //cmdSvc.Register<LookupSecuritiesCommand>(this, cmd => LookupSecurities(cmd.Criteria));
            cmdSvc.Register <RequestPortfoliosCommand>(this, false, cmd => Portfolios.ForEach(pf => new PortfolioCommand(pf, true).Process(this)));

            NewPortfolios += portfolios => portfolios.ForEach(pf => new PortfolioCommand(pf, true).Process(this));
            //NewPositions += positions => positions.ForEach(pos => new PositionCommand(pos, true).Process(this));

            // для корректной работы правил коннектор всегда должен быть реальным
            //NewSecurities += securities => securities.ForEach(s => s.Connector = studioConnector);
            NewPortfolios += portfolios => portfolios.ForEach(p => p.Connector = studioConnector);
        }
コード例 #2
0
ファイル: StudioConnector.cs プロジェクト: ychaim/StockSharp
        protected override void OnConnect()
        {
            Task.Factory.StartNew(() =>
            {
                base.OnConnect();

                Securities.ForEach(s => _adapter.SendOutMessage(s.ToMessage(GetSecurityId(s))));
                Portfolios.ForEach(p => _adapter.SendOutMessage(p.ToMessage()));
            });
        }
コード例 #3
0
 protected override void OnStartExport()
 {
     base.OnStartExport();
     Securities.ForEach(s => _adapter.SendOutMessage(s.ToMessage(GetSecurityId(s))));
     Portfolios.ForEach(p => _adapter.SendOutMessage(p.ToMessage()));
 }