nl:: Weave:: System:: Platform:: Layer
Podsumowanie
Funkcje |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Jest to specyficzny dla platformy haczyk warstwa po zainicjowaniu systemu Weave System.
|
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Jest to specyficzny dla platformy element zaczepienia warstwa Weave System.
|
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
|
NL_DLL_EXPORT Error
Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.
|
DispatchEvents(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.
|
GetClock_Monotonic(void)
|
uint64_t
Związana z platformą funkcja pobierania czasu systemu monotonnego w mikrosekundach.
|
GetClock_MonotonicHiRes(void)
|
uint64_t
Funkcja zależna od platformy, która określa czas systemu monotonnego o wysokiej rozdzielczości w mikrosekundach.
|
GetClock_MonotonicMS(void)
|
uint64_t
Związana z platformą funkcja pobierania czasu systemu monotonnego w milisekundach.
|
GetClock_RealTime(uint64_t & curTime)
|
Error
Związana z platformą funkcja pobierania bieżącego czasu rzeczywistego (cywilnego) w mikrosekundowym formacie czasu uniksowego.
|
GetClock_RealTimeMS(uint64_t & curTimeMS)
|
Error
Zintegrowana z platformą funkcja pobierania bieżącego czasu rzeczywistego (cywilnego) w milisekundowym formacie czasu uniksowego.
|
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
|
NL_DLL_EXPORT Error
Jest to punkt zaczepienia zdarzenia / wiadomości na danej platformie.
|
SetClock_RealTime(uint64_t newCurTime)
|
Error
Funkcja związana z platformą do ustawiania bieżącego czasu rzeczywistego (cywilnego).
|
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
|
NL_DLL_EXPORT Error
Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.
|
WillInit(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Jest to specyficzny dla platformy haczyk wstępnego inicjowania systemu Warstwa Weave System.
|
WillShutdown(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Jest to specyficzny dla platformy element zaczepienia warstwa Weave System.
|
Funkcje
DidInit
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
Jest to specyficzny dla platformy haczyk warstwa po zainicjowaniu systemu Weave System.
Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
DidShutdown
NL_DLL_EXPORT void DidShutdown( Layer & aLayer, void *aContext, Error aStatus )
Jest to specyficzny dla platformy element zaczepienia warstwa Weave System.
Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwroty |
WEAVE_SYSTEM_NO_ERROR po powodzeniu; w przeciwnym razie określony błąd wskazujący przyczynę niepowodzenia wyłączenia. Zwrócenie stanu nieudanego spowoduje przerwanie zamykania.
|
DispatchEvent
NL_DLL_EXPORT Error DispatchEvent( Layer & aLayer, void *aContext, Event aEvent )
Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.
Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Powoduje to wysłanie określonego zdarzenia do obsługi przez usunięcie zgrupowania typu i argumentów ze zdarzenia w celu przekazania do systemu Weave Layer::HandleEvent na potrzeby rzeczywistego wysyłki.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
DispatchEvents
NL_DLL_EXPORT Error DispatchEvents( Layer & aLayer, void *aContext )
Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.
Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Powoduje to pętlę zdarzeń, oczekiwanie na kolejkę obsługującą tę instancję, pobieranie zdarzeń z tej kolejki i wysyłanie ich do obsługi.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
GetClock_Monotonic
uint64_t GetClock_Monotonic( void )
Związana z platformą funkcja pobierania czasu systemu monotonnego w mikrosekundach.
Ta funkcja powinna zwracać czas upływający w mikrosekundach od dowolnej epoki zdefiniowanej przez platformę. Implementacje platform są zobowiązane do zwrócenia wartości, która stale rośnie (czyli nigdy się nie zawija) między restartami systemu. Dodatkowo odpowiednie źródło czasu musi być stale aktywne w trybie uśpienia systemu, który nie wiąże się z ponownym uruchomieniem po wybudzeniu.
epoka czasu zwracana przez tę funkcję nie musi być taka sama jak w przypadku innych funkcji GetClock..., w tym GetClock_MonotonicMS().
Ta funkcja powinna być bezpieczna w przypadku wątków na wszystkich platformach korzystających z wątków.
Szczegóły | |
---|---|
Zwroty |
Czas, który upłynął w mikrosekundach od dowolnego okresu zdefiniowanego przez platformę.
|
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
Funkcja zależna od platformy, która określa czas systemu monotonnego o wysokiej rozdzielczości w mikrosekundach.
Ta funkcja powinna zwracać czas upływający w mikrosekundach od dowolnej epoki zdefiniowanej przez platformę. Wartości zwracane przez funkcję GetClock_MonotonicHiRes() muszą stale rosnąć (czyli nigdy nie zawijać). Jednak bazowy licznik czasu nie musi być stale włączony w stanie głębokiego uśpienia systemu.
Zachęcamy do wdrożenia na platformie funkcji GetClock_MonotonicHiRes() z wykorzystaniem licznika czasu o wysokiej rozdzielczości, który nie podlega stopniowej korektie zegara (czyli obrotom). Na platformach bez takiego licznika funkcja GetClock_MonotonicHiRes() może zwrócić taką samą wartość jak funkcja GetClock_Monotonic().
Epoka czasu zwracana przez tę funkcję nie musi być taka sama jak w przypadku innych funkcji GetClock...
Ta funkcja powinna być bezpieczna w przypadku wątków na wszystkich platformach korzystających z wątków.
Szczegóły | |
---|---|
Zwroty |
Czas, który upłynął w mikrosekundach od dowolnego okresu zdefiniowanego przez platformę.
|
GetClock_MonotonicMS
uint64_t GetClock_MonotonicMS( void )
Związana z platformą funkcja pobierania czasu systemu monotonnego w milisekundach.
Ta funkcja powinna zwracać czas (w milisekundach) od dowolnej epoki zdefiniowanej przez platformę. Implementacje platform są zobowiązane do zwrócenia wartości, która stale rośnie (czyli nigdy się nie zawija) między restartami systemu. Dodatkowo odpowiednie źródło czasu musi być stale aktywne w trybie uśpienia systemu, który nie wiąże się z ponownym uruchomieniem po wybudzeniu.
epoka czasu zwracana przez tę funkcję nie musi być taka sama jak w przypadku innych funkcji GetClock..., w tym GetClock_Monotonic().
Ta funkcja powinna być bezpieczna w przypadku wątków na wszystkich platformach korzystających z wątków.
Szczegóły | |
---|---|
Zwroty |
Czas, który upłynął w milisekundach od dowolnego okresu zdefiniowanego przez platformę.
|
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
Związana z platformą funkcja pobierania bieżącego czasu rzeczywistego (cywilnego) w mikrosekundowym formacie czasu uniksowego.
Ta funkcja powinna zwrócić pojęcie bieżącego czasu rzeczywistego na platformie lokalnej, wyrażone jako wartość czasu uniksowego skalowana do mikrosekund. Zegar musi odmierzać co najmniej pełne sekundy (wartości 1 000 000), ale może tykać szybciej.
Na platformach, które mogą śledzić dane w czasie rzeczywistym, funkcja GetClock_RealTime() musi zwracać błąd WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED za każdym razem, gdy system jest niezsynchronizowany z czasem rzeczywistym.
Platformy, które nie mogą śledzić czasu rzeczywistego, nie powinny implementować funkcji GetClock_RealTime(), co wymusza błędy w czasie połączenia funkcji, które zależą od dostępu do czasu rzeczywistego. Takie platformy mogą też dostarczać implementację funkcji GetClock_RealTime(), która zwraca błąd WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Ta funkcja powinna być bezpieczna w przypadku wątków na wszystkich platformach korzystających z wątków.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
GetClock_RealTimeMS
Error GetClock_RealTimeMS( uint64_t & curTimeMS )
Zintegrowana z platformą funkcja pobierania bieżącego czasu rzeczywistego (cywilnego) w milisekundowym formacie czasu uniksowego.
Ta funkcja powinna zwrócić pojęcie bieżącego czasu rzeczywistego na platformie lokalnej, wyrażone jako wartość czasu uniksowego skalowana do milisekund.
Szczegółowe informacje o spodziewanym działaniu znajdziesz w dokumentacji funkcji GetClock_RealTime().
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
PostEvent
NL_DLL_EXPORT Error PostEvent( Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument )
Jest to punkt zaczepienia zdarzenia / wiadomości na danej platformie.
Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Spowoduje to wysłanie zdarzenia lub komunikatu określonego typu z podanym argumentem do kolejki zdarzeń lub komunikatów tej instancji.
Szczegóły | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||
Zwroty |
WEAVE_SYSTEM_NO_ERROR po powodzeniu; w przeciwnym razie pojawi się konkretny błąd wskazujący przyczynę niepowodzenia zainicjowania.
|
SetClock_RealTime
Error SetClock_RealTime( uint64_t newCurTime )
Funkcja związana z platformą do ustawiania bieżącego czasu rzeczywistego (cywilnego).
Weave wywołuje tę funkcję, by ustawić pojęcie bieżącego czasu rzeczywistego przez platformę lokalną. Nowy bieżący czas jest wyrażony jako wartość czasu uniksowego skalowana do mikrosekund.
Po ustawieniu, podstawowy zegar platformy powinien śledzić czas w czasie rzeczywistym z dokładnością wynoszącą co najmniej pełne sekundy.
Na platformach obsługujących śledzenie w czasie rzeczywistym funkcja SetClock_RealTime() musi zwracać błąd WEAVE_SYSTEM_ERROR_ACCESS_DENIED, jeśli aplikacja wywołująca nie ma uprawnień do ustawiania bieżącej godziny.
Platformy, które nie mogą śledzić czasu rzeczywistego lub nie oferują możliwości ustawiania czasu rzeczywistego w czasie rzeczywistym, nie powinny implementować funkcji SetClock_RealTime(). W związku z tym wymuszanie w przypadku połączeń funkcji zależnych od ustawień czasu rzeczywistego może powodować błędy. Takie platformy mogą też dostarczać implementację funkcji SetClock_RealTime(), która zwraca błąd WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Ta funkcja powinna być bezpieczna w przypadku wątków na wszystkich platformach korzystających z wątków.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
StartTimer
NL_DLL_EXPORT Error StartTimer( Layer & aLayer, void *aContext, uint32_t aMilliseconds )
Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.
Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
WillInit
NL_DLL_EXPORT Error WillInit( Layer & aLayer, void *aContext )
Jest to specyficzny dla platformy haczyk wstępnego inicjowania systemu Warstwa Weave System.
Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwroty |
WEAVE_SYSTEM_NO_ERROR po powodzeniu; w przeciwnym razie pojawi się konkretny błąd wskazujący przyczynę niepowodzenia zainicjowania. Zwrócenie stanu nieudanego spowoduje przerwanie inicjowania.
|
WillShutdown
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
Jest to specyficzny dla platformy element zaczepienia warstwa Weave System.
Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwroty |
WEAVE_SYSTEM_NO_ERROR po powodzeniu; w przeciwnym razie określony błąd wskazujący przyczynę niepowodzenia wyłączenia. Zwrócenie stanu nieudanego spowoduje przerwanie zamykania.
|