IBasketRoutingManager
Interface for managing message routing in basket adapter. Encapsulates all routing, connection, and subscription logic.
Properties
public bool ConnectDisconnectEventOnFirstAdapter { get; set; }
value = iBasketRoutingManager.ConnectDisconnectEventOnFirstAdapter
iBasketRoutingManager.ConnectDisconnectEventOnFirstAdapter = value
Gets or sets whether to fire connect/disconnect event on first adapter.
public int ConnectedCount { get; }
value = iBasketRoutingManager.ConnectedCount
Gets the count of connected adapters.
public bool HasPendingAdapters { get; }
value = iBasketRoutingManager.HasPendingAdapters
Gets whether there are adapters still connecting.
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
public void AddOrderAdapter(long transactionId, IMessageAdapter adapter)
iBasketRoutingManager.AddOrderAdapter(transactionId, adapter)
Add order transaction to adapter mapping.
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.
public void BeginConnect()
iBasketRoutingManager.BeginConnect()
Begin connection process.
public void BeginDisconnect()
iBasketRoutingManager.BeginDisconnect()
Begin disconnection process.
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.
public IMessageAdapter GetPortfolioAdapter(string portfolioName, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
result = iBasketRoutingManager.GetPortfolioAdapter(portfolioName, adapterLookup)
Get adapter for portfolio-based routing.
public long[] GetSubscribers(DataType dataType)
result = iBasketRoutingManager.GetSubscribers(dataType)
Get subscriber IDs for a data type.
public void InitializeAdapter(IMessageAdapter adapter)
iBasketRoutingManager.InitializeAdapter(adapter)
Initialize adapter for connection.
public void LoadPortfolioAdapters(IEnumerable<ValueTuple<string, IMessageAdapter>> mappings)
iBasketRoutingManager.LoadPortfolioAdapters(mappings)
Clear and load portfolio adapter mappings.
public void LoadSecurityAdapters(IEnumerable<ValueTuple<ValueTuple<SecurityId, DataType>, IMessageAdapter>> mappings)
iBasketRoutingManager.LoadSecurityAdapters(mappings)
Clear and load security adapter mappings.
public void OnAdapterRemoved(IMessageAdapter adapter)
iBasketRoutingManager.OnAdapterRemoved(adapter)
Called when an adapter is removed from the inner adapters list.
public void OnAdaptersCleared()
iBasketRoutingManager.OnAdaptersCleared()
Called when all adapters are cleared from the inner adapters list.
public void OnPortfolioAdapterProviderChanged(string portfolioName, Guid adapterId, bool isAdd, Func<Guid, IMessageAdapter> findAdapter)
iBasketRoutingManager.OnPortfolioAdapterProviderChanged(portfolioName, adapterId, isAdd, findAdapter)
Handle portfolio adapter provider change.
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.
public void ProcessBackMessage(IMessageAdapter adapter, ISubscriptionMessage subscrMsg, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
iBasketRoutingManager.ProcessBackMessage(adapter, subscrMsg, adapterLookup)
Process a back message with subscription tracking.
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.
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.
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.
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.
public void Reset(bool clearPending)
iBasketRoutingManager.Reset(clearPending)
Reset all routing state.
- clearPending
- Whether to clear pending messages.
public bool TryGetOrderAdapter(long transactionId, IMessageAdapter adapter)
result = iBasketRoutingManager.TryGetOrderAdapter(transactionId, adapter)
Try get adapter for an order by its transaction ID.