クラスAbstractSelectableChannel
- すべての実装されたインタフェース:
- Closeable,- AutoCloseable,- Channel,- InterruptibleChannel
- 直系の既知のサブクラス:
- DatagramChannel,- Pipe.SinkChannel,- Pipe.SourceChannel,- SctpChannel,- SctpMultiChannel,- SctpServerChannel,- ServerSocketChannel,- SocketChannel
 このクラスは、チャネルの登録、登録解除、クローズの処理を行うメソッドを定義します。 このクラスは、このチャネルの現在のブロック・モードと、現在の選択キー・セットを管理します。 また、SelectableChannelの仕様を実装するのに必要な同期処理をすべて実行します。 このクラスで定義された保護された抽象メソッドの実装は、同じ操作に関与する可能性のある他のスレッドと同期する必要はありません。   
- 導入されたバージョン:
- 1.4
- 
コンストラクタのサマリーコンストラクタ修飾子コンストラクタ説明protectedAbstractSelectableChannel(SelectorProvider provider) このクラスの新しいインスタンスを初期化します。
- 
メソッドのサマリー修飾子と型メソッド説明final ObjectconfigureBlockingおよびregisterメソッドが同期するオブジェクトを取得します。final SelectableChannelconfigureBlocking(boolean block) このチャネルのブロック・モードを調整します。protected final void現在のチャネルをクローズします。protected abstract voidこの選択可能チャネルをクローズします。protected abstract voidimplConfigureBlocking(boolean block) このチャネルのブロック・モードを調整します。final booleanこのチャネル上の個々の入出力操作が前の入出力操作が完了するまでブロックされるかどうかを判断します。final boolean現在このチャネルがセレクタに登録されているかどうかを判断します。final SelectionKeyチャネルが指定されたセレクタに登録されていることを示すキーを取得します。final SelectorProviderprovider()このチャネルの作成元プロバイダを返します。final SelectionKeyこのチャネルを指定されたセレクタに登録し、選択キーを返します。クラスjava.nio.channels.SelectableChannelで宣言されたメソッドregister, validOpsクラスjava.nio.channels.spi.AbstractInterruptibleChannelで宣言されたメソッドbegin, close, end, isOpen
- 
コンストラクタの詳細- 
AbstractSelectableChannelprotected AbstractSelectableChannel(SelectorProvider provider) このクラスの新しいインスタンスを初期化します。- パラメータ:
- provider- このチャネルの作成元プロバイダ
 
 
- 
- 
メソッドの詳細- 
providerpublic final SelectorProvider provider()このチャネルの作成元プロバイダを返します。- 定義:
- provider、クラス- SelectableChannel
- 戻り値:
- このチャネルの作成元プロバイダ
 
- 
isRegisteredpublic final boolean isRegistered()クラスからコピーされた説明:SelectableChannel現在このチャネルがセレクタに登録されているかどうかを判断します。 新しく作成されたチャネルは登録されていません。キーの取り消しからチャネルの登録解除までの間に発生する必然的な遅延のため、キーをすべて取り消しても、しばらくの間チャネルの登録は解除されません。 チャネルをクローズしたときも同様です。 - 定義:
- isRegistered、クラス- SelectableChannel
- 戻り値:
- このチャネルが登録されている場合のみ、true
 
- 
keyForpublic final SelectionKey keyFor(Selector sel) クラスからコピーされた説明:SelectableChannelチャネルが指定されたセレクタに登録されていることを示すキーを取得します。- 定義:
- keyFor、クラス- SelectableChannel
- パラメータ:
- sel- セレクタ
- 戻り値:
- このチャネルが最後に指定されたセレクタに登録されたときに返されるキー、またはこのチャネルが現在そのセレクタに登録されていない場合はnull
 
- 
registerpublic final SelectionKey register(Selector sel, int ops, Object att) throws ClosedChannelException このチャネルを指定されたセレクタに登録し、選択キーを返します。このメソッドは、最初にこのチャネルがオープンしていることと、指定された初期対象セットが有効であることを確認します。 このチャネルが指定されたセレクタに登録されている場合、その対象セットが指定された値に設定され、登録を示す選択キーが返されます。 それ以外の場合、このチャネルは指定されたセレクタにまだ登録されていないので、適切なロックを保持した状態でセレクタの registerメソッドが呼び出されます。 結果として得られるキーは、返される前に、このチャネルのキー・セットに追加されます。- 定義:
- register、クラス- SelectableChannel
- パラメータ:
- sel- このチャネルの登録先セレクタ
- ops- 結果として得られるキーの対象セット
- att- 結果のキーのアタッチメント。- nullです
- 戻り値:
- このチャネルが指定されたセレクタに登録されていることを示すキー
- 例外:
- ClosedSelectorException- セレクタがクローズしている場合
- IllegalBlockingModeException- このチャネルがブロック・モードの場合
- IllegalSelectorException- このチャネルの作成元プロバイダが指定されたセレクタの作成元プロバイダと違う場合
- CancelledKeyException- チャネルは指定されたセレクタに登録されているが、対応するキーがすでに取り消されている場合
- IllegalArgumentException-- opsセットのビットがこのチャネルでサポートされる操作に対応していない場合、つまり、- set & ~validOps() != 0の場合
- ClosedChannelException- このチャネルがクローズしている場合
 
- 
implCloseChannelprotected final void implCloseChannel() throws IOException現在のチャネルをクローズします。このメソッドは、 AbstractInterruptibleChannelクラスで指定されており、closeメソッドによって呼び出されたあと、このチャネルを実際にクローズする処理を行うためにimplCloseSelectableChannelメソッドを呼び出します。 次に、このチャネルのキーをすべて取り消します。- 定義:
- implCloseChannel、クラス- AbstractInterruptibleChannel
- 例外:
- IOException- チャネルのクローズ中に入出力エラーが発生した場合
 
- 
implCloseSelectableChannelprotected abstract void implCloseSelectableChannel() throws IOExceptionこの選択可能チャネルをクローズします。このメソッドは、チャネルをクローズする実際の処理を実行するために closeメソッドによって呼び出されます。 このメソッドは、チャネルがまだクローズしていない場合にのみ呼び出され、2回以上呼び出されることはありません。このメソッドの実装は、このチャネルに対する入出力操作の途中でブロックされるその他のスレッドを、例外をスローするか、通常の方法を使ってただちに終了させることになっています。 - 例外:
- IOException- 入出力エラーが発生した場合
 
- 
isBlockingpublic final boolean isBlocking()クラスからコピーされた説明:SelectableChannelこのチャネル上の個々の入出力操作が前の入出力操作が完了するまでブロックされるかどうかを判断します。 新しく作成されたチャネルは常にブロック・モードです。このチャネルがクローズしている場合、このメソッドの戻り値は特定されません。 - 定義:
- isBlocking、クラス- SelectableChannel
- 戻り値:
- このチャネルがブロッキング・モードの場合にのみtrue
 
- 
blockingLockpublic final Object blockingLock()クラスからコピーされた説明:SelectableChannelconfigureBlockingおよびregisterメソッドが同期するオブジェクトを取得します。 この機能は、特定のブロック・モードを短時間保持する必要があるアダプタを実装する場合に便利です。- 定義:
- blockingLock、クラス- SelectableChannel
- 戻り値:
- ブロック・モードのロック・オブジェクト
 
- 
configureBlockingpublic final SelectableChannel configureBlocking(boolean block) throws IOException このチャネルのブロック・モードを調整します。指定されたブロック・モードが現在のブロック・モードと異なっている場合、このメソッドは、適切なロックを保持した状態で implConfigureBlockingメソッドを呼び出してモードを変更します。- 定義:
- configureBlocking、クラス- SelectableChannel
- パラメータ:
- block-- trueの場合、このチャネルはブロック・モードになります。- falseの場合、非ブロッキング・モードになります
- 戻り値:
- この選択可能チャネル
- 例外:
- ClosedChannelException- このチャネルがクローズしている場合
- IOException- 入出力エラーが発生した場合
 
- 
implConfigureBlockingprotected abstract void implConfigureBlocking(boolean block) throws IOException このチャネルのブロック・モードを調整します。このメソッドは、ブロック・モードを変更する実際の処理を実行するために configureBlockingメソッドによって呼び出されます。 このメソッドは、新しいモードが現在のモードと異なっている場合に限り呼び出されます。- パラメータ:
- block-- trueの場合、このチャネルはブロック・モードになります。- falseの場合、非ブロッキング・モードになります
- 例外:
- IOException- 入出力エラーが発生した場合
 
 
-