Spec-Zone.ru › OpenJDK 8

Класс AbstractSelectableChannel

  • java.lang.Object
    • java.nio.channels.spi.AbstractInterruptibleChannel
      • java.nio.channels.SelectableChannel
        • java.nio.channels.spi.AbstractSelectableChannel
Все реализованные интерфейсы:
Closeable, AutoCloseable, Channel, InterruptibleChannel
Непосредственные известные подклассы:
DatagramChannel, Pipe.SinkChannel, Pipe.SourceChannel, ServerSocketChannel, SocketChannel

public abstract class AbstractSelectableChannel
extends SelectableChannel

Базовый класс для реализации каналов, допускающих выбор событий.

Этот класс определяет методы, которые обрабатывают механику регистрации, отмены регистрации и закрытия канала. Он сохраняет текущий режим блокировки канала, а также его текущий набор ключей выбора. Он выполняет всю синхронизацию, необходимую для реализации спецификации SelectableChannel. Реализации абстрактных защищенных методов, определенных в этом классе, не требуют синхронизации с другими потоками, которые могут участвовать в тех же операциях.

С:
1.4

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

Модификатор Конструктор и описание
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

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

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, чтобы выполнить фактическую работу по закрытию канала. Этот метод вызывается только если канал еще не закрыт, и он никогда не вызывается более одного раза.

Реализация этого метода должна обеспечить, чтобы любая другая нить, которая заблокирована в операции ввода-вывода на этом канале, возвращалась немедленно, либо сбрасывая исключение, либо возвращаясь обычным образом.

Исключения:
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 - Если произошла ошибка ввода-вывода

© 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