SubmissionPublisher.Offer Método

Definição

Sobrecargas

Nome Description
Offer(Object, IBiPredicate)

Publica o item determinado, se possível, para cada assinante atual invocando de forma assíncrona seu Flow.Subscriber#onNext(Object) onNext método.

Offer(Object, Int64, TimeUnit, IBiPredicate)

Publica o item determinado, se possível, para cada assinante atual invocando de forma assíncrona seu Flow.Subscriber#onNext(Object) onNext método, bloqueando enquanto os recursos de qualquer assinatura estão indisponíveis, até o tempo limite especificado ou até que o thread do chamador seja interrompido, momento em que o manipulador determinado (se não nulo) é invocado e, se ele retornar true, novamente repetido uma vez.

Offer(Object, IBiPredicate)

Publica o item determinado, se possível, para cada assinante atual invocando de forma assíncrona seu 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

o item (não nulo) a ser publicado

onDrop
IBiPredicate

se não for nulo, o manipulador invocado após uma queda para um assinante, com argumentos do assinante e do item; se ele retornar true, uma oferta será tentada novamente (uma vez)

Retornos

se negativo, o número (negativo) de quedas; caso contrário, uma estimativa de atraso máximo

Atributos

Comentários

Publica o item determinado, se possível, para cada assinante atual invocando de forma assíncrona seu Flow.Subscriber#onNext(Object) onNext método. O item poderá ser descartado por um ou mais assinantes se os limites de recursos forem excedidos, nesse caso, o manipulador determinado (se não nulo) for invocado e, se ele retornar true, novamente repetido uma vez. Outras chamadas para métodos nessa classe por outros threads são bloqueadas enquanto o manipulador é invocado. A menos que a recuperação seja garantida, as opções geralmente são limitadas ao registro em log do erro e/ou à emissão de um Flow.Subscriber#onError(Throwable) onError sinal para o assinante.

Esse método retorna um indicador de status: se negativo, representa o número (negativo) de quedas (tentativas com falha de emitir o item para um assinante). Caso contrário, é uma estimativa do atraso máximo (número de itens enviados, mas ainda não consumidos) entre todos os assinantes atuais. Esse valor será pelo menos um (contabilizando este item enviado) se houver assinantes, caso contrário, zero.

Se o Executor deste editor gerar um RejectedExecutionException (ou qualquer outro RuntimeException ou Error) ao tentar notificar os assinantes de forma assíncrona ou o manipulador de descarte gerará uma exceção ao processar um item descartado, essa exceção será relançada.

Java documentação para java.util.concurrent.SubmissionPublisher.offer(T, java.util.function.BiPredicate<java.util.concurrent.Flow.Subscriber<? super T>, ? super T>).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a

Offer(Object, Int64, TimeUnit, IBiPredicate)

Publica o item determinado, se possível, para cada assinante atual invocando de forma assíncrona seu Flow.Subscriber#onNext(Object) onNext método, bloqueando enquanto os recursos de qualquer assinatura estão indisponíveis, até o tempo limite especificado ou até que o thread do chamador seja interrompido, momento em que o manipulador determinado (se não nulo) é invocado e, se ele retornar true, novamente repetido uma 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

o item (não nulo) a ser publicado

timeout
Int64

quanto tempo esperar por recursos para qualquer assinante antes de desistir, em unidades de unit

unit
TimeUnit

uma TimeUnit determinação de como interpretar o timeout parâmetro

onDrop
IBiPredicate

se não for nulo, o manipulador invocado após uma queda para um assinante, com argumentos do assinante e do item; se ele retornar true, uma oferta será tentada novamente (uma vez)

Retornos

se negativo, o número (negativo) de quedas; caso contrário, uma estimativa de atraso máximo

Atributos

Comentários

Publica o item determinado, se possível, para cada assinante atual invocando de forma assíncrona seu Flow.Subscriber#onNext(Object) onNext método, bloqueando enquanto os recursos de qualquer assinatura estão indisponíveis, até o tempo limite especificado ou até que o thread do chamador seja interrompido, momento em que o manipulador determinado (se não nulo) é invocado e, se ele retornar true, novamente repetido uma vez. (O manipulador de descarte pode distinguir tempos limite de interrupções verificando se o thread atual é interrompido.) Outras chamadas para métodos nessa classe por outros threads são bloqueadas enquanto o manipulador é invocado. A menos que a recuperação seja garantida, as opções geralmente são limitadas ao registro em log do erro e/ou à emissão de um Flow.Subscriber#onError(Throwable) onError sinal para o assinante.

Esse método retorna um indicador de status: se negativo, representa o número (negativo) de quedas (tentativas com falha de emitir o item para um assinante). Caso contrário, é uma estimativa do atraso máximo (número de itens enviados, mas ainda não consumidos) entre todos os assinantes atuais. Esse valor será pelo menos um (contabilizando este item enviado) se houver assinantes, caso contrário, zero.

Se o Executor deste editor gerar um RejectedExecutionException (ou qualquer outro RuntimeException ou Error) ao tentar notificar os assinantes de forma assíncrona ou o manipulador de descarte gerará uma exceção ao processar um item descartado, essa exceção será relançada.

Java documentação 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>).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a