SubmissionPublisher.Offer Método

Definición

Sobrecargas

Nombre Description
Offer(Object, IBiPredicate)

Publica el elemento especificado, si es posible, en cada suscriptor actual invocando de forma asincrónica su Flow.Subscriber#onNext(Object) onNext método.

Offer(Object, Int64, TimeUnit, IBiPredicate)

Publica el elemento especificado, si es posible, para cada suscriptor actual invocando de forma asincrónica su Flow.Subscriber#onNext(Object) onNext método, bloqueando mientras los recursos de cualquier suscripción no están disponibles, hasta el tiempo de espera especificado o hasta que se interrumpa el subproceso del autor de la llamada, en cuyo punto se invoca el controlador especificado (si no es null) y, si devuelve true, se reintenta una vez.

Offer(Object, IBiPredicate)

Publica el elemento especificado, si es posible, en cada suscriptor actual invocando de forma asincrónica su Flow.Subscriber#onNext(Object) onNext método.

[Android.Runtime.Register("offer", "(Ljava/lang/Object;Ljava/util/function/BiPredicate;)I", "GetOffer_Ljava_lang_Object_Ljava_util_function_BiPredicate_Handler", ApiSince=33)]
public virtual int Offer(Java.Lang.Object? item, Java.Util.Functions.IBiPredicate? onDrop);
[<Android.Runtime.Register("offer", "(Ljava/lang/Object;Ljava/util/function/BiPredicate;)I", "GetOffer_Ljava_lang_Object_Ljava_util_function_BiPredicate_Handler", ApiSince=33)>]
abstract member Offer : Java.Lang.Object * Java.Util.Functions.IBiPredicate -> int
override this.Offer : Java.Lang.Object * Java.Util.Functions.IBiPredicate -> int

Parámetros

item
Object

el elemento (distinto de null) que se va a publicar

onDrop
IBiPredicate

si no es null, el controlador invocado tras una colocación en un suscriptor, con argumentos del suscriptor y el elemento; si devuelve true, se vuelve a intentar una oferta (una vez)

Devoluciones

si es negativo, el número (negativo) de caídas; de lo contrario, una estimación del retraso máximo

Atributos

Comentarios

Publica el elemento especificado, si es posible, en cada suscriptor actual invocando de forma asincrónica su Flow.Subscriber#onNext(Object) onNext método. Uno o varios suscriptores pueden quitar el elemento si se superan los límites de recursos, en cuyo caso se invoca el controlador especificado (si no es null) y, si devuelve true, se reintenta una vez. Otras llamadas a métodos de esta clase por otros subprocesos se bloquean mientras se invoca el controlador. A menos que se asegure la recuperación, las opciones suelen limitarse a registrar el error o emitir una Flow.Subscriber#onError(Throwable) onError señal al suscriptor.

Este método devuelve un indicador de estado: si es negativo, representa el número (negativo) de caídas (intentos erróneos de emitir el elemento a un suscriptor). De lo contrario, es una estimación del retraso máximo (número de elementos enviados pero aún no consumidos) entre todos los suscriptores actuales. Este valor es al menos uno (teniendo en cuenta este elemento enviado) si hay suscriptores, en caso contrario cero.

Si el ejecutor de este publicador inicia una excepción RejectedExecutionException (o cualquier otro RuntimeException o Error) al intentar notificar de forma asincrónica a los suscriptores, o el controlador de colocación produce una excepción al procesar un elemento descartado, esta excepción se vuelve a iniciar.

Java documentación para java.util.concurrent.SubmissionPublisher.offer(T, java.util.function.BiPredicate<java.util.concurrent.Flow.Subscriber<? super T>, ? super T>).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a

Offer(Object, Int64, TimeUnit, IBiPredicate)

Publica el elemento especificado, si es posible, para cada suscriptor actual invocando de forma asincrónica su Flow.Subscriber#onNext(Object) onNext método, bloqueando mientras los recursos de cualquier suscripción no están disponibles, hasta el tiempo de espera especificado o hasta que se interrumpa el subproceso del autor de la llamada, en cuyo punto se invoca el controlador especificado (si no es null) y, si devuelve true, se reintenta una vez.

[Android.Runtime.Register("offer", "(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;Ljava/util/function/BiPredicate;)I", "GetOffer_Ljava_lang_Object_JLjava_util_concurrent_TimeUnit_Ljava_util_function_BiPredicate_Handler", ApiSince=33)]
public virtual int Offer(Java.Lang.Object? item, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Util.Functions.IBiPredicate? onDrop);
[<Android.Runtime.Register("offer", "(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;Ljava/util/function/BiPredicate;)I", "GetOffer_Ljava_lang_Object_JLjava_util_concurrent_TimeUnit_Ljava_util_function_BiPredicate_Handler", ApiSince=33)>]
abstract member Offer : Java.Lang.Object * int64 * Java.Util.Concurrent.TimeUnit * Java.Util.Functions.IBiPredicate -> int
override this.Offer : Java.Lang.Object * int64 * Java.Util.Concurrent.TimeUnit * Java.Util.Functions.IBiPredicate -> int

Parámetros

item
Object

el elemento (distinto de null) que se va a publicar

timeout
Int64

cuánto tiempo se debe esperar a los recursos de cualquier suscriptor antes de renunciar, en unidades de unit

unit
TimeUnit

que TimeUnit determina cómo interpretar el timeout parámetro

onDrop
IBiPredicate

si no es null, el controlador invocado tras una colocación en un suscriptor, con argumentos del suscriptor y el elemento; si devuelve true, se vuelve a intentar una oferta (una vez)

Devoluciones

si es negativo, el número (negativo) de caídas; de lo contrario, una estimación del retraso máximo

Atributos

Comentarios

Publica el elemento especificado, si es posible, para cada suscriptor actual invocando de forma asincrónica su Flow.Subscriber#onNext(Object) onNext método, bloqueando mientras los recursos de cualquier suscripción no están disponibles, hasta el tiempo de espera especificado o hasta que se interrumpa el subproceso del autor de la llamada, en cuyo punto se invoca el controlador especificado (si no es null) y, si devuelve true, se reintenta una vez. (El controlador de colocación puede distinguir los tiempos de espera de las interrupciones comprobando si se interrumpe el subproceso actual). Otras llamadas a métodos de esta clase por otros subprocesos se bloquean mientras se invoca el controlador. A menos que se asegure la recuperación, las opciones suelen limitarse a registrar el error o emitir una Flow.Subscriber#onError(Throwable) onError señal al suscriptor.

Este método devuelve un indicador de estado: si es negativo, representa el número (negativo) de caídas (intentos erróneos de emitir el elemento a un suscriptor). De lo contrario, es una estimación del retraso máximo (número de elementos enviados pero aún no consumidos) entre todos los suscriptores actuales. Este valor es al menos uno (teniendo en cuenta este elemento enviado) si hay suscriptores, en caso contrario cero.

Si el ejecutor de este publicador inicia una excepción RejectedExecutionException (o cualquier otro RuntimeException o Error) al intentar notificar de forma asincrónica a los suscriptores, o el controlador de colocación produce una excepción al procesar un elemento descartado, esta excepción se vuelve a iniciar.

Java documentación para java.util.concurrent.SubmissionPublisher.offer(T, long, java.util.concurrent.TimeUnit, java.util.function.BiPredicate<java.util.concurrent.Flow.Subscriber<? super T>, ? super T>).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a