|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.nio.channels.spi.SelectorProvider
public abstract class SelectorProvider
セレクタおよび選択可能チャネルのサービスプロバイダクラスです。
セレクタプロバイダは、ゼロ引数コンストラクタを持ち、以下の抽象メソッドを実装する、このクラスの具象サブクラスです。指定された Java 仮想マシン呼び出しは、provider
メソッドによって返される、システム全体で単一のデフォルトプロバイダインスタンスを保持します。このメソッドの最初の呼び出しは、以下のデフォルトプロバイダを検出します。
システム全体のデフォルトプロバイダは、DatagramChannel
、Pipe
、Selector
、ServerSocketChannel
、および SocketChannel
の各クラスの静的な open メソッドによって使用されるほか、System.inheritedChannel()
メソッドによっても使用されます。プログラム内でデフォルト以外のプロバイダを使用する場合は、そのプロバイダをインスタンス化したあと、このクラスに定義されている open メソッドを直接呼び出します。
このクラス内のすべてのメソッドは、複数の並行スレッドで安全に使用できます。
コンストラクタの概要 | |
---|---|
protected |
SelectorProvider()
このクラスの新しいインスタンスを初期化します。 |
メソッドの概要 | |
---|---|
Channel |
inheritedChannel()
Java 仮想マシンを作成したエンティティから継承されたチャネルを返します。 |
abstract DatagramChannel |
openDatagramChannel()
データグラムチャネルをオープンします。 |
abstract Pipe |
openPipe()
パイプをオープンします。 |
abstract AbstractSelector |
openSelector()
セレクタをオープンします。 |
abstract ServerSocketChannel |
openServerSocketChannel()
サーバソケットチャネルをオープンします。 |
abstract SocketChannel |
openSocketChannel()
ソケットチャネルをオープンします。 |
static SelectorProvider |
provider()
この Java 仮想マシン呼び出しのためのシステム全体のデフォルトセレクタプロバイダを返します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
protected SelectorProvider()
SecurityException
- セキュリティマネージャがインストールされており、そのマネージャが RuntimePermission
("selectorProvider") を拒否する場合メソッドの詳細 |
---|
public static SelectorProvider provider()
このメソッドを最初に呼び出したとき、次の手順でデフォルトプロバイダオブジェクトが検出されます。
システムプロパティ java.nio.channels.spi.SelectorProvider が定義されている場合、これが具象プロバイダクラスの完全指定名と見なされます。クラスがロードされ、そのインスタンスが作成されます。この処理に失敗した場合は、詳細不明エラーがスローされます。
システムクラスローダの認識する jar ファイルにプロバイダクラスがインストールされていて、この jar ファイルにリソースディレクトリ META-INF/services 内のプロバイダ構成ファイル java.nio.channels.spi.SelectorProvider が含まれている場合、ファイルに指定されている最初のクラス名が使用されます。クラスがロードされ、インスタンスが作成されます。この処理に失敗した場合、詳細不明エラーがスローされます。
最後に、上記の手段で指定されたプロバイダが存在しない場合は、システムのデフォルトプロバイダクラスのインスタンスが作成され、結果が返されます。
次回以降の呼び出しでも、1 回目の呼び出し時に返されたプロバイダが返されます。
public abstract DatagramChannel openDatagramChannel() throws IOException
IOException
public abstract Pipe openPipe() throws IOException
IOException
public abstract AbstractSelector openSelector() throws IOException
IOException
public abstract ServerSocketChannel openServerSocketChannel() throws IOException
IOException
public abstract SocketChannel openSocketChannel() throws IOException
IOException
public Channel inheritedChannel() throws IOException
Java 仮想マシンなど、多くのオペレーティングシステムのプロセスを起動する際に、そのプロセスを作成したエンティティからチャネルを継承させることができます。ただし、その方法はシステムに依存します。チャネルの接続先として使用可能なエンティティについても同様です。たとえば、UNIX システムの場合、特定の関連ネットワークポート上で要求が受信されると、インターネットサービスデーモン (inetd) 経由でその要求を処理するプログラムが起動されます。この例の場合、起動されたプロセスは、ネットワークソケットを表すチャネルを継承します。
継承されたチャネルがネットワークソケットを表現している場合、このメソッドから返される Channel
の型は、次の手順で決定されます。
継承されたチャネルがストリーム指向の接続済みソケットを表現している場合、SocketChannel
が返されます。ソケットチャネルは、少なくとも最初はブロックモードであり、特定のソケットアドレスにバインドされており、特定のピアに接続されています。
継承されたチャネルがストリーム指向の待機中のソケットを表現している場合、ServerSocketChannel
が返されます。サーバソケットチャネルは、少なくとも最初はブロックモードであり、特定のソケットアドレスにバインドされています。
継承されたチャネルがデータグラム指向のソケットを表現している場合、DatagramChannel
が返されます。データグラムチャネルは、少なくとも最初はブロックモードであり、特定のソケットアドレスにバインドされています。
このメソッドは、ここで説明したネットワーク指向のチャネルに加え、将来的にほかの種類のチャネルも返すようになる予定です。
このメソッドの初回呼び出し時には、チャネルが作成され、それが返されます。このメソッドの後続呼び出し時には、その同じチャネルが返されます。
IOException
- 入出力エラーが発生した場合
SecurityException
- セキュリティマネージャがインストールされており、そのマネージャが RuntimePermission
("inheritedChannel") を拒否した場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。