BasketRoutingManager
Реализация IBasketRoutingManager по умолчанию. Управляет логикой маршрутизации сообщений для адаптера корзины.
Реализует: 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
Генератор идентификаторов транзакций, используемый для внутренней маршрутизации подписки на ребенка, должен быть синхронизирован с генератором родительского адаптера.
Методы
public void AddOrderAdapter(long transactionId, IMessageAdapter adapter)
basketRoutingManager.AddOrderAdapter(transactionId, adapter)
Добавьте транзакцию заказа в сопоставление адаптера.
public bool ApplyParentLookupId(ISubscriptionIdMessage msg)
result = basketRoutingManager.ApplyParentLookupId(msg)
Примените переназначение родительского идентификатора поиска к сообщению о подписке.
Возвращает: если действительный родительский элемент не найден и сообщение должно быть удалено.
public void BeginConnect()
basketRoutingManager.BeginConnect()
Устанавливает состояние корзины на подключение.
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)
Получите адаптер для маршрутизации на основе портфеля.
Возвращает: Найден адаптер или ноль.
public long[] GetSubscribers(DataType dataType)
result = basketRoutingManager.GetSubscribers(dataType)
Получите идентификаторы подписчиков для типа данных.
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)
Попробуйте получить адаптер для заказа по идентификатору транзакции.