BasketRoutingManager
Implementación predeterminada de IBasketRoutingManager. Gestiona la lógica de enrutamiento de mensajes para adaptador de cesta.
Implementa: IBasketRoutingManager
Constructores
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)
Inicia una nueva instancia de BasketRoutingManager.
Propiedades
public bool ConnectDisconnectEventOnFirstAdapter { get; set; }
value = basketRoutingManager.ConnectDisconnectEventOnFirstAdapter
basketRoutingManager.ConnectDisconnectEventOnFirstAdapter = value
Para llamar al evento ConnectMessage cuando el primer adaptador se conecta. Si , espera que todos los adaptadores se conecten.
public int ConnectedCount { get; }
value = basketRoutingManager.ConnectedCount
Consigue el conteo de adaptadores conectados.
public bool HasPendingAdapters { get; }
value = basketRoutingManager.HasPendingAdapters
Si cualquier adaptador sigue conectándose.
public IdGenerator TransactionIdGenerator { get; set; }
value = basketRoutingManager.TransactionIdGenerator
basketRoutingManager.TransactionIdGenerator = value
Generador de id de transacción utilizado para la routa interna de suscripción de niños. Debe mantenerse en sincronía con el generador del adaptador padre.
Métodos
public void AddOrderAdapter(long transactionId, IMessageAdapter adapter)
basketRoutingManager.AddOrderAdapter(transactionId, adapter)
Agregue la transacción de pedido a la cartografía de adaptador.
public bool ApplyParentLookupId(ISubscriptionIdMessage msg)
result = basketRoutingManager.ApplyParentLookupId(msg)
Aplicar la identificación de búsqueda de padres que se remapping al mensaje de suscripción.
Devuelve: si no se encuentra un padre válido y debe dejarse caer el mensaje.
public void BeginConnect()
basketRoutingManager.BeginConnect()
Establece estado de canasta para conectar.
public void BeginDisconnect()
basketRoutingManager.BeginDisconnect()
Establece el estado de la canasta 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)
Crea una nueva instancia de BasketRoutingManager@ con componentes estatales predeterminados.
public IDictionary<IMessageAdapter, IMessageAdapter> GetAdaptersToDisconnect(Func<IMessageAdapter, IMessageAdapter> adapterLookup)
result = basketRoutingManager.GetAdaptersToDisconnect(adapterLookup)
Consigue adaptadores que necesitan ser desconectados.
- adapterLookup
- Función para obtener envoltura del adaptador subyacente.
Devuelve: Diccionario de envoltura al adaptador subyacente.
public IMessageAdapter GetPortfolioAdapter(string portfolioName, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
result = basketRoutingManager.GetPortfolioAdapter(portfolioName, adapterLookup)
Obtenga adaptador para la enrutación basada en cartera.
Devuelve: Encontramos adaptador o nulo.
public long[] GetSubscribers(DataType dataType)
result = basketRoutingManager.GetSubscribers(dataType)
Obtenga IDs de suscriptor para un tipo de datos.
public void InitializeAdapter(IMessageAdapter adapter)
basketRoutingManager.InitializeAdapter(adapter)
Inicia el estado de adaptador antes de conectarse.
public void LoadPortfolioAdapters(IEnumerable<ValueTuple<string, IMessageAdapter>> mappings)
basketRoutingManager.LoadPortfolioAdapters(mappings)
Cartografías de adaptador de cartera claras y de carga.
public void LoadSecurityAdapters(IEnumerable<ValueTuple<ValueTuple<SecurityId, DataType>, IMessageAdapter>> mappings)
basketRoutingManager.LoadSecurityAdapters(mappings)
Cartografías claras y cargadas de adaptadores de instrumentos financieros.
public void OnAdapterRemoved(IMessageAdapter adapter)
basketRoutingManager.OnAdapterRemoved(adapter)
Llamado cuando se quita un adaptador de la lista de adaptadores internos.
public void OnAdaptersCleared()
basketRoutingManager.OnAdaptersCleared()
Llamado cuando todos los adaptadores se limpian de la lista de adaptadores internos.
public void OnPortfolioAdapterProviderChanged(string portfolioName, Guid adapterId, bool isAdd, Func<Guid, IMessageAdapter> findAdapter)
basketRoutingManager.OnPortfolioAdapterProviderChanged(portfolioName, adapterId, isAdd, findAdapter)
Cambio de proveedor de adaptador de cartera de manijas.
public void OnSecurityAdapterProviderChanged(ValueTuple<SecurityId, DataType> key, Guid adapterId, bool isAdd, Func<Guid, IMessageAdapter> findAdapter)
basketRoutingManager.OnSecurityAdapterProviderChanged(key, adapterId, isAdd, findAdapter)
Manejo de instrumentos financieros cambio de proveedor.
public void ProcessBackMessage(IMessageAdapter adapter, ISubscriptionMessage subscrMsg, Func<IMessageAdapter, IMessageAdapter> adapterLookup)
basketRoutingManager.ProcessBackMessage(adapter, subscrMsg, adapterLookup)
Procese un mensaje de respaldo con seguimiento de suscripción.
public ValueTuple<IEnumerable<Message>, Message[], Message[]> ProcessConnect(IMessageAdapter adapter, IMessageAdapter wrapper, IEnumerable<MessageTypes> supportedMessages, Exception error)
result = basketRoutingManager.ProcessConnect(adapter, wrapper, supportedMessages, error)
Proceso de conexión exitosa o fallida.
- adapter
- El adaptador que conecta.
- wrapper
- El envoltorio para el adaptador.
- supportedMessages
- Tipos de mensaje compatibles.
- error
- Error de conexión si existe.
Devuelve: Mensajes adicionales para enviar y mensajes pendientes para volver a bucle.
public IEnumerable<Message> ProcessDisconnect(IMessageAdapter adapter, IMessageAdapter wrapper, IEnumerable<MessageTypes> supportedMessages, Exception error)
result = basketRoutingManager.ProcessDisconnect(adapter, wrapper, supportedMessages, error)
Desconexión de procesos.
- adapter
- El adaptador que se desconectó.
- wrapper
- El envoltorio para el adaptador.
- supportedMessages
- Tipos de mensaje compatibles.
- error
- Error de desconexión si es así.
Devuelve: Mensajes adicionales para enviar.
public ValueTask<RoutingInResult> ProcessInMessageAsync(Message message, Func<IMessageAdapter, IMessageAdapter> adapterLookup, CancellationToken cancellationToken)
result = basketRoutingManager.ProcessInMessageAsync(message, adapterLookup, cancellationToken)
Procesar un mensaje entrante y determinar las decisiones de enrutamiento.
public ValueTask<RoutingOutResult> ProcessOutMessageAsync(IMessageAdapter innerAdapter, Message message, Func<IMessageAdapter, IMessageAdapter> adapterLookup, CancellationToken cancellationToken)
result = basketRoutingManager.ProcessOutMessageAsync(innerAdapter, message, adapterLookup, cancellationToken)
Procesar un mensaje saliente de un adaptador interno.
public void Reset(bool clearPending)
basketRoutingManager.Reset(clearPending)
Reiniciar todo estado de enrutamiento.
- clearPending
- Ya sea para aclarar los mensajes pendientes.
public bool TryGetOrderAdapter(long transactionId, IMessageAdapter adapter)
result = basketRoutingManager.TryGetOrderAdapter(transactionId, adapter)
Pruebe el adaptador para el pedido por transacción id.