SubmissionPublisher.Offer メソッド

定義

オーバーロード

Offer(Object, IBiPredicate)

メソッドを非同期的に呼び出 Flow.Subscriber#onNext(Object) onNext すことによって、指定された項目を可能な場合は、現在の各サブスクライバーに発行します。

Offer(Object, Int64, TimeUnit, IBiPredicate)

可能であれば、指定された項目を Flow.Subscriber#onNext(Object) onNext 現在のサブスクライバーに発行します。そのメソッドを非同期的に呼び出し、指定されたタイムアウトまで、または呼び出し元スレッドが中断されるまで、指定されたサブスクリプションのリソースが使用できない間にブロックします。その時点で、指定されたハンドラー (null 以外の場合) が呼び出され、true を返す場合は 1 回再試行されます。

Offer(Object, IBiPredicate)

メソッドを非同期的に呼び出 Flow.Subscriber#onNext(Object) onNext すことによって、指定された項目を可能な場合は、現在の各サブスクライバーに発行します。

[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

パラメーター

item
Object

発行する (null 以外の) 項目

onDrop
IBiPredicate

null 以外の場合、サブスクライバーと項目の引数を使用してサブスクライバーへのドロップ時に呼び出されるハンドラー。true が返された場合、オファーは (1 回) 再試行されます

戻り値

負の場合は、(負の) ドロップ数。それ以外の場合は、最大ラグの推定値

属性

注釈

メソッドを非同期的に呼び出 Flow.Subscriber#onNext(Object) onNext すことによって、指定された項目を可能な場合は、現在の各サブスクライバーに発行します。 リソースの制限を超えた場合、アイテムは 1 つ以上のサブスクライバーによって削除される可能性があります。その場合、指定されたハンドラー (null 以外の場合) が呼び出され、true が返された場合は 1 回再試行されます。 ハンドラーが呼び出されている間、他のスレッドによるこのクラスのメソッドへの他の呼び出しはブロックされます。 復旧が保証されない限り、オプションは通常、エラーのログ記録やサブスクライバーへのシグナルの Flow.Subscriber#onError(Throwable) onError 発行に限定されます。

このメソッドは、状態インジケーターを返します。負の場合は、(負の) ドロップ数を表します (サブスクライバーにアイテムを発行しようとして失敗しました)。 それ以外の場合は、すべての現在のサブスクライバー間の最大ラグ (送信されたが、まだ消費されていないアイテムの数) の見積もりです。 サブスクライバーがある場合、この値は少なくとも 1 つ (この送信済みアイテムを表します)、それ以外の場合は 0 です。

サブスクライバーに非同期通知しようとしたときに、このパブリッシャーの Executor が RejectedExecutionException (またはその他の RuntimeException または Error) をスローした場合、またはドロップ ハンドラーがドロップされたアイテムの処理中に例外をスローした場合、この例外は再スローされます。

の Java ドキュメント java.util.concurrent.SubmissionPublisher.offer(T, java.util.function.BiPredicate<java.util.concurrent.Flow.Subscriber<? super T>, ? super T>)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

Offer(Object, Int64, TimeUnit, IBiPredicate)

可能であれば、指定された項目を Flow.Subscriber#onNext(Object) onNext 現在のサブスクライバーに発行します。そのメソッドを非同期的に呼び出し、指定されたタイムアウトまで、または呼び出し元スレッドが中断されるまで、指定されたサブスクリプションのリソースが使用できない間にブロックします。その時点で、指定されたハンドラー (null 以外の場合) が呼び出され、true を返す場合は 1 回再試行されます。

[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

パラメーター

item
Object

発行する (null 以外の) 項目

timeout
Int64

サブスクライバーがリソースを待ってから、その後の時間を、 の単位で unit

unit
TimeUnit

TimeUnitパラメーターの解釈方法を決定するtimeout

onDrop
IBiPredicate

null 以外の場合、サブスクライバーと項目の引数を使用してサブスクライバーへのドロップ時に呼び出されるハンドラー。true が返された場合、オファーは (1 回) 再試行されます

戻り値

負の場合は、(負の) ドロップ数。それ以外の場合は、最大ラグの推定値

属性

注釈

可能であれば、指定された項目を Flow.Subscriber#onNext(Object) onNext 現在のサブスクライバーに発行します。そのメソッドを非同期的に呼び出し、指定されたタイムアウトまで、または呼び出し元スレッドが中断されるまで、指定されたサブスクリプションのリソースが使用できない間にブロックします。その時点で、指定されたハンドラー (null 以外の場合) が呼び出され、true を返す場合は 1 回再試行されます。 (ドロップ ハンドラーは、現在のスレッドが中断されているかどうかを確認することで、タイムアウトと割り込みを区別できます)。ハンドラーが呼び出されている間、他のスレッドによるこのクラスのメソッドへの他の呼び出しはブロックされます。 復旧が保証されない限り、オプションは通常、エラーのログ記録やサブスクライバーへのシグナルの Flow.Subscriber#onError(Throwable) onError 発行に限定されます。

このメソッドは、状態インジケーターを返します。負の場合は、(負の) ドロップ数を表します (サブスクライバーにアイテムを発行しようとして失敗しました)。 それ以外の場合は、すべての現在のサブスクライバー間の最大ラグ (送信されたが、まだ消費されていないアイテムの数) の見積もりです。 サブスクライバーがある場合、この値は少なくとも 1 つ (この送信済みアイテムを表します)、それ以外の場合は 0 です。

サブスクライバーに非同期通知しようとしたときに、このパブリッシャーの Executor が RejectedExecutionException (またはその他の RuntimeException または Error) をスローした場合、またはドロップ ハンドラーがドロップされたアイテムの処理中に例外をスローした場合、この例外は再スローされます。

の Java ドキュメント java.util.concurrent.SubmissionPublisher.offer(T, long, java.util.concurrent.TimeUnit, java.util.function.BiPredicate<java.util.concurrent.Flow.Subscriber<? super T>, ? super T>)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象