Spec-Zone.ru › OpenJDK 8

Класс SelectorProvider

  • java.lang.Object
    • java.nio.channels.spi.SelectorProvider

public abstract class SelectorProvider
extends Object

Класс-провайдер сервисов для селекторов и каналов, поддерживающих выбор.

Провайдер селекторов — это конкретный подкласс этого класса, имеющий конструктор без аргументов и реализующий абстрактные методы, указанные ниже. В данном вызове виртуальной машины Java поддерживается единственный системный провайдер по умолчанию, который возвращается методом provider. Первый вызов этого метода найдёт провайдера по умолчанию, как описано ниже.

Системный провайдер по умолчанию используется статическими методами open классов DatagramChannel, Pipe, Selector, ServerSocketChannel и SocketChannel. Он также используется методом System.inheritedChannel(). Программа может использовать провайдер, отличный от провайдера по умолчанию, создав экземпляр этого провайдера и затем непосредственно вызвав методы open , определённые в этом классе.

Все методы этого класса безопасны для использования несколькими одновременными потоками.

Since:
1.4

Конструкторы

Модификатор Конструктор и описание
protected SelectorProvider()

Инициализирует новый экземпляр этого класса.

Методы

Модификатор и тип Метод и описание
Channel inheritedChannel()

Возвращает канал, унаследованный от сущности, которая создала эту виртуальную машину Java.

abstract DatagramChannel openDatagramChannel()

Создаёт канал датаграмм.

abstract DatagramChannel openDatagramChannel(ProtocolFamily family)

Создаёт канал датаграмм.

abstract Pipe openPipe()

Создаёт канал типа pipe.

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

Подробное описание конструкторов

SelectorProvider

protected SelectorProvider()

Инициализирует новый экземпляр этого класса.

Исключения:
SecurityException - Если установлен менеджер безопасности и он запрещает RuntimePermission("selectorProvider")

Подробное описание методов

provider

public static SelectorProvider provider()

Возвращает системный провайдер селектора по умолчанию для данного вызова виртуальной машины Java.

Первый вызов этого метода находит объект провайдера по умолчанию следующим образом:

  1. Если системная переменная java.nio.channels.spi.SelectorProvider определена, то она считается полным полным именем класса провайдера. Класс загружается и создаётся; если этот процесс завершается неудачно, генерируется неопределённая ошибка.

  2. Если класс провайдера установлен в файле jar, видимом загрузчиком классов системы, и этот файл jar содержит файл конфигурации провайдера под названием java.nio.channels.spi.SelectorProvider в каталоге ресурсов META-INF/services, то используется имя первого класса, указанного в этом файле. Класс загружается и создаётся; если этот процесс завершается неудачно, генерируется неопределённая ошибка.

  3. Наконец, если провайдер не был указан ни одним из вышеперечисленных способов, то создаётся системный класс провайдера по умолчанию, и результат возвращается.

Следующие вызовы этого метода возвращают провайдера, который был возвращён первым вызовом.

Возвращает:
Системный провайдер селектора по умолчанию

openDatagramChannel

public abstract DatagramChannel openDatagramChannel()
                                             throws IOException

Создаёт канал датаграмм.

Возвращает:
Новый канал
Исключения:
IOException - Если произошла ошибка ввода-вывода

openDatagramChannel

public abstract DatagramChannel openDatagramChannel(ProtocolFamily family)
                                             throws IOException

Создаёт канал датаграмм.

Параметры:
family - Семейство протоколов
Возвращает:
Новый канал датаграмм
Исключения:
UnsupportedOperationException - Если указанное семейство протоколов не поддерживается
IOException - Если произошла ошибка ввода-вывода
Since:
1.7

openPipe

public abstract Pipe openPipe()
                       throws IOException

Создаёт канал типа pipe.

Возвращает:
Новый канал pipe
Исключения:
IOException - Если произошла ошибка ввода-вывода

openSelector

public abstract AbstractSelector openSelector()
                                       throws IOException

Создаёт селектор.

Возвращает:
Новый селектор
Исключения:
IOException - Если произошла ошибка ввода-вывода

openServerSocketChannel

public abstract ServerSocketChannel openServerSocketChannel()
                                                     throws IOException

Создаёт канал серверного сокета.

Возвращает:
Новый канал
Исключения:
IOException - Если произошла ошибка ввода-вывода

openSocketChannel

public abstract SocketChannel openSocketChannel()
                                         throws IOException

Создаёт канал сокета.

Возвращает:
Новый канал
Исключения:
IOException - Если произошла ошибка ввода-вывода

inheritedChannel

public Channel inheritedChannel()
                         throws IOException

Возвращает канал, унаследованный от сущности, которая создала эту виртуальную машину Java.

На многих операционных системах процесс, такой как виртуальная машина Java, может быть запущен таким образом, что позволяет процессу унаследовать канал от сущности, которая создала процесс. Способ, которым это делается, зависит от системы, как и возможные сущности, к которым может быть подключен канал. Например, в системах UNIX используется демон интернет-услуг (inetd) для запуска программ для обслуживания запросов при поступлении запроса на связанный сетевой порт. В этом примере процесс, который запускается, наследует канал, представляющий сетевой сокет.

В случаях, когда унаследованный канал представляет сетевой сокет, тип Channel, возвращаемый этим методом, определяется следующим образом:

  • Если унаследованный канал представляет ориентированный на поток сокет подключения, возвращается SocketChannel. Канал сокета, по крайней мере изначально, находится в режиме блокировки, связан с адресом сокета и подключен к узлу.

  • Если унаследованный канал представляет ориентированный на поток сокет прослушивания, возвращается ServerSocketChannel. Канал серверного сокета, по крайней мере изначально, находится в режиме блокировки и связан с адресом сокета.

  • Если унаследованный канал представляет канал ориентированный на датаграммы, возвращается DatagramChannel. Канал датаграмм, по крайней мере изначально, находится в режиме блокировки и связан с адресом сокета.

В дополнение к сетевым каналам, описанным выше, этот метод может возвращать другие типы каналов в будущем.

Первый вызов этого метода создает канал, который возвращается. Последующие вызовы этого метода возвращают тот же канал.

Возвращает:
Унаследованный канал, если есть, в противном случае null.
Исключения:
IOException - Если произошла ошибка ввода-вывода
SecurityException - Если установлен менеджер безопасности и он запрещает RuntimePermission("inheritedChannel")
Since:
1.5

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API