AdapterRouter
Default implementation of IAdapterRouter.
Implements: IAdapterRouter
Constructors
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
public void AddMessageTypeAdapter(MessageTypes type, IMessageAdapter adapter)
adapterRouter.AddMessageTypeAdapter(type, adapter)
Add adapter for specified message type.
public void AddNotSupported(long transactionId, IMessageAdapter adapter)
adapterRouter.AddNotSupported(transactionId, adapter)
Add adapter to non-supported set for a transaction (for retry logic).
public void AddOrderAdapter(long transactionId, IMessageAdapter adapter)
adapterRouter.AddOrderAdapter(transactionId, adapter)
Add order transaction to adapter mapping.
public void AddPortfolioAdapter(string key, IMessageAdapter adapter)
adapterRouter.AddPortfolioAdapter(key, adapter)
Add portfolio adapter mapping directly. Used during Load.
public void AddSecurityAdapter(ValueTuple<SecurityId, DataType> key, IMessageAdapter adapter)
adapterRouter.AddSecurityAdapter(key, adapter)
Add security adapter mapping directly. Used during Load.
public void Clear()
adapterRouter.Clear()
Clear all routing state (message type adapters, non-supported adapters, security/portfolio caches).
public void ClearPortfolioAdapters()
adapterRouter.ClearPortfolioAdapters()
Clear portfolio adapters cache. Used during Load.
public void ClearSecurityAdapters()
adapterRouter.ClearSecurityAdapters()
Clear security adapters cache. Used during Load.
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.
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.
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.
public void RemoveMessageTypeAdapter(MessageTypes type, IMessageAdapter adapter)
adapterRouter.RemoveMessageTypeAdapter(type, adapter)
Remove adapter for specified message type.
public void RemovePortfolioAdapter(string portfolio)
adapterRouter.RemovePortfolioAdapter(portfolio)
Remove adapter for portfolio.
public void RemoveSecurityAdapter(SecurityId secId, DataType dataType)
adapterRouter.RemoveSecurityAdapter(secId, dataType)
Remove adapter for specific security and data type.
public void SetPortfolioAdapter(string portfolio, IMessageAdapter adapter)
adapterRouter.SetPortfolioAdapter(portfolio, adapter)
Set adapter for portfolio.
public void SetSecurityAdapter(SecurityId secId, DataType dataType, IMessageAdapter adapter)
adapterRouter.SetSecurityAdapter(secId, dataType, adapter)
Set adapter for specific security and data type.
public bool TryGetOrderAdapter(long transactionId, IMessageAdapter adapter)
result = adapterRouter.TryGetOrderAdapter(transactionId, adapter)
Try get adapter for order by transaction id.