BasketRoutingManager

StockSharp.Algo.Basket

IBasketRoutingManager のデフォルト実装。 バスケットアダプターのメッセージルーティングロジックを管理します。

実装: IBasketRoutingManager

コンストラクター

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)

BasketRoutingManager@ の新規インスタンスを初期化します。

プロパティ

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

アダプターが接続する際、ConnectMessageイベントを呼び出します。 アダプターが接続するすべてのアダプタを待ちます。

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

接続されたアダプターのカウントを取得します。

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

アダプターが接続しているかどうか。

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

内部の子サブスクリプションルーティングに使用されるトランザクションIDジェネレータ。 親アダプターのジェネレータと同期して保存する必要があります。

メソッド

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

注文トランザクションをアダプターマッピングに追加します。

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

サブスクリプションメッセージに親のルックアップIDリマッピングを適用します。

戻り値: 有効な親が見つからない場合、メッセージが削除される必要があります。

BeginConnect
public void BeginConnect()
basketRoutingManager.BeginConnect()

接続するバスケットの状態を設定します。

BeginDisconnect
public void BeginDisconnect()
basketRoutingManager.BeginDisconnect()

バスケットの状態を切断するように設定します。

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)

デフォルトステートコンポーネントでBasketRoutingManagerの新規インスタンスを作成します。

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

接続解除が必要なアダプターを入手してください。

adapterLookup
アダプターを基底から抜く機能。

戻り値: アダプターを根ざすためにラッパーの辞書。

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

ポートフォリオベースのルーティング用のアダプターを入手してください。

戻り値: アダプターまたは null が見つかります。

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

サブスクライブ ID をデータ型に取得します。

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

接続する前にアダプターの状態を初期化します。

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

ポートフォリオのアダプターマッピングをクリアしてロードします。

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

金融機器のアダプターマッピングをクリアしてロードします。

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

アダプターが内部アダプターリストから外されると呼び出されます。

OnAdaptersCleared
public void OnAdaptersCleared()
basketRoutingManager.OnAdaptersCleared()

アダプターが内部アダプターリストからクリアされると呼び出されます。

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

ハンドルポートフォリオアダプタープロバイダ変更。

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

金融商品取引業者の交換を処理します。

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

サブスクリプショントラッキングでバックメッセージを処理します。

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

プロセスの成功または失敗した関係。

adapter
接続するアダプタ。
wrapper
アダプターのラッパー。
supportedMessages
対応するメッセージタイプ。
error
接続エラーの場合。

戻り値: メッセージを送信し、メッセージを送信してループバックに送る余分なメッセージ。

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

プロセス切断。

adapter
接続解除されたアダプタ。
wrapper
アダプターのラッパー。
supportedMessages
対応するメッセージタイプ。
error
どんな場合も、接続エラーを解除します。

戻り値: 送信する余分メッセージ。

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

着信メッセージの処理とルーティングの決定の決定

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

外部のアダプターから発信メッセージを処理する。

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

すべてのルーティング状態をリセットします。

clearPending
送信メッセージのクリアかどうか。
TryGetOrderAdapter
public bool TryGetOrderAdapter(long transactionId, IMessageAdapter adapter)
result = basketRoutingManager.TryGetOrderAdapter(transactionId, adapter)

トランザクションIDで注文するアダプターをゲットしてください。