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ドキュメント。

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

適用対象

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

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

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ドキュメント。

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

適用対象