|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.nio.channels.spi.AbstractInterruptibleChannel | +--java.nio.channels.SelectableChannel | +--java.nio.channels.spi.AbstractSelectableChannel
選択可能チャネルのベース実装クラスです。
このクラスは、チャネルの登録、登録解除、クローズの処理を行うメソッドを定義します。このクラスは、現在ブロックモードになっているこのチャネルと、現在の選択キーセットを管理します。また、SelectableChannel
指定された実装に必要なあらゆる同期処理を実行します。このクラスに定義されている abstract protected メソッドの実装は、同じ操作で使用されるその他のスレッドと必ずしも同期していません。
コンストラクタの概要 | |
protected |
AbstractSelectableChannel(SelectorProvider provider)
このクラスの新しいインスタンスを初期化します。 |
メソッドの概要 | |
Object |
blockingLock()
configureBlocking メソッドと register メソッドが同期するオブジェクトを返します。 |
SelectableChannel |
configureBlocking(boolean block)
このチャネルのブロックモードを調整します。 |
protected void |
implCloseChannel()
このチャネルをクローズします。 |
protected abstract void |
implCloseSelectableChannel()
この選択可能チャネルをクローズします。 |
protected abstract void |
implConfigureBlocking(boolean block)
このチャネルのブロックモードを調整します。 |
boolean |
isBlocking()
このチャネル上の個々の入出力操作が前の入出力操作が完了するまでブロックされるかどうかを判断します。 |
boolean |
isRegistered()
現在このチャネルがセレクタに登録されているかどうかを判断します。 |
SelectionKey |
keyFor(Selector sel)
チャネルが指定されたセレクタに登録されていることを示すキーを取得します。 |
SelectorProvider |
provider()
このチャネルの作成元プロバイダを返します。 |
SelectionKey |
register(Selector sel,
int ops,
Object att)
このチャネルを指定されたセレクタに登録し、選択キーを返します。 |
クラス java.nio.channels.SelectableChannel から継承したメソッド |
register, validOps |
クラス java.nio.channels.spi.AbstractInterruptibleChannel から継承したメソッド |
begin, close, end, isOpen |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
インタフェース java.nio.channels.Channel から継承したメソッド |
close, isOpen |
コンストラクタの詳細 |
protected AbstractSelectableChannel(SelectorProvider provider)
メソッドの詳細 |
public final SelectorProvider provider()
SelectableChannel
内の provider
public final boolean isRegistered()
SelectableChannel
の記述: キーの取り消しからチャネルの登録解除までの間に発生する必然的な遅延のため、キーをすべて取り消しても、しばらくの間チャネルの登録は解除されません。チャネルをクローズしたときも同様です。
SelectableChannel
内の isRegistered
public final SelectionKey keyFor(Selector sel)
SelectableChannel
の記述:
SelectableChannel
内の keyFor
public final SelectionKey register(Selector sel, int ops, Object att) throws ClosedChannelException
このメソッドは、最初にこのチャネルがオープンしていることと、指定された初期対象セットが有効であることを確認します。
このチャネルが指定されたセレクタに登録されている場合、その対象セットが指定された値に設定され、登録を示す選択キーが返されます。
それ以外の場合、このチャネルは指定されたセレクタにまだ登録されていないので、適切なロックを保持した状態でセレクタの register
メソッドが呼び出されます。結果のキーは、返される前に、このチャネルのキーセットに追加されます。
SelectableChannel
内の register
sel
- このチャネルの登録先セレクタops
- 生成されたキーの対象セットatt
- 生成されたキーの添付。null の場合もある
ClosedChannelException
- このチャネルがクローズしている場合protected final void implCloseChannel() throws IOException
このメソッドは、AbstractInterruptibleChannel
クラスに指定されており、close
メソッドによって呼び出されます。また、このチャネルを実際にクローズするために、implCloseSelectableChannel
メソッドを呼び出します。次に、このチャネルのキーをすべて取り消します。
AbstractInterruptibleChannel
内の implCloseChannel
IOException
- チャネルのクローズ中に入出力エラーが発生した場合protected abstract void implCloseSelectableChannel() throws IOException
このメソッドは、実際にチャネルをクローズするため、close
メソッドによって呼び出されます。このメソッドは、チャネルがまだクローズしておらず、今後呼び出される可能性がない場合にのみ呼び出されます。
このメソッドの実装は、このチャネルに対する入出力操作の途中でブロックされるその他のスレッドを、例外をスローするか、通常の方法を使ってただちに終了させることになっています。
IOException
public final boolean isBlocking()
SelectableChannel
の記述: このチャネルがクローズしている場合、このメソッドの戻り値は特定されません。
SelectableChannel
内の isBlocking
public final Object blockingLock()
SelectableChannel
の記述: configureBlocking
メソッドと register
メソッドが同期するオブジェクトを返します。この機能は、特定のブロックモードを短時間保持する必要があるアダプタを実装する場合に便利です。
SelectableChannel
内の blockingLock
public final SelectableChannel configureBlocking(boolean block) throws IOException
指定されたブロックモードが現在のブロックモードと異なっている場合、このメソッドは、モードを変更するため、 適切なロックを保持した状態で implConfigureBlocking
メソッドを呼び出します。
SelectableChannel
内の configureBlocking
block
- このチャネルがブロックモードになる場合は true、非ブロックモードになる場合は false
IOException
- 入出力エラーが発生した場合protected abstract void implConfigureBlocking(boolean block) throws IOException
このメソッドは、ブロックモードを実際に変更するため、configureBlocking
メソッドによって呼び出されます。このメソッドは、新しいモードが現在のモードと異なっている場合にかぎり呼び出されます。
IOException
- 入出力エラーが発生した場合
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.