BasketRoutingManager

StockSharp.Algo.Basket

Standardimplementierung von IBasketRoutingManager @ Verwaltet Nachrichten-Routing-Logik für den Korbadapter.

Implementiert: IBasketRoutingManager

Konstruktoren

BasketRoutingManager
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

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

Um das ConnectMessage-Ereignis aufzurufen, wenn sich der erste Adapter verbindet.

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

Bekommt die Anzahl der angeschlossenen Adapter.

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

Ob ein Adapter noch angeschlossen ist.

TransactionIdGenerator
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

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

Fügen Sie die Ordertransaktion zum Adapter-Mapping hinzu.

ApplyParentLookupId
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.

BeginConnect
public void BeginConnect()
basketRoutingManager.BeginConnect()

Setzt den Korbzustand auf die Verbindung.

BeginDisconnect
public void BeginDisconnect()
basketRoutingManager.BeginDisconnect()

Setzt den Korbzustand auf Trennen.

CreateDefault
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.

GetAdaptersToDisconnect
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.

GetPortfolioAdapter
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.

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

Abonnenten-IDs für einen Datentyp abrufen.

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

Initialisiert den Adapterzustand vor dem Verbinden.

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

Deaktivieren und Laden von Portfolio-Adapter-Mappings.

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

Zuordnungen zu Finanzinstrumenten sind zu klären und zu laden.

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

Aufruf, wenn ein Adapter aus der Liste der inneren Adapter entfernt wird.

OnAdaptersCleared
public void OnAdaptersCleared()
basketRoutingManager.OnAdaptersCleared()

Aufrufen, wenn alle Adapter aus der Liste der inneren Adapter gelöscht wurden.

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

Änderung des Portfolio-Adapter-Anbieters.

OnSecurityAdapterProviderChanged
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.

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

Verarbeiten Sie eine Rückmeldung mit Abonnement-Tracking.

ProcessConnect
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.

ProcessDisconnect
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.

ProcessInMessageAsync
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.

ProcessOutMessageAsync
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.

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

Setzen Sie den Routing-Status zurück.

clearPending
Ob anstehende Nachrichten gelöscht werden.
TryGetOrderAdapter
public bool TryGetOrderAdapter(long transactionId, IMessageAdapter adapter)
result = basketRoutingManager.TryGetOrderAdapter(transactionId, adapter)

Versuchen Sie, Adapter für die Bestellung per Transaktions-ID zu erhalten.