IBasketRoutingManager

StockSharp.Algo.Basket

Interface for managing message routing in basket adapter. Encapsulates all routing, connection, and subscription logic.

Properties

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

Gets or sets whether to fire connect/disconnect event on first adapter.

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

Gets the count of connected adapters.

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

Gets whether there are adapters still connecting.

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

Transaction id generator used for internal child subscription routing. Must be kept in sync with the parent adapter's generator.

Methods

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

Add order transaction to adapter mapping.

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

Apply parent lookup ID remapping to subscription message.

Returns: if no valid parent found and message should be dropped.

BeginConnect
public void BeginConnect()
iBasketRoutingManager.BeginConnect()

Begin connection process.

BeginDisconnect
public void BeginDisconnect()
iBasketRoutingManager.BeginDisconnect()

Begin disconnection process.

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

Get adapters that need to be disconnected.

adapterLookup
Function to get wrapper from underlying adapter.

Returns: Dictionary of wrapper to underlying adapter.

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

Get adapter for portfolio-based routing.

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

Get subscriber IDs for a data type.

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

Initialize adapter for connection.

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

Clear and load portfolio adapter mappings.

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

Clear and load security adapter mappings.

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

Called when an adapter is removed from the inner adapters list.

OnAdaptersCleared
public void OnAdaptersCleared()
iBasketRoutingManager.OnAdaptersCleared()

Called when all adapters are cleared from the inner adapters list.

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

Handle portfolio adapter provider change.

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

Handle security adapter provider change.

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

Process a back message with subscription tracking.

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

Process successful or failed connection.

adapter
The adapter that connected.
wrapper
The wrapper for the adapter.
supportedMessages
Supported message types.
error
Connection error if any.

Returns: Extra messages to send out and pending messages to loop back.

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

Process disconnection.

adapter
The adapter that disconnected.
wrapper
The wrapper for the adapter.
supportedMessages
Supported message types.
error
Disconnection error if any.

Returns: Extra messages to send out.

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

Process an incoming message and determine routing decisions.

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

Process an outgoing message from an inner adapter.

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

Reset all routing state.

clearPending
Whether to clear pending messages.
TryGetOrderAdapter
public bool TryGetOrderAdapter(long transactionId, IMessageAdapter adapter)
result = iBasketRoutingManager.TryGetOrderAdapter(transactionId, adapter)

Try get adapter for an order by its transaction ID.