モジュール java.base
パッケージ java.nio.channels.spi

クラスAbstractSelectableChannel

    • コンストラクタの詳細

      • AbstractSelectableChannel

        protected AbstractSelectableChannel​(SelectorProvider provider)
        このクラスの新しいインスタンスを初期化します。
        パラメータ:
        provider - このチャネルの作成元プロバイダ
    • メソッドの詳細

      • provider

        public final SelectorProvider provider​()
        このチャネルの作成元プロバイダを返します。
        定義:
        provider、クラス: SelectableChannel
        戻り値:
        このチャネルの作成元プロバイダ
      • isRegistered

        public final boolean isRegistered​()
        クラスからコピーされた説明: SelectableChannel
        現在このチャネルがセレクタに登録されているかどうかを判断します。 新しく作成されたチャネルは登録されていません。

        キーの取り消しからチャネルの登録解除までの間に発生する必然的な遅延のため、キーをすべて取り消しても、しばらくの間チャネルの登録は解除されません。 チャネルをクローズしたときも同様です。

        定義:
        isRegistered、クラス: SelectableChannel
        戻り値:
        このチャネルが登録されている場合にかぎりtrue
      • keyFor

        public final SelectionKey keyFor​(Selector sel)
        クラスからコピーされた説明: SelectableChannel
        チャネルが指定されたセレクタに登録されていることを示すキーを取得します。
        定義:
        keyFor、クラス: SelectableChannel
        パラメータ:
        sel - セレクタ
        戻り値:
        前回このチャネルを指定されたセレクタに登録したとき返されたキー。現在このチャネルが指定されたセレクタに登録されていない場合はnull
      • register

        public 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 - このチャネルがクローズしている場合
      • implCloseChannel

        protected final void implCloseChannel​()
                                       throws IOException
        現在のチャネルをクローズします。

        このメソッドは、AbstractInterruptibleChannelクラスで指定されており、closeメソッドによって呼び出されたあと、このチャネルを実際にクローズする処理を行うためにimplCloseSelectableChannelメソッドを呼び出します。 次に、このチャネルのキーをすべて取り消します。

        定義:
        implCloseChannel、クラス: AbstractInterruptibleChannel
        例外:
        IOException - チャネルのクローズ中に入出力エラーが発生した場合
      • implCloseSelectableChannel

        protected abstract void implCloseSelectableChannel​()
                                                    throws IOException
        この選択可能チャネルをクローズします。

        このメソッドは、チャネルをクローズする実際の処理を実行するためにcloseメソッドによって呼び出されます。 このメソッドは、チャネルがまだクローズしていない場合にのみ呼び出され、2回以上呼び出されることはありません。

        このメソッドの実装は、このチャネルに対する入出力操作の途中でブロックされるその他のスレッドを、例外をスローするか、通常の方法を使ってただちに終了させることになっています。

        例外:
        IOException - 入出力エラーが発生した場合
      • isBlocking

        public final boolean isBlocking​()
        クラスからコピーされた説明: SelectableChannel
        このチャネル上の個々の入出力操作が前の入出力操作が完了するまでブロックされるかどうかを判断します。 新しく作成されたチャネルは常にブロック・モードです。

        このチャネルがクローズしている場合、このメソッドの戻り値は特定されません。

        定義:
        isBlocking、クラス: SelectableChannel
        戻り値:
        このチャネルがブロック・モードである場合にかぎりtrue
      • blockingLock

        public final Object blockingLock​()
        クラスからコピーされた説明: SelectableChannel
        configureBlockingおよびregisterメソッドが同期するオブジェクトを取得します。 この機能は、特定のブロック・モードを短時間保持する必要があるアダプタを実装する場合に便利です。
        定義:
        blockingLock、クラス: SelectableChannel
        戻り値:
        ブロック・モードのロック・オブジェクト
      • configureBlocking

        public final SelectableChannel configureBlocking​(boolean block)
                                                  throws IOException
        このチャネルのブロック・モードを調整します。

        指定されたブロック・モードが現在のブロック・モードと異なっている場合、このメソッドは、適切なロックを保持した状態でimplConfigureBlockingメソッドを呼び出してモードを変更します。

        定義:
        configureBlocking、クラス: SelectableChannel
        パラメータ:
        block - trueの場合はこのチャネルがブロック・モードになり、falseの場合は非ブロック・モードになる
        戻り値:
        この選択可能チャネル
        例外:
        ClosedChannelException - このチャネルがクローズしている場合
        IOException - 入出力エラーが発生した場合
      • implConfigureBlocking

        protected abstract void implConfigureBlocking​(boolean block)
                                               throws IOException
        このチャネルのブロック・モードを調整します。

        このメソッドは、ブロック・モードを変更する実際の処理を実行するためにconfigureBlockingメソッドによって呼び出されます。 このメソッドは、新しいモードが現在のモードと異なっている場合に限り呼び出されます。

        パラメータ:
        block - trueの場合はこのチャネルがブロック・モードになり、falseの場合は非ブロック・モードになる
        例外:
        IOException - 入出力エラーが発生した場合