IOTimerEventSource
Время базировало механизм источника события.
Источник события, реализующий простой таймер. Обработчик тайм-аута вызывают, как только истекает период тайм-аута. Этот обработчик тайм-аута вызовет цикл работы, к которому присоединен этот источник события.
Обычно источник события таймера будет использоваться для реализации тайм-аута. В целом, когда драйвер выполняет запрос, он должен будет установить вызов для отслеживания то, когда не завершится I/O. Этот класс разработан для создания этого несколько проще.
Помните, что система не гарантирует точности выноски. Возможно, что более высокий приоритетный поток работает, который задержит выполнение подпрограммы действия. Фактически поток будет сделан выполнимым в точное требуемое время в точности декрементора CPU's базируемое прерывание, но планировщик будет тогда управлять выполнением.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Отключите любые выдающиеся вызовы к этому источнику события.
Объявление
C++
virtual void cancelTimeout();Обсуждение
Очистите вниз любые вызовы oustanding. К тому времени, когда эта функция завершается, гарантируется, что действие не вызовут снова.
-
Отключите синхронизированную выноску.
Объявление
C++
virtual void disable();Обсуждение
То, когда отключат возвраты, действие не вызовут до следующего раза включают (qv), вызывают.
-
Включает вызов к действию.
Объявление
C++
virtual void enable();Обсуждение
Позволяет функции действия быть вызванной. Если источник события таймера был отключен, в то время как вызов был выдающимся, и вызов не был отменен тогда, это будет перепланироваться. Таким образом, отключить/разрешить пара отключит вызовы от этого источника события.
-
Реализация подкласса свободного метода, освобождает calloutEntry
Объявление
C++
virtual void free(); -
Когда тайм-аут истекает, инициализирует таймер с владельцем и обработчик для вызова.
Объявление
C++
virtual bool init( OSObject *owner, Action action = 0);Параметры
owneraction -
Установите обратный вызов в после задержки галочек декрементора. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn setTimeout( AbsoluteTimeinterval);Параметры
intervalЗадержка с этого времени для пробуждения в галочках декрементора.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в после задержки некоторого модуля. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn setTimeout( UInt32interval, UInt32 scale_factor =scale_factor);Параметры
intervalЗадержка с этого времени для пробуждения в некотором определенном модуле.
scale_factorОпределите модуль интервала, значения по умолчанию к наносекундам.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Тайм-аут набора как функция calloutEntry.
Объявление
C++
virtual void setTimeoutFunc();Обсуждение
IOTimerEventSource в настоящее время основан на kern/thread_call.h APIs. Эта функция выделяет calloutEntry задействованную переменную при помощи thread_call_allocate (тайм-аут, это). Если необходимо записать собственный подкласс IOTimerEventSource, вероятно, необходимо переопределить этот метод для выделения записи, указывающей на собственную подпрограмму тайм-аута.
-
Установите обратный вызов в после задержки миллисекунд. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn setTimeoutMS( UInt32interval);Параметры
intervalЗадержка с этого времени для пробуждения, время в миллисекундах.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в после задержки галочек планировщика. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn setTimeoutTicks( UInt32interval);Параметры
intervalЗадержка с этого времени для пробуждения, в галочках планировщика, независимо от того, что это может быть.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в после задержки в микросекундах. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn setTimeoutUS( UInt32interval);Параметры
intervalЗадержка с этого времени для пробуждения, время в микросекундах.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Функция, направляющая вызов от механизма тайм-аута OS' в контекст цикла работы.
Объявление
C++
static void timeout( void *self);Параметры
selfЭтот параметр будет брошен в IOTimerEventSource.
Обсуждение
тайм-аут не будет обычно вызывать, ни переопределять подкласс. Если источник события включен тогда близко логический элемент цикла работы, и вызовите подпрограмму действия.
-
Выделяет и возвращает инициализированный экземпляр таймера.
Объявление
C++
static IOTimerEventSource * timerEventSource( OSObject *owner, Action action = 0);Параметры
owneraction -
Установите обратный вызов в это абсолютное время.
Объявление
C++
virtual IOReturn wakeAtTime( AbsoluteTimeabstime);Параметры
abstimeАбсолютное Время, когда проснуться, считаемый в 'decrementer' модулях и запускается в нуле когда начальные загрузки системы.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если действие не было объявлено init или IOEventSource:: setAction (qqv).
Обсуждение
Запускает таймер, который истечет в abstime. После того, как это истечет, таймер вызовет 'действие', зарегистрированное в init () функция. Этот таймер не является периодическим, дальнейший вызов необходим, чтобы сбросить и перезапустить таймер после того, как это истекает.
-
Установите обратный вызов в это абсолютное время. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn wakeAtTime( UInt32abstime, UInt32 scale_factor =scale_factor);Параметры
abstimeВремя для пробуждения в некотором модуле.
scale_factorОпределите модуль abstime, значения по умолчанию к наносекундам.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в это абсолютное время. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn wakeAtTimeMS( UInt32abstime);Параметры
abstimeВремя для пробуждения в миллисекундах.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в это абсолютное время. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn wakeAtTimeTicks( UInt32abstime);Параметры
abstimeВремя для пробуждения в квантах планировщика независимо от того, что это?
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в это абсолютное время. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn wakeAtTimeUS( UInt32abstime);Параметры
abstimeВремя для пробуждения в микросекундах.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Объявление
C++
typedef void ( *Action)( OSObject *owner, IOTimerEventSource *sender);Параметры
ownerВладение целевым объектом. Примечание по потрясающему совпадению первый параметр в выноске C в настоящее время используется для определения цели функции членства C++.
senderИспытавший таймаут объект.
Обсуждение
'C' Указатель функции, определяющий подпрограмму выноски этого источника события.
Оператор импорта
Objective C
#include <IOCommandGate.h>;Доступность
Доступный в OS X v10.0 через OS X v10.5.
-
Объявление
C++
struct ExpansionData { SInt32 calloutGeneration; IOWorkLoop *workLoop; };Обсуждение
Эта структура является частной к реализации IOTimerEventSource.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData *reserved; -
запись thread_call для предзарегистрированных выносок потока
Объявление
C++
void *calloutEntry; -
время для пробуждения затем посмотрите, включают.
Объявление
C++
AbsoluteTime abstime;
