BasketRoutingManager
Implementação padrão de IBasketRoutingManager. Gerencia a lógica de roteamento de mensagens para o adaptador de cesta.
Implementa: IBasketRoutingManager
Construtores
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)
Inicializa uma nova instância de BasketRoutingManager.
Propriedades
public bool ConnectDisconnectEventOnFirstAdapter { get; set; }
value = basketRoutingManager.ConnectDisconnectEventOnFirstAdapter
basketRoutingManager.ConnectDisconnectEventOnFirstAdapter = value
Para chamar o evento ConnectMessage quando o primeiro adaptador se conecta. Se , espera que todos os adaptadores se conectem.
public int ConnectedCount { get; }
value = basketRoutingManager.ConnectedCount
Obtém a contagem de adaptadores conectados.
public bool HasPendingAdapters { get; }
value = basketRoutingManager.HasPendingAdapters
Se algum adaptador ainda está se conectando.
public IdGenerator TransactionIdGenerator { get; set; }
value = basketRoutingManager.TransactionIdGenerator
basketRoutingManager.TransactionIdGenerator = value
Gerador de ID de transação usado para roteamento interno da assinatura do filho. Deve ser mantido em sincronia com o gerador do adaptador pai.
Métodos
public void AddOrderAdapter(long transactionId, IMessageAdapter adapter)
basketRoutingManager.AddOrderAdapter(transactionId, adapter)
Adicionar transação de ordem ao mapeamento do adaptador.
public bool ApplyParentLookupId(ISubscriptionIdMessage msg)
result = basketRoutingManager.ApplyParentLookupId(msg)
Aplicar o ID de pesquisa pai a remapear a mensagem de subscrição.
Retorna: se não for encontrado nenhum pai válido e a mensagem for retirada.
public void BeginConnect()
basketRoutingManager.BeginConnect()
Define o estado da cesta para a conexão.
public void BeginDisconnect()
basketRoutingManager.BeginDisconnect()
Define o estado da cesta para desconectar.
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)
Cria uma nova instância de BasketRoutingManager com componentes de estado padrão.
public IDictionary<IMessageAdapter, IMessageAdapter> GetAdaptersToDisconnect(Func<IMessageAdapter, IMessageAdapter> adapterLookup)
result = basketRoutingManager.GetAdaptersToDisconnect(adapterLookup)
Obtenha adaptadores que precisam ser desconectados.
- adapterLookup
- Função para obter o invólucro do adaptador subjacente.
Retorna: Dicionário de embalagem para adaptador subjacente.
public IMessageAdapter GetPortfolioAdapter(string portfolioName, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
result = basketRoutingManager.GetPortfolioAdapter(portfolioName, adapterLookup)
Obtenha o adaptador para roteamento baseado em portfólio.
Retorna: Encontrou adaptador ou nulo.
public long[] GetSubscribers(DataType dataType)
result = basketRoutingManager.GetSubscribers(dataType)
Obtenha IDs de assinante para um tipo de dados.
public void InitializeAdapter(IMessageAdapter adapter)
basketRoutingManager.InitializeAdapter(adapter)
Inicializa o estado do adaptador antes de se conectar.
public void LoadPortfolioAdapters(IEnumerable<ValueTuple<string, IMessageAdapter>> mappings)
basketRoutingManager.LoadPortfolioAdapters(mappings)
Limpar e carregar mapeamentos de adaptadores de portfólio.
public void LoadSecurityAdapters(IEnumerable<ValueTuple<ValueTuple<SecurityId, DataType>, IMessageAdapter>> mappings)
basketRoutingManager.LoadSecurityAdapters(mappings)
Limpar e carregar mapeamentos de adaptador de instrumentos financeiros.
public void OnAdapterRemoved(IMessageAdapter adapter)
basketRoutingManager.OnAdapterRemoved(adapter)
Chamado quando um adaptador é removido da lista interna de adaptadores.
public void OnAdaptersCleared()
basketRoutingManager.OnAdaptersCleared()
Chamado quando todos os adaptadores são limpos da lista de adaptadores internos.
public void OnPortfolioAdapterProviderChanged(string portfolioName, Guid adapterId, bool isAdd, Func<Guid, IMessageAdapter> findAdapter)
basketRoutingManager.OnPortfolioAdapterProviderChanged(portfolioName, adapterId, isAdd, findAdapter)
Lidar com mudança de provedor de adaptador de portfólio.
public void OnSecurityAdapterProviderChanged(ValueTuple<SecurityId, DataType> key, Guid adapterId, bool isAdd, Func<Guid, IMessageAdapter> findAdapter)
basketRoutingManager.OnSecurityAdapterProviderChanged(key, adapterId, isAdd, findAdapter)
Lidar com a mudança do adaptador de instrumentos financeiros.
public void ProcessBackMessage(IMessageAdapter adapter, ISubscriptionMessage subscrMsg, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
basketRoutingManager.ProcessBackMessage(adapter, subscrMsg, adapterLookup)
Processe uma mensagem traseira com o rastreamento da assinatura.
public ValueTuple<IEnumerable<Message>, Message[], Message[]> ProcessConnect(IMessageAdapter adapter, IMessageAdapter wrapper, IEnumerable<MessageTypes> supportedMessages, Exception error)
result = basketRoutingManager.ProcessConnect(adapter, wrapper, supportedMessages, error)
Processar uma ligação bem sucedida ou com falha.
- adapter
- O adaptador que se ligou.
- wrapper
- A embalagem para o adaptador.
- supportedMessages
- Tipos de mensagens suportados.
- error
- Erro de conexão, se houver.
Retorna: Mensagens extras para enviar e aguardar mensagens para voltar.
public IEnumerable<Message> ProcessDisconnect(IMessageAdapter adapter, IMessageAdapter wrapper, IEnumerable<MessageTypes> supportedMessages, Exception error)
result = basketRoutingManager.ProcessDisconnect(adapter, wrapper, supportedMessages, error)
Desconexão do processo.
- adapter
- O adaptador que desligou.
- wrapper
- A embalagem para o adaptador.
- supportedMessages
- Tipos de mensagens suportados.
- error
- Erro de desconexão, se existir.
Retorna: Mensagens extras para enviar.
public ValueTask<RoutingInResult> ProcessInMessageAsync(Message message, Func<IMessageAdapter, IMessageAdapter> adapterLookup, CancellationToken cancellationToken)
result = basketRoutingManager.ProcessInMessageAsync(message, adapterLookup, cancellationToken)
Processe uma mensagem recebida e determine as decisões de encaminhamento.
public ValueTask<RoutingOutResult> ProcessOutMessageAsync(IMessageAdapter innerAdapter, Message message, Func<IMessageAdapter, IMessageAdapter> adapterLookup, CancellationToken cancellationToken)
result = basketRoutingManager.ProcessOutMessageAsync(innerAdapter, message, adapterLookup, cancellationToken)
Processe uma mensagem de saída de um adaptador interno.
public void Reset(bool clearPending)
basketRoutingManager.Reset(clearPending)
Reinicie todo o estado de roteamento.
- clearPending
- Se deve limpar as mensagens pendentes.
public bool TryGetOrderAdapter(long transactionId, IMessageAdapter adapter)
result = basketRoutingManager.TryGetOrderAdapter(transactionId, adapter)
Tente obter o adaptador para ordem por ID de transação.