SelectionKey Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Токен, представляющий регистрацию SelectableChannel
с помощью Selector
.
[Android.Runtime.Register("java/nio/channels/SelectionKey", DoNotGenerateAcw=true)]
public abstract class SelectionKey : Java.Lang.Object
[<Android.Runtime.Register("java/nio/channels/SelectionKey", DoNotGenerateAcw=true)>]
type SelectionKey = class
inherit Object
- Наследование
- Производный
- Атрибуты
Комментарии
Токен, представляющий регистрацию SelectableChannel
с помощью Selector
.
Ключ выбора создается каждый раз, когда канал регистрируется с помощью селектора. Ключ остается действительным до тех пор, пока он не будет отменен путем вызова его #cancel cancel
метода, закрытия канала или закрытия его селектора. Отмена ключа не приводит к немедленному удалению ключа из селектора; Вместо этого он добавляется в набор<> i отмененных ключей селектора <>для удаления во время следующей операции выбора. Допустимость ключа может быть проверена путем вызова его #isValid isValid
метода .
"opsets">
Ключ выбора содержит два набора операций , представленных в виде целочисленных значений. Каждый бит набора операций обозначает категорию доступных для выбора операций, поддерживаемых каналом ключа.
<ul>
<Литий>
Набор процентов определяет, какие категории операций будут проверяться на готовность при следующем вызове одного из методов выбора селектора. Набор процентов инициализируется значением, заданным при создании ключа; позже его можно изменить с помощью #interestOps(int)
метода .
</Литий>
<Литий>
Готовый набор определяет категории операций, для которых канал ключа был обнаружен как готовый с помощью селектора ключа. Готовый набор инициализируется равным нулю при создании ключа; Позже он может быть обновлен селектором во время операции выбора, но не может быть обновлен напрямую.
</Литий>
</ul>
То, что готовый набор ключа выбора указывает, что его канал готов к определенной категории операций, является указанием, но не гарантией того, что операция в такой категории может быть выполнена потоком без блокировки потока. Готовый набор, скорее всего, будет точным сразу после завершения операции выбора. Скорее всего, внешние события и операции ввода-вывода, вызываемые в соответствующем канале, могут быть сделаны неточными.
Этот класс определяет все известные биты набора операций, но именно то, какие биты поддерживаются данным каналом, зависит от типа канала. Каждый подкласс SelectableChannel
определяет SelectableChannel#validOps() validOps()
метод, который возвращает набор, определяющий только те операции, которые поддерживаются каналом. Попытка задать или проверить бит набора операций, который не поддерживается каналом ключа, приведет к соответствующему исключению во время выполнения.
Часто требуется связать некоторые данные конкретного приложения с ключом выбора, например объект, который представляет состояние протокола более высокого уровня и обрабатывает уведомления о готовности для реализации этого протокола. Поэтому ключи выбора поддерживают вложение одного произвольного объекта в ключ. Объект можно присоединить с помощью метода , #attach attach
а затем получить с помощью #attachment() attachment
метода .
Ключи выбора безопасны для использования несколькими параллельными потоками. Операция выбора всегда будет использовать значение набора процентов, которое было текущим на момент начала операции.
Добавлено в версии 1.4.
Документация по Java для java.nio.channels.SelectionKey
.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.
Конструкторы
SelectionKey() |
Создает экземпляр этого класса. |
SelectionKey(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Поля
OpAccept |
Устаревшие..
Разрядная установка операций для операций приема сокетов. |
OpConnect |
Устаревшие..
Разрядная установка операций для операций подключения сокетов. |
OpRead |
Устаревшие..
Бит, заданный операцией для операций чтения. |
OpWrite |
Устаревшие..
Бит, заданный операцией для операций записи. |
Свойства
Class |
Возвращает класс среды выполнения данного объекта |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
IsAcceptable |
Проверяет, готов ли канал этого ключа принять новое подключение сокета. |
IsConnectable |
Проверяет, завершена ли операция подключения сокета в канале этого ключа или завершилась сбоем. |
IsReadable |
Проверяет, готов ли канал этого ключа к чтению. |
IsValid |
Указывает, является ли этот ключ допустимым. |
IsWritable |
Проверяет, готов ли канал этого ключа к записи. |
JniIdentityHashCode |
Токен, представляющий регистрацию |
JniPeerMembers |
Токен, представляющий регистрацию |
PeerReference |
Токен, представляющий регистрацию |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
Attach(Object) |
Присоединяет заданный объект к этому ключу. |
Attachment() |
Извлекает текущее вложение. |
Cancel() |
Запрашивает отмену регистрации канала этого ключа с его селектором. |
Channel() |
Возвращает канал, для которого был создан этот ключ. |
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
Dispose() |
Токен, представляющий регистрацию |
Dispose(Boolean) |
Токен, представляющий регистрацию |
Equals(Object) |
Указывает, равен ли какой-то другой объект этому объекту. (Унаследовано от Object) |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
InterestOps() |
Извлекает набор процентов этого ключа. |
InterestOps(Operations) |
Извлекает набор процентов этого ключа. |
InterestOpsAnd(Int32) |
Атомарным образом задает для этого ключа значение битового пересечения ("и") существующего набора процентов и заданного значения. |
InterestOpsOr(Int32) |
Атомарным образом задает набор интересов этого ключа в побитовое объединение ("или") существующего набора процентов и заданное значение. |
JavaFinalize() |
Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект . (Унаследовано от Object) |
Notify() |
Пробуждает один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. (Унаследовано от Object) |
ReadyOps() |
Извлекает готовый набор этого ключа. |
Selector() |
Возвращает селектор, для которого был создан этот ключ. |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
ToArray<T>() |
Токен, представляющий регистрацию |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Токен, представляющий регистрацию |
Wait() |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.>< (Унаследовано от Object) |
Wait(Int64) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
Токен, представляющий регистрацию |
IJavaPeerable.DisposeUnlessReferenced() |
Токен, представляющий регистрацию |
IJavaPeerable.Finalized() |
Токен, представляющий регистрацию |
IJavaPeerable.JniManagedPeerState |
Токен, представляющий регистрацию |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Токен, представляющий регистрацию |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Токен, представляющий регистрацию |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Токен, представляющий регистрацию |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверенного средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Токен, представляющий регистрацию |
GetJniTypeName(IJavaPeerable) |
Токен, представляющий регистрацию |