нл:: Переплетение:: Система:: Платформа:: Слой
Краткое содержание
Функции | |
---|---|
DidInit ( Layer & aLayer, void *aContext, Error aStatus) | NL_DLL_EXPORT void Это крючок пост-инициализации уровня системы Weave для конкретной платформы. |
DidShutdown ( Layer & aLayer, void *aContext, Error aStatus) | NL_DLL_EXPORT void Это крючок предварительного завершения работы Weave System Layer для конкретной платформы. |
DispatchEvent ( Layer & aLayer, void *aContext, Event aEvent) | NL_DLL_EXPORT Error Это крючок отправки событий/сообщений, специфичный для платформы. |
DispatchEvents ( Layer & aLayer, void *aContext) | NL_DLL_EXPORT Error Это крючок отправки событий/сообщений, специфичный для платформы. |
GetClock_Monotonic (void) | uint64_t Специфическая для платформы функция для получения монотонного системного времени в микросекундах. |
GetClock_MonotonicHiRes (void) | uint64_t Специфическая для платформы функция для получения монотонного системного времени высокого разрешения в микросекундах. |
GetClock_MonotonicMS (void) | uint64_t Специфическая для платформы функция для получения монотонного системного времени в миллисекундах. |
GetClock_RealTime (uint64_t & curTime) | Error Специфическая для платформы функция для получения текущего реального (гражданского) времени в микросекундном формате времени Unix. |
GetClock_RealTimeMS (uint64_t & curTimeMS) | Error Специфическая для платформы функция для получения текущего реального (гражданского) времени в миллисекундном формате времени Unix. |
PostEvent ( Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument) | NL_DLL_EXPORT Error Это крючок для событий/сообщений, специфичный для платформы. |
SetClock_RealTime (uint64_t newCurTime) | Error Специфическая для платформы функция установки текущего реального (гражданского) времени. |
StartTimer ( Layer & aLayer, void *aContext, uint32_t aMilliseconds) | NL_DLL_EXPORT Error Это крючок отправки событий/сообщений, специфичный для платформы. |
WillInit ( Layer & aLayer, void *aContext) | NL_DLL_EXPORT Error Это крючок предварительной инициализации уровня системы Weave для конкретной платформы. |
WillShutdown ( Layer & aLayer, void *aContext) | NL_DLL_EXPORT Error Это крючок предварительного завершения работы Weave System Layer для конкретной платформы. |
Функции
Дидинит
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
Это крючок пост-инициализации уровня системы Weave для конкретной платформы.
Это можно переопределить, установив определение препроцессора WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS .
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
СделалВыключение
NL_DLL_EXPORT void DidShutdown( Layer & aLayer, void *aContext, Error aStatus )
Это крючок предварительного завершения работы Weave System Layer для конкретной платформы.
Это можно переопределить, установив определение препроцессора WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS .
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возврат | WEAVE_SYSTEM_NO_ERROR в случае успеха; в противном случае — конкретная ошибка, указывающая причину сбоя завершения работы. Возврат неуспешного статуса приведет к отмене завершения работы. |
DispatchEvent
NL_DLL_EXPORT Error DispatchEvent( Layer & aLayer, void *aContext, Event aEvent )
Это крючок отправки событий/сообщений, специфичный для платформы.
Это можно переопределить, установив определение препроцессора WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS .
Это отправляет указанное событие для обработки, демаршалируя тип и аргументы события для передачи в Weave System Layer::HandleEvent для фактической отправки.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возвращаемые значения |
|
Отправка событий
NL_DLL_EXPORT Error DispatchEvents( Layer & aLayer, void *aContext )
Это крючок отправки событий/сообщений, специфичный для платформы.
Это можно переопределить, подтвердив определение препроцессора WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS .
Это вызывает цикл событий, ожидающий очереди, обслуживающей этот экземпляр, извлекающий события из этой очереди и затем отправляющий их для обработки.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возвращаемые значения |
|
GetClock_Monotonic
uint64_t GetClock_Monotonic( void )
Специфическая для платформы функция для получения монотонного системного времени в микросекундах.
Ожидается, что эта функция вернет время в микросекундах, прошедшее с произвольной, определенной платформой эпохи. Реализации платформы обязаны возвращать значение, которое постоянно увеличивается (т. е. никогда не переносится) между перезагрузками системы. Кроме того, базовый источник времени должен непрерывно работать во время любых режимов сна системы, которые не влекут за собой перезапуск после пробуждения.
Эпоха времени, возвращаемая этой функцией, не обязательно должна совпадать с эпохой для любой другой функции GetClock..., включая GetClock_MonotonicMS().
Ожидается, что эта функция будет потокобезопасной на любой платформе, использующей многопоточность.
Подробности | |
---|---|
Возврат | Прошедшее время в микросекундах с произвольной, определяемой платформой эпохи. |
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
Специфическая для платформы функция для получения монотонного системного времени высокого разрешения в микросекундах.
Ожидается, что эта функция вернет время в микросекундах, прошедшее с произвольной, определенной платформой эпохи. Значения, возвращаемые GetClock_MonotonicHiRes(), должны быть постоянно возрастающими (т.е. никогда не переноситься). Однако базовый таймер не обязан работать непрерывно во время состояния глубокого сна системы.
Платформе рекомендуется реализовать GetClock_MonotonicHiRes() с использованием таймера высокого разрешения, который не подлежит постепенной корректировке часов (повороту). На платформах без такого таймера GetClock_MonotonicHiRes() может возвращать то же значение, что и GetClock_Monotonic().
Эпоха времени, возвращаемая этой функцией, не обязательно должна совпадать с эпохой для любой другой функции GetClock....
Ожидается, что эта функция будет потокобезопасной на любой платформе, использующей многопоточность.
Подробности | |
---|---|
Возврат | Прошедшее время в микросекундах с произвольной, определяемой платформой эпохи. |
GetClock_MonotonicMS
uint64_t GetClock_MonotonicMS( void )
Специфическая для платформы функция для получения монотонного системного времени в миллисекундах.
Ожидается, что эта функция вернет время в миллисекундах, прошедшее с произвольной, определенной платформой эпохи. Реализации платформы обязаны возвращать значение, которое постоянно увеличивается (т. е. никогда не переносится) между перезагрузками системы. Кроме того, базовый источник времени должен непрерывно работать во время любых режимов сна системы, которые не влекут за собой перезапуск после пробуждения.
Эпоха времени, возвращаемая этой функцией, не обязательно должна совпадать с эпохой для любой другой функции GetClock..., включая GetClock_Monotonic().
Ожидается, что эта функция будет потокобезопасной на любой платформе, использующей многопоточность.
Подробности | |
---|---|
Возврат | Прошедшее время в миллисекундах с произвольной, определяемой платформой эпохи. |
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
Специфическая для платформы функция для получения текущего реального (гражданского) времени в микросекундном формате времени Unix.
Ожидается, что эта функция вернет представление локальной платформы о текущем реальном времени, выраженное как значение времени Unix, масштабированное до микросекунд. Базовые часы должны идти со скоростью не менее целых секунд (значения 1 000 000), но могут идти быстрее.
На тех платформах, которые способны отслеживать реальное время, GetClock_RealTime() должен возвращать ошибку WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED всякий раз, когда система не синхронизирована с реальным временем.
Платформы, которые не способны отслеживать реальное время, не должны реализовывать функцию GetClock_RealTime(), тем самым вызывая сбои во время соединения функций, которые зависят от доступа к реальному времени. В качестве альтернативы такие платформы могут предоставлять реализацию GetClock_RealTime(), которая возвращает ошибку WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Ожидается, что эта функция будет потокобезопасной на любой платформе, использующей многопоточность.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
GetClock_RealTimeMS
Error GetClock_RealTimeMS( uint64_t & curTimeMS )
Специфическая для платформы функция для получения текущего реального (гражданского) времени в миллисекундном формате времени Unix.
Ожидается, что эта функция вернет представление локальной платформы о текущем реальном времени, выраженное как значение времени Unix, масштабированное до миллисекунд.
Подробную информацию об ожидаемом поведении смотрите в документации GetClock_RealTime().
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
ПостСобытие
NL_DLL_EXPORT Error PostEvent( Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument )
Это крючок для событий/сообщений, специфичный для платформы.
Это можно переопределить, подтвердив определение препроцессора WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS .
Это отправляет событие/сообщение указанного типа с предоставленным аргументом в очередь событий/сообщений, специфичную для платформы этого экземпляра.
Подробности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||
Возврат | WEAVE_SYSTEM_NO_ERROR в случае успеха; в противном случае — конкретная ошибка, указывающая причину сбоя инициализации. |
SetClock_RealTime
Error SetClock_RealTime( uint64_t newCurTime )
Специфическая для платформы функция установки текущего реального (гражданского) времени.
Weave вызывает эту функцию, чтобы установить представление локальной платформы о текущем реальном времени. Новое текущее время выражается как значение времени Unix, масштабированное до микросекунд.
Ожидается, что после установки базовые часы платформы будут отслеживать реальное время с точностью не менее целых секунд.
На платформах, поддерживающих отслеживание в реальном времени, функция SetClock_RealTime() должна возвращать ошибку WEAVE_SYSTEM_ERROR_ACCESS_DENIED, если вызывающее приложение не имеет права устанавливать текущее время.
Платформы, которые не способны отслеживать реальное время или не предлагают возможности устанавливать реальное время, не должны реализовывать функцию SetClock_RealTime(), тем самым вызывая сбои во время соединения функций, которые зависят от настройки реального времени. В качестве альтернативы такие платформы могут предоставлять реализацию SetClock_RealTime(), которая возвращает ошибку WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Ожидается, что эта функция будет потокобезопасной на любой платформе, использующей многопоточность.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
Старттаймер
NL_DLL_EXPORT Error StartTimer( Layer & aLayer, void *aContext, uint32_t aMilliseconds )
Это крючок отправки событий/сообщений, специфичный для платформы.
Это можно переопределить, подтвердив определение препроцессора WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS .
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
Уиллинит
NL_DLL_EXPORT Error WillInit( Layer & aLayer, void *aContext )
Это крючок предварительной инициализации уровня системы Weave для конкретной платформы.
Это можно переопределить, установив определение препроцессора WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS .
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | WEAVE_SYSTEM_NO_ERROR в случае успеха; в противном случае — конкретная ошибка, указывающая причину сбоя инициализации. Возврат неуспешного статуса прервет инициализацию. |
БудетВыключение
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
Это крючок предварительного завершения работы Weave System Layer для конкретной платформы.
Это можно переопределить, установив определение препроцессора WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS .
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | WEAVE_SYSTEM_NO_ERROR в случае успеха; в противном случае — конкретная ошибка, указывающая причину сбоя завершения работы. Возврат неуспешного статуса приведет к отмене завершения работы. |