BasketRoutingManager
Standardimplementierung von IBasketRoutingManager @ Verwaltet Nachrichten-Routing-Logik für den Korbadapter.
Implementiert: IBasketRoutingManager
Konstruktoren
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)
Initialisiert eine neue Instanz von BasketRoutingManager.
Eigenschaften
public bool ConnectDisconnectEventOnFirstAdapter { get; set; }
value = basketRoutingManager.ConnectDisconnectEventOnFirstAdapter
basketRoutingManager.ConnectDisconnectEventOnFirstAdapter = value
Um das ConnectMessage-Ereignis aufzurufen, wenn sich der erste Adapter verbindet.
public int ConnectedCount { get; }
value = basketRoutingManager.ConnectedCount
Bekommt die Anzahl der angeschlossenen Adapter.
public bool HasPendingAdapters { get; }
value = basketRoutingManager.HasPendingAdapters
Ob ein Adapter noch angeschlossen ist.
public IdGenerator TransactionIdGenerator { get; set; }
value = basketRoutingManager.TransactionIdGenerator
basketRoutingManager.TransactionIdGenerator = value
Transaktions-ID-Generator für internes Kinderabonnement-Routing: muss synchron mit dem Generator des übergeordneten Adapters gehalten werden.
Methoden
public void AddOrderAdapter(long transactionId, IMessageAdapter adapter)
basketRoutingManager.AddOrderAdapter(transactionId, adapter)
Fügen Sie die Ordertransaktion zum Adapter-Mapping hinzu.
public bool ApplyParentLookupId(ISubscriptionIdMessage msg)
result = basketRoutingManager.ApplyParentLookupId(msg)
Anwenden von Parent Lookup ID Remapping auf die Abonnementnachricht.
Rückgabe: wenn kein gültiger elternteil gefunden und die nachricht gelöscht werden sollte.
public void BeginConnect()
basketRoutingManager.BeginConnect()
Setzt den Korbzustand auf die Verbindung.
public void BeginDisconnect()
basketRoutingManager.BeginDisconnect()
Setzt den Korbzustand auf Trennen.
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)
Erstellt eine neue Instanz von BasketRoutingManager mit Standardzustandskomponenten.
public IDictionary<IMessageAdapter, IMessageAdapter> GetAdaptersToDisconnect(Func<IMessageAdapter, IMessageAdapter> adapterLookup)
result = basketRoutingManager.GetAdaptersToDisconnect(adapterLookup)
Holen Sie sich Adapter, die getrennt werden müssen.
- adapterLookup
- Funktion, um Wrapper vom zugrunde liegenden Adapter zu erhalten.
Rückgabe: Wörterbuch des Wrappers zum zugrunde liegenden Adapter.
public IMessageAdapter GetPortfolioAdapter(string portfolioName, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
result = basketRoutingManager.GetPortfolioAdapter(portfolioName, adapterLookup)
Holen Sie sich einen Adapter für portfoliobasiertes Routing.
Rückgabe: gefunden Adapter oder null.
public long[] GetSubscribers(DataType dataType)
result = basketRoutingManager.GetSubscribers(dataType)
Abonnenten-IDs für einen Datentyp abrufen.
public void InitializeAdapter(IMessageAdapter adapter)
basketRoutingManager.InitializeAdapter(adapter)
Initialisiert den Adapterzustand vor dem Verbinden.
public void LoadPortfolioAdapters(IEnumerable<ValueTuple<string, IMessageAdapter>> mappings)
basketRoutingManager.LoadPortfolioAdapters(mappings)
Deaktivieren und Laden von Portfolio-Adapter-Mappings.
public void LoadSecurityAdapters(IEnumerable<ValueTuple<ValueTuple<SecurityId, DataType>, IMessageAdapter>> mappings)
basketRoutingManager.LoadSecurityAdapters(mappings)
Zuordnungen zu Finanzinstrumenten sind zu klären und zu laden.
public void OnAdapterRemoved(IMessageAdapter adapter)
basketRoutingManager.OnAdapterRemoved(adapter)
Aufruf, wenn ein Adapter aus der Liste der inneren Adapter entfernt wird.
public void OnAdaptersCleared()
basketRoutingManager.OnAdaptersCleared()
Aufrufen, wenn alle Adapter aus der Liste der inneren Adapter gelöscht wurden.
public void OnPortfolioAdapterProviderChanged(string portfolioName, Guid adapterId, bool isAdd, Func<Guid, IMessageAdapter> findAdapter)
basketRoutingManager.OnPortfolioAdapterProviderChanged(portfolioName, adapterId, isAdd, findAdapter)
Änderung des Portfolio-Adapter-Anbieters.
public void OnSecurityAdapterProviderChanged(ValueTuple<SecurityId, DataType> key, Guid adapterId, bool isAdd, Func<Guid, IMessageAdapter> findAdapter)
basketRoutingManager.OnSecurityAdapterProviderChanged(key, adapterId, isAdd, findAdapter)
Änderung des Finanzinstrumentadapters handhaben.
public void ProcessBackMessage(IMessageAdapter adapter, ISubscriptionMessage subscrMsg, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
basketRoutingManager.ProcessBackMessage(adapter, subscrMsg, adapterLookup)
Verarbeiten Sie eine Rückmeldung mit Abonnement-Tracking.
public ValueTuple<IEnumerable<Message>, Message[], Message[]> ProcessConnect(IMessageAdapter adapter, IMessageAdapter wrapper, IEnumerable<MessageTypes> supportedMessages, Exception error)
result = basketRoutingManager.ProcessConnect(adapter, wrapper, supportedMessages, error)
Erfolgreiche oder fehlgeschlagene Verbindung verarbeiten.
- adapter
- Der Adapter, der angeschlossen ist.
- wrapper
- Der Wrapper für den Adapter.
- supportedMessages
- Unterstützte Nachrichtentypen.
- error
- Verbindungsfehler (falls vorhanden).
Rückgabe: Zusätzliche Nachrichten zum Versenden und ausstehende Nachrichten zum Zurückschleifen.
public IEnumerable<Message> ProcessDisconnect(IMessageAdapter adapter, IMessageAdapter wrapper, IEnumerable<MessageTypes> supportedMessages, Exception error)
result = basketRoutingManager.ProcessDisconnect(adapter, wrapper, supportedMessages, error)
Prozessabschaltung.
- adapter
- Der Adapter, der sich getrennt hat.
- wrapper
- Der Wrapper für den Adapter.
- supportedMessages
- Unterstützte Nachrichtentypen.
- error
- Gegebenenfalls Trennfehler.
Rückgabe: Extra Nachrichten zum Versenden.
public ValueTask<RoutingInResult> ProcessInMessageAsync(Message message, Func<IMessageAdapter, IMessageAdapter> adapterLookup, CancellationToken cancellationToken)
result = basketRoutingManager.ProcessInMessageAsync(message, adapterLookup, cancellationToken)
Verarbeiten Sie eine eingehende Nachricht und bestimmen Sie Routing-Entscheidungen.
public ValueTask<RoutingOutResult> ProcessOutMessageAsync(IMessageAdapter innerAdapter, Message message, Func<IMessageAdapter, IMessageAdapter> adapterLookup, CancellationToken cancellationToken)
result = basketRoutingManager.ProcessOutMessageAsync(innerAdapter, message, adapterLookup, cancellationToken)
Verarbeiten Sie eine ausgehende Nachricht von einem inneren Adapter.
public void Reset(bool clearPending)
basketRoutingManager.Reset(clearPending)
Setzen Sie den Routing-Status zurück.
- clearPending
- Ob anstehende Nachrichten gelöscht werden.
public bool TryGetOrderAdapter(long transactionId, IMessageAdapter adapter)
result = basketRoutingManager.TryGetOrderAdapter(transactionId, adapter)
Versuchen Sie, Adapter für die Bestellung per Transaktions-ID zu erhalten.