AdapterRouter

StockSharp.Algo.Basket

Default implementation of IAdapterRouter.

Implements: IAdapterRouter

Constructors

AdapterRouter
public AdapterRouter(IOrderRoutingState orderRouting, Func<IMessageAdapter, IMessageAdapter> getUnderlyingAdapter, CandleBuilderProvider candleBuilderProvider, Func<bool> levelExtend)
adapterRouter = AdapterRouter(orderRouting, getUnderlyingAdapter, candleBuilderProvider, levelExtend)

Initializes a new instance of AdapterRouter.

orderRouting
Order routing state.
getUnderlyingAdapter
Function to unwrap adapter to underlying.
candleBuilderProvider
Candle builder provider for subscription filtering.
levelExtend
Function returning Level1Extend setting.

Methods

AddMessageTypeAdapter
public void AddMessageTypeAdapter(MessageTypes type, IMessageAdapter adapter)
adapterRouter.AddMessageTypeAdapter(type, adapter)

Add adapter for specified message type.

AddNotSupported
public void AddNotSupported(long transactionId, IMessageAdapter adapter)
adapterRouter.AddNotSupported(transactionId, adapter)

Add adapter to non-supported set for a transaction (for retry logic).

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

Add order transaction to adapter mapping.

AddPortfolioAdapter
public void AddPortfolioAdapter(string key, IMessageAdapter adapter)
adapterRouter.AddPortfolioAdapter(key, adapter)

Add portfolio adapter mapping directly. Used during Load.

AddSecurityAdapter
public void AddSecurityAdapter(ValueTuple<SecurityId, DataType> key, IMessageAdapter adapter)
adapterRouter.AddSecurityAdapter(key, adapter)

Add security adapter mapping directly. Used during Load.

Clear
public void Clear()
adapterRouter.Clear()

Clear all routing state (message type adapters, non-supported adapters, security/portfolio caches).

ClearPortfolioAdapters
public void ClearPortfolioAdapters()
adapterRouter.ClearPortfolioAdapters()

Clear portfolio adapters cache. Used during Load.

ClearSecurityAdapters
public void ClearSecurityAdapters()
adapterRouter.ClearSecurityAdapters()

Clear security adapters cache. Used during Load.

GetAdapters
public ValueTuple<IMessageAdapter[], bool> GetAdapters(Message message, Func<IMessageAdapter, IMessageAdapter> getWrapper)
result = adapterRouter.GetAdapters(message, getWrapper)

Get adapters for a message based on message type, security, and filtering.

message
Message to route.
getWrapper
Function to resolve wrapper adapter from underlying adapter.

Returns: Matched adapters array and whether supported-message filtering was skipped.

GetPortfolioAdapter
public IMessageAdapter GetPortfolioAdapter(string portfolioName, Func<IMessageAdapter, IMessageAdapter> getWrapper)
result = adapterRouter.GetPortfolioAdapter(portfolioName, getWrapper)

Get adapter for portfolio-based routing.

portfolioName
Portfolio name.
getWrapper
Function to resolve wrapper adapter from underlying adapter.

Returns: Found adapter or null.

GetSubscriptionAdaptersAsync
public ValueTask<IMessageAdapter[]> GetSubscriptionAdaptersAsync(MarketDataMessage mdMsg, IMessageAdapter[] adapters, bool skipSupportedMessages, CancellationToken cancellationToken)
result = adapterRouter.GetSubscriptionAdaptersAsync(mdMsg, adapters, skipSupportedMessages, cancellationToken)

Get adapters for market data subscription with additional filtering (candles, build mode, etc.).

mdMsg
Market data message.
adapters
Pre-filtered adapters from IMessageAdapter}).
skipSupportedMessages
Whether supported-message filtering was skipped.
cancellationToken
CancellationToken

Returns: Filtered adapters.

RemoveMessageTypeAdapter
public void RemoveMessageTypeAdapter(MessageTypes type, IMessageAdapter adapter)
adapterRouter.RemoveMessageTypeAdapter(type, adapter)

Remove adapter for specified message type.

RemovePortfolioAdapter
public void RemovePortfolioAdapter(string portfolio)
adapterRouter.RemovePortfolioAdapter(portfolio)

Remove adapter for portfolio.

RemoveSecurityAdapter
public void RemoveSecurityAdapter(SecurityId secId, DataType dataType)
adapterRouter.RemoveSecurityAdapter(secId, dataType)

Remove adapter for specific security and data type.

SetPortfolioAdapter
public void SetPortfolioAdapter(string portfolio, IMessageAdapter adapter)
adapterRouter.SetPortfolioAdapter(portfolio, adapter)

Set adapter for portfolio.

SetSecurityAdapter
public void SetSecurityAdapter(SecurityId secId, DataType dataType, IMessageAdapter adapter)
adapterRouter.SetSecurityAdapter(secId, dataType, adapter)

Set adapter for specific security and data type.

TryGetOrderAdapter
public bool TryGetOrderAdapter(long transactionId, IMessageAdapter adapter)
result = adapterRouter.TryGetOrderAdapter(transactionId, adapter)

Try get adapter for order by transaction id.