SelectionKey クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
SelectorへのSelectableChannelの登録を表すトークン。
[Android.Runtime.Register("java/nio/channels/SelectionKey", DoNotGenerateAcw=true)]
public abstract class SelectionKey : Java.Lang.Object
[<Android.Runtime.Register("java/nio/channels/SelectionKey", DoNotGenerateAcw=true)>]
type SelectionKey = class
inherit Object
- 継承
- 派生
- 属性
注釈
SelectorへのSelectableChannelの登録を表すトークン。
選択キーは、チャネルがセレクターに登録されるたびに作成されます。 キーは、#cancel cancel メソッドを呼び出すか、チャネルを閉じるか、セレクターを閉じることによってキャンセルされるまで有効なままです。 キーを取り消しても、すぐにセレクターから削除されるわけではありません。代わりに、セレクターの <i>cancelled-key set</i> に追加され、次の選択操作中に削除されます。 キーの有効性は、 #isValid isValid メソッドを呼び出すことによってテストできます。
"opsets">
選択キーには、整数値として表される 2 つの 操作セット が含まれています。 操作セットの各ビットは、キーのチャネルでサポートされている選択可能な操作のカテゴリを表します。
<ul>
<li>
関心セットは、セレクターの選択メソッドの 1 つが次回呼び出されたときに、準備のためにテストされる操作カテゴリを決定します。 関心セットは、キーの作成時に指定された値で初期化されます。後で #interestOps(int) メソッドを使用して変更できます。
</li>
<li>
準備完了セットは、キーのセレクターによってキーのチャネルの準備が完了したことが検出された操作カテゴリを識別します。 準備完了セットは、キーの作成時に 0 に初期化されます。後で選択操作中にセレクターによって更新される可能性がありますが、直接更新することはできません。
</li>
</ul>
選択キーの準備完了セットは、チャネルが何らかの操作カテゴリの準備ができていることを示しますが、そのようなカテゴリの操作がスレッドによってブロックされることなく実行される可能性があることを保証するものではありません。 準備完了セットは、選択操作が完了した直後に正確である可能性が最も高くなります。 外部イベントや、対応するチャネルで呼び出される I/O 操作によって不正確になる可能性があります。
このクラスは、すべての既知の演算セット ビットを定義しますが、特定のチャネルでサポートされるビットは、チャネルの種類によって正確に異なります。
SelectableChannelの各サブクラスは、チャネルでサポートされている操作のみを識別するセットを返すSelectableChannel#validOps() validOps() メソッドを定義します。 キーのチャネルでサポートされていない操作セット ビットを設定またはテストしようとすると、適切な実行時例外が発生します。
多くの場合、アプリケーション固有のデータを選択キーに関連付ける必要があります。たとえば、上位レベルのプロトコルの状態を表し、そのプロトコルを実装するために準備通知を処理するオブジェクトなどです。 したがって、選択キーは、キーへの単一の任意のオブジェクトの 添付 をサポートします。 オブジェクトは、 #attach attach メソッドを使用してアタッチしてから、後で #attachment() attachment メソッドを使用して取得できます。
選択キーは、複数の同時実行スレッドで安全に使用できます。 選択操作では、操作が開始された時点で現在の関心設定値が常に使用されます。
1.4 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| SelectionKey() |
このクラスのインスタンスを構築します。 |
| SelectionKey(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
フィールド
| 名前 | 説明 |
|---|---|
| OpAccept |
古い.
ソケット受け入れ操作の操作セット ビット。 |
| OpConnect |
古い.
ソケット接続操作の操作セット ビット。 |
| OpRead |
古い.
読み取り操作の操作セット ビット。 |
| OpWrite |
古い.
書き込み操作の操作セット ビット。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| IsAcceptable |
このキーのチャネルが新しいソケット接続を受け入れる準備ができているかどうかをテストします。 |
| IsConnectable |
このキーのチャネルがソケット接続操作を完了したか、または完了に失敗したかをテストします。 |
| IsReadable |
このキーのチャネルが読み取り可能かどうかをテストします。 |
| IsValid |
このキーが有効かどうかを示します。 |
| IsWritable |
このキーのチャネルが書き込み可能かどうかをテストします。 |
| JniIdentityHashCode |
|
| JniPeerMembers |
|
| PeerReference |
|
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
| 名前 | 説明 |
|---|---|
| Attach(Object) |
指定されたオブジェクトをこのキーにアタッチします。 |
| Attachment() |
現在の添付ファイルを取得します。 |
| Cancel() |
このキーのチャネルのセレクターへの登録を取り消す必要があります。 |
| Channel() |
このキーが作成されたチャネルを返します。 |
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| Dispose() |
|
| Dispose(Boolean) |
|
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| InterestOps() |
このキーの関心セットを取得します。 |
| InterestOps(Operations) |
このキーの関心セットを取得します。 |
| InterestOpsAnd(Int32) |
このキーの関心設定を、既存の関心セットと指定された値のビットごとの積集合 ("and") にアトミックに設定します。 |
| InterestOpsOr(Int32) |
このキーのインタレスト セットを、既存の関心セットと指定された値のビットごとの和集合 ("または") にアトミックに設定します。 |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| ReadyOps() |
このキーの準備完了操作セットを取得します。 |
| Selector() |
このキーが作成されたセレクターを返します。 |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| ToArray<T>() |
|
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
|
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.DisposeUnlessReferenced() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniManagedPeerState |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|