BasketRoutingManager
IBasketRoutingManager のデフォルト実装。 バスケットアダプターのメッセージルーティングロジックを管理します。
コンストラクター
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@ の新規インスタンスを初期化します。
プロパティ
public bool ConnectDisconnectEventOnFirstAdapter { get; set; }
value = basketRoutingManager.ConnectDisconnectEventOnFirstAdapter
basketRoutingManager.ConnectDisconnectEventOnFirstAdapter = value
アダプターが接続する際、ConnectMessageイベントを呼び出します。 アダプターが接続するすべてのアダプタを待ちます。
public int ConnectedCount { get; }
value = basketRoutingManager.ConnectedCount
接続されたアダプターのカウントを取得します。
public bool HasPendingAdapters { get; }
value = basketRoutingManager.HasPendingAdapters
アダプターが接続しているかどうか。
public IdGenerator TransactionIdGenerator { get; set; }
value = basketRoutingManager.TransactionIdGenerator
basketRoutingManager.TransactionIdGenerator = value
内部の子サブスクリプションルーティングに使用されるトランザクションIDジェネレータ。 親アダプターのジェネレータと同期して保存する必要があります。
メソッド
public void AddOrderAdapter(long transactionId, IMessageAdapter adapter)
basketRoutingManager.AddOrderAdapter(transactionId, adapter)
注文トランザクションをアダプターマッピングに追加します。
public bool ApplyParentLookupId(ISubscriptionIdMessage msg)
result = basketRoutingManager.ApplyParentLookupId(msg)
サブスクリプションメッセージに親のルックアップIDリマッピングを適用します。
戻り値: 有効な親が見つからない場合、メッセージが削除される必要があります。
public void BeginDisconnect()
basketRoutingManager.BeginDisconnect()
バスケットの状態を切断するように設定します。
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の新規インスタンスを作成します。
public IDictionary<IMessageAdapter, IMessageAdapter> GetAdaptersToDisconnect(Func<IMessageAdapter, IMessageAdapter> adapterLookup)
result = basketRoutingManager.GetAdaptersToDisconnect(adapterLookup)
接続解除が必要なアダプターを入手してください。
- adapterLookup
- アダプターを基底から抜く機能。
戻り値: アダプターを根ざすためにラッパーの辞書。
public IMessageAdapter GetPortfolioAdapter(string portfolioName, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
result = basketRoutingManager.GetPortfolioAdapter(portfolioName, adapterLookup)
ポートフォリオベースのルーティング用のアダプターを入手してください。
戻り値: アダプターまたは null が見つかります。
public long[] GetSubscribers(DataType dataType)
result = basketRoutingManager.GetSubscribers(dataType)
サブスクライブ ID をデータ型に取得します。
public void InitializeAdapter(IMessageAdapter adapter)
basketRoutingManager.InitializeAdapter(adapter)
接続する前にアダプターの状態を初期化します。
public void LoadPortfolioAdapters(IEnumerable<ValueTuple<string, IMessageAdapter>> mappings)
basketRoutingManager.LoadPortfolioAdapters(mappings)
ポートフォリオのアダプターマッピングをクリアしてロードします。
public void LoadSecurityAdapters(IEnumerable<ValueTuple<ValueTuple<SecurityId, DataType>, IMessageAdapter>> mappings)
basketRoutingManager.LoadSecurityAdapters(mappings)
金融機器のアダプターマッピングをクリアしてロードします。
public void OnAdapterRemoved(IMessageAdapter adapter)
basketRoutingManager.OnAdapterRemoved(adapter)
アダプターが内部アダプターリストから外されると呼び出されます。
public void OnAdaptersCleared()
basketRoutingManager.OnAdaptersCleared()
アダプターが内部アダプターリストからクリアされると呼び出されます。
public void OnPortfolioAdapterProviderChanged(string portfolioName, Guid adapterId, bool isAdd, Func<Guid, IMessageAdapter> findAdapter)
basketRoutingManager.OnPortfolioAdapterProviderChanged(portfolioName, adapterId, isAdd, findAdapter)
ハンドルポートフォリオアダプタープロバイダ変更。
public void OnSecurityAdapterProviderChanged(ValueTuple<SecurityId, DataType> key, Guid adapterId, bool isAdd, Func<Guid, IMessageAdapter> findAdapter)
basketRoutingManager.OnSecurityAdapterProviderChanged(key, adapterId, isAdd, findAdapter)
金融商品取引業者の交換を処理します。
public void ProcessBackMessage(IMessageAdapter adapter, ISubscriptionMessage subscrMsg, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
basketRoutingManager.ProcessBackMessage(adapter, subscrMsg, adapterLookup)
サブスクリプショントラッキングでバックメッセージを処理します。
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
- 接続エラーの場合。
戻り値: メッセージを送信し、メッセージを送信してループバックに送る余分なメッセージ。
public IEnumerable<Message> ProcessDisconnect(IMessageAdapter adapter, IMessageAdapter wrapper, IEnumerable<MessageTypes> supportedMessages, Exception error)
result = basketRoutingManager.ProcessDisconnect(adapter, wrapper, supportedMessages, error)
プロセス切断。
- adapter
- 接続解除されたアダプタ。
- wrapper
- アダプターのラッパー。
- supportedMessages
- 対応するメッセージタイプ。
- error
- どんな場合も、接続エラーを解除します。
戻り値: 送信する余分メッセージ。
public ValueTask<RoutingInResult> ProcessInMessageAsync(Message message, Func<IMessageAdapter, IMessageAdapter> adapterLookup, CancellationToken cancellationToken)
result = basketRoutingManager.ProcessInMessageAsync(message, adapterLookup, cancellationToken)
着信メッセージの処理とルーティングの決定の決定
public ValueTask<RoutingOutResult> ProcessOutMessageAsync(IMessageAdapter innerAdapter, Message message, Func<IMessageAdapter, IMessageAdapter> adapterLookup, CancellationToken cancellationToken)
result = basketRoutingManager.ProcessOutMessageAsync(innerAdapter, message, adapterLookup, cancellationToken)
外部のアダプターから発信メッセージを処理する。
public void Reset(bool clearPending)
basketRoutingManager.Reset(clearPending)
すべてのルーティング状態をリセットします。
- clearPending
- 送信メッセージのクリアかどうか。
public bool TryGetOrderAdapter(long transactionId, IMessageAdapter adapter)
result = basketRoutingManager.TryGetOrderAdapter(transactionId, adapter)
トランザクションIDで注文するアダプターをゲットしてください。