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);Параметры
owner
action
-
Установите обратный вызов в после задержки галочек декрементора. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn setTimeout( AbsoluteTime
interval
);Параметры
interval
Задержка с этого времени для пробуждения в галочках декрементора.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в после задержки некоторого модуля. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn setTimeout( UInt32
interval
, 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( UInt32
interval
);Параметры
interval
Задержка с этого времени для пробуждения, время в миллисекундах.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в после задержки галочек планировщика. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn setTimeoutTicks( UInt32
interval
);Параметры
interval
Задержка с этого времени для пробуждения, в галочках планировщика, независимо от того, что это может быть.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в после задержки в микросекундах. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn setTimeoutUS( UInt32
interval
);Параметры
interval
Задержка с этого времени для пробуждения, время в микросекундах.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Функция, направляющая вызов от механизма тайм-аута OS' в контекст цикла работы.
Объявление
C++
static void timeout( void *
self
);Параметры
self
Этот параметр будет брошен в IOTimerEventSource.
Обсуждение
тайм-аут не будет обычно вызывать, ни переопределять подкласс. Если источник события включен тогда близко логический элемент цикла работы, и вызовите подпрограмму действия.
-
Выделяет и возвращает инициализированный экземпляр таймера.
Объявление
C++
static IOTimerEventSource * timerEventSource( OSObject *
owner
, Action action = 0);Параметры
owner
action
-
Установите обратный вызов в это абсолютное время.
Объявление
C++
virtual IOReturn wakeAtTime( AbsoluteTime
abstime
);Параметры
abstime
Абсолютное Время, когда проснуться, считаемый в 'decrementer' модулях и запускается в нуле когда начальные загрузки системы.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если действие не было объявлено init или IOEventSource:: setAction (qqv).
Обсуждение
Запускает таймер, который истечет в abstime. После того, как это истечет, таймер вызовет 'действие', зарегистрированное в init () функция. Этот таймер не является периодическим, дальнейший вызов необходим, чтобы сбросить и перезапустить таймер после того, как это истекает.
-
Установите обратный вызов в это абсолютное время. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn wakeAtTime( UInt32
abstime
, UInt32 scale_factor =scale_factor
);Параметры
abstime
Время для пробуждения в некотором модуле.
scale_factor
Определите модуль abstime, значения по умолчанию к наносекундам.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в это абсолютное время. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn wakeAtTimeMS( UInt32
abstime
);Параметры
abstime
Время для пробуждения в миллисекундах.
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в это абсолютное время. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn wakeAtTimeTicks( UInt32
abstime
);Параметры
abstime
Время для пробуждения в квантах планировщика независимо от того, что это?
Возвращаемое значение
kIOReturnSuccess, если все прекрасно, kIOReturnNoResources, если не было объявлено действие.
-
Установите обратный вызов в это абсолютное время. См. wakeAtTime (AbsoluteTime).
Объявление
C++
virtual IOReturn wakeAtTimeUS( UInt32
abstime
);Параметры
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;