|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.nio.channels.Selector java.nio.channels.spi.AbstractSelector
public abstract class AbstractSelector
セレクタのベース実装クラスです。
このクラスは、選択操作の割り込みの実装に必要な低レベルの機構をカプセル化します。具象セレクタクラスは、無期限にブロックされる可能性のある入出力操作の呼び出し前に このクラスは、セレクタの取り消されたキーセットを管理するメソッドや、チャネルのキーセットからキーを削除するメソッドも定義します。 また、実際にチャネルを登録する際に選択可能チャネルの
begin
メソッドを、呼び出し後に end
メソッドをそれぞれ呼び出す必要があります。なお、end
メソッドが必ず呼び出されるように、try ... finally ブロック内でこれらのメソッドを使用するようにしてください。
try {
begin();
// Perform blocking I/O operation here
...
} finally {
end();
}
register
メソッドによって呼び出される register
メソッドを宣言します。
コンストラクタの概要 | |
---|---|
protected |
AbstractSelector(SelectorProvider provider)
このクラスの新しいインスタンスを初期化します。 |
メソッドの概要 | |
---|---|
protected void |
begin()
無期限にブロックされる入出力操作の開始をマークします。 |
protected Set<SelectionKey> |
cancelledKeys()
このセレクタの取り消されたキーセットを取得します。 |
void |
close()
このセレクタをクローズします。 |
protected void |
deregister(AbstractSelectionKey key)
チャネルのキーセットから指定されたキーを削除します。 |
protected void |
end()
無期限にブロックされる入出力操作の終了をマークします。 |
protected abstract void |
implCloseSelector()
このセレクタをクローズします。 |
boolean |
isOpen()
このセレクタの状態がオープンであるかどうかを判断します。 |
SelectorProvider |
provider()
このチャネルの作成元プロバイダを返します。 |
protected abstract SelectionKey |
register(AbstractSelectableChannel ch,
int ops,
Object att)
このセレクタに指定されたチャネルを登録します。 |
クラス java.nio.channels.Selector から継承されたメソッド |
---|
keys, open, select, select, selectedKeys, selectNow, wakeup |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
protected AbstractSelector(SelectorProvider provider)
メソッドの詳細 |
---|
public final void close() throws IOException
このセレクタがすでにクローズしている場合、このメソッドはただちに終了します。そうでない場合は、このセレクタをクローズ対象としてマークしたあと、クローズ操作を完了するために implCloseSelector
メソッドを呼び出します。
Selector
内の close
IOException
- 入出力エラーが発生した場合protected abstract void implCloseSelector() throws IOException
このメソッドは、セレクタのクローズ処理を実際に実行するために close
メソッドによって呼び出されます。このメソッドは、セレクタがまだクローズされておらず、今後呼び出される可能性がない場合に限り呼び出されます。
このメソッドの実装は、このセレクタに対する選択操作でブロックされているほかのスレッドを、wakeup
メソッドを呼び出した場合のようにただちに終了する必要があります。
IOException
- セレクタのクローズ中に入出力エラーが発生した場合public final boolean isOpen()
Selector
の記述:
Selector
内の isOpen
public final SelectorProvider provider()
Selector
内の provider
protected final Set<SelectionKey> cancelledKeys()
このセットは、同期化されている場合に限り使用可能です。
protected abstract SelectionKey register(AbstractSelectableChannel ch, int ops, Object att)
このメソッドは、このセレクタに実際にチャネルを登録するために、チャネルの register
メソッドによって呼び出されます。
ch
- 登録されるチャネルops
- 有効な初期対象セットatt
- 結果として得られるキーの初期添付
protected final void deregister(AbstractSelectionKey key)
セレクタは、登録解除するチャネルごとにこのメソッドを呼び出す必要があります。
key
- 削除される選択キーprotected final void begin()
このセレクタの割り込みを実装する際には、上記に示した try ... finally ブロックを使って、このメソッドと end
メソッドをペアで呼び出す必要があります。
このメソッドを呼び出すと、セレクタに対する入出力操作でブロックされているスレッドの interrupt
メソッドが呼び出された場合に、セレクタの wakeup
メソッドが呼び出されます。
protected final void end()
このセレクタの割り込みを実装する際には、上記に示した try ... finally ブロックを使って、このメソッドと begin
メソッドをペアで呼び出す必要があります。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。