BasketRoutingManager

StockSharp.Algo.Basket

IBasketRoutingManager 默认执行。 管理 篮子适配器的路由逻辑 。

实现: IBasketRoutingManager

构造函数

BasketRoutingManager
public BasketRoutingManager(IAdapterConnectionState connectionState, IAdapterConnectionManager connectionManager, IPendingMessageState pendingState, ISubscriptionRoutingState subscriptionRouting, IParentChildMap parentChildMap, IOrderRoutingState orderRouting, Func<IMessageAdapter, IMessageAdapter> getUnderlyingAdapter, CandleBuilderProvider candleBuilderProvider, Func<bool> levelExtend, IdGenerator transactionIdGenerator, ILogReceiver logReceiver, IAdapterRouter router)
basketRoutingManager = BasketRoutingManager(connectionState, connectionManager, pendingState, subscriptionRouting, parentChildMap, orderRouting, getUnderlyingAdapter, candleBuilderProvider, levelExtend, transactionIdGenerator, logReceiver, router)

初始化 BasketRoutingManager 的新实例 。

属性

ConnectDisconnectEventOnFirstAdapter
public bool ConnectDisconnectEventOnFirstAdapter { get; set; }
value = basketRoutingManager.ConnectDisconnectEventOnFirstAdapter
basketRoutingManager.ConnectDisconnectEventOnFirstAdapter = value

当第一个适配器连接时, 将调用 ConnectMessage 事件。 如果, 则等待所有适配器连接 。

ConnectedCount
public int ConnectedCount { get; }
value = basketRoutingManager.ConnectedCount

获得连接适配器的计数 。

HasPendingAdapters
public bool HasPendingAdapters { get; }
value = basketRoutingManager.HasPendingAdapters

是否有适配器仍在连接中 。

TransactionIdGenerator
public IdGenerator TransactionIdGenerator { get; set; }
value = basketRoutingManager.TransactionIdGenerator
basketRoutingManager.TransactionIdGenerator = value

用于内部儿童订阅路由的 dication 生成器。 必须与 父适配器 的生成器同步 。

方法

AddOrderAdapter
public void AddOrderAdapter(long transactionId, IMessageAdapter adapter)
basketRoutingManager.AddOrderAdapter(transactionId, adapter)

添加订单交易到适配器映射 。

ApplyParentLookupId
public bool ApplyParentLookupId(ISubscriptionIdMessage msg)
result = basketRoutingManager.ApplyParentLookupId(msg)

将父搜索ID重新映射到订阅信件中 。

返回值: 如果找不到有效的父信件, 则信件应当删除 。

BeginConnect
public void BeginConnect()
basketRoutingManager.BeginConnect()

设置要连接的篮子状态 。

BeginDisconnect
public void BeginDisconnect()
basketRoutingManager.BeginDisconnect()

设置篮子状态以断开 。

CreateDefault
public static BasketRoutingManager CreateDefault(Func<IMessageAdapter, IMessageAdapter> getUnderlyingAdapter, CandleBuilderProvider candleBuilderProvider, Func<bool> levelExtend, IdGenerator transactionIdGenerator, ILogReceiver logReceiver)
result = BasketRoutingManager.CreateDefault(getUnderlyingAdapter, candleBuilderProvider, levelExtend, transactionIdGenerator, logReceiver)

创建带有默认状态组件的 BasketRoutingManager 的新实例 。

GetAdaptersToDisconnect
public IDictionary<IMessageAdapter, IMessageAdapter> GetAdaptersToDisconnect(Func<IMessageAdapter, IMessageAdapter> adapterLookup)
result = basketRoutingManager.GetAdaptersToDisconnect(adapterLookup)

找需要断开的适配器.

adapterLookup
从基本适配器获取包装的函数 。

返回值: 包口到下部适配器的词典.

GetPortfolioAdapter
public IMessageAdapter GetPortfolioAdapter(string portfolioName, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
result = basketRoutingManager.GetPortfolioAdapter(portfolioName, adapterLookup)

获取基于组合的路由的适配器 。

返回值: 找到适配器或无效 。

GetSubscribers
public long[] GetSubscribers(DataType dataType)
result = basketRoutingManager.GetSubscribers(dataType)

获取数据类型的用户ID。

InitializeAdapter
public void InitializeAdapter(IMessageAdapter adapter)
basketRoutingManager.InitializeAdapter(adapter)

连接前初始化适配器状态 。

LoadPortfolioAdapters
public void LoadPortfolioAdapters(IEnumerable<ValueTuple<string, IMessageAdapter>> mappings)
basketRoutingManager.LoadPortfolioAdapters(mappings)

清除并装入组合适配器映射.

LoadSecurityAdapters
public void LoadSecurityAdapters(IEnumerable<ValueTuple<ValueTuple<SecurityId, DataType>, IMessageAdapter>> mappings)
basketRoutingManager.LoadSecurityAdapters(mappings)

清理并装入金融仪器适配器映射.

OnAdapterRemoved
public void OnAdapterRemoved(IMessageAdapter adapter)
basketRoutingManager.OnAdapterRemoved(adapter)

调用时,适配器从内适配器列表中被删除.

OnAdaptersCleared
public void OnAdaptersCleared()
basketRoutingManager.OnAdaptersCleared()

调用时,所有适配器都从内适配器列表中清除出来.

OnPortfolioAdapterProviderChanged
public void OnPortfolioAdapterProviderChanged(string portfolioName, Guid adapterId, bool isAdd, Func<Guid, IMessageAdapter> findAdapter)
basketRoutingManager.OnPortfolioAdapterProviderChanged(portfolioName, adapterId, isAdd, findAdapter)

处理组合适配器提供者更改 。

OnSecurityAdapterProviderChanged
public void OnSecurityAdapterProviderChanged(ValueTuple<SecurityId, DataType> key, Guid adapterId, bool isAdd, Func<Guid, IMessageAdapter> findAdapter)
basketRoutingManager.OnSecurityAdapterProviderChanged(key, adapterId, isAdd, findAdapter)

处理金融工具适配器提供者变更.

ProcessBackMessage
public void ProcessBackMessage(IMessageAdapter adapter, ISubscriptionMessage subscrMsg, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
basketRoutingManager.ProcessBackMessage(adapter, subscrMsg, adapterLookup)

处理背面信息并进行订阅跟踪 。

ProcessConnect
public ValueTuple<IEnumerable<Message>, Message[], Message[]> ProcessConnect(IMessageAdapter adapter, IMessageAdapter wrapper, IEnumerable<MessageTypes> supportedMessages, Exception error)
result = basketRoutingManager.ProcessConnect(adapter, wrapper, supportedMessages, error)

进程成功或失败的连接 。

adapter
连接的适配器。
wrapper
适配器的包装.
supportedMessages
支持的消息类型 。
error
连接出错 。

返回值: 发送和等待发送的信件以回转的额外信件 。

ProcessDisconnect
public IEnumerable<Message> ProcessDisconnect(IMessageAdapter adapter, IMessageAdapter wrapper, IEnumerable<MessageTypes> supportedMessages, Exception error)
result = basketRoutingManager.ProcessDisconnect(adapter, wrapper, supportedMessages, error)

进程断开 。

adapter
适配器那个断开。
wrapper
适配器的包装.
supportedMessages
支持的消息类型 。
error
断开错误( 如果有的话) 。

返回值: 需要发送额外消息 。

ProcessInMessageAsync
public ValueTask<RoutingInResult> ProcessInMessageAsync(Message message, Func<IMessageAdapter, IMessageAdapter> adapterLookup, CancellationToken cancellationToken)
result = basketRoutingManager.ProcessInMessageAsync(message, adapterLookup, cancellationToken)

处理一个收到的消息,并确定路径决定。

ProcessOutMessageAsync
public ValueTask<RoutingOutResult> ProcessOutMessageAsync(IMessageAdapter innerAdapter, Message message, Func<IMessageAdapter, IMessageAdapter> adapterLookup, CancellationToken cancellationToken)
result = basketRoutingManager.ProcessOutMessageAsync(innerAdapter, message, adapterLookup, cancellationToken)

处理内置适配器发出的消息 。

Reset
public void Reset(bool clearPending)
basketRoutingManager.Reset(clearPending)

重置所有路由状态 。

clearPending
是否清除待处理信件 。
TryGetOrderAdapter
public bool TryGetOrderAdapter(long transactionId, IMessageAdapter adapter)
result = basketRoutingManager.TryGetOrderAdapter(transactionId, adapter)

尝试通过交易 ID 获得适配器以获得订单 。