nl:: Weave:: System:: Platform:: Layer
Riepilogo
Funzioni |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Si tratta di un hook di post-inizializzazione di un livello Weave System specifico della piattaforma.
|
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Si tratta di un gancio di pre-arresto specifico del sistema Weave System per.
|
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
|
NL_DLL_EXPORT Error
Si tratta di un hook di invio di eventi / messaggi specifico della piattaforma.
|
DispatchEvents(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Si tratta di un hook di invio di eventi / messaggi specifico della piattaforma.
|
GetClock_Monotonic(void)
|
uint64_t
Funzione specifica della piattaforma per ottenere il tempo di sistema monotonico in microsecondi.
|
GetClock_MonotonicHiRes(void)
|
uint64_t
Funzione specifica della piattaforma per ottenere il tempo di sistema monotonico ad alta risoluzione in microsecondi.
|
GetClock_MonotonicMS(void)
|
uint64_t
Funzione specifica della piattaforma per ottenere il tempo di sistema monotonico in millisecondi.
|
GetClock_RealTime(uint64_t & curTime)
|
Error
Funzione specifica della piattaforma per ottenere l'ora reale (civile) attuale in formato orario Unix in microsecondi.
|
GetClock_RealTimeMS(uint64_t & curTimeMS)
|
Error
Funzione specifica della piattaforma per ottenere l'ora reale (civile) attuale in formato Unix in millisecondi.
|
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
|
NL_DLL_EXPORT Error
Si tratta di un hook di un evento / un post di messaggio specifico della piattaforma.
|
SetClock_RealTime(uint64_t newCurTime)
|
Error
Funzione specifica della piattaforma per impostare l'ora reale (civile) attuale.
|
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
|
NL_DLL_EXPORT Error
Si tratta di un hook di invio di eventi / messaggi specifico della piattaforma.
|
WillInit(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Si tratta di un hook di pre-inizializzazione del livello Weave System specifico della piattaforma.
|
WillShutdown(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Si tratta di un gancio di pre-arresto specifico del sistema Weave System per.
|
Funzioni
DidInit
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
Si tratta di un hook di post-inizializzazione di un livello Weave System specifico della piattaforma.
Può essere eseguito l'override di questa condizione dichiarando la definizione del preprocessore WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
DidShutdown
NL_DLL_EXPORT void DidShutdown( Layer & aLayer, void *aContext, Error aStatus )
Si tratta di un gancio di pre-arresto specifico del sistema Weave System per.
Può essere eseguito l'override di questa condizione dichiarando la definizione del preprocessore WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Restituisce |
WEAVE_SYSTEM_NO_ERROR in caso di operazione riuscita; in caso contrario, un errore specifico che indica il motivo dell'errore di arresto. Se restituisci lo stato "Non riuscito", l'arresto verrà interrotto.
|
DispatchEvent
NL_DLL_EXPORT Error DispatchEvent( Layer & aLayer, void *aContext, Event aEvent )
Si tratta di un hook di invio di eventi / messaggi specifico della piattaforma.
Può essere eseguito l'override di questa condizione dichiarando la definizione del preprocessore WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Invia l'evento specificato per la gestione, annullando il marshalling del tipo e degli argomenti dall'evento per il trasferimento a Weave System Livello::HandleEvent per l'invio effettivo.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
DispatchEvents
NL_DLL_EXPORT Error DispatchEvents( Layer & aLayer, void *aContext )
Si tratta di un hook di invio di eventi / messaggi specifico della piattaforma.
Può essere eseguito l'override di questa condizione dichiarando la definizione del preprocessore WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Ciò influisce su un loop di eventi, in attesa di una coda che gestisce questa istanza, estraendo gli eventi dalla coda e inviandoli per la gestione.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
GetClock_Monotonic
uint64_t GetClock_Monotonic( void )
Funzione specifica della piattaforma per ottenere il tempo di sistema monotonico in microsecondi.
Questa funzione dovrebbe restituire il tempo trascorso in microsecondi a partire da un'epoca arbitraria definita dalla piattaforma. Le implementazioni della piattaforma sono obbligate a restituire un valore sempre crescente (ovvero che non esegue mai il wrapping) tra i riavvii del sistema. Inoltre, la sorgente di tempo sottostante deve essere selezionata in modo continuo durante le modalità di sospensione del sistema che non comportano un riavvio alla riattivazione.
L'epoca del tempo restituita da questa funzione non deve essere la stessa di qualsiasi altra funzione GetClock..., incluso GetClock_MonotonicMS().
Questa funzione dovrebbe essere sicura per i thread su qualsiasi piattaforma che utilizzi il thread.
Dettagli | |
---|---|
Restituisce |
Tempo trascorso in microsecondi da un'epoca arbitraria definita dalla piattaforma.
|
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
Funzione specifica della piattaforma per ottenere il tempo di sistema monotonico ad alta risoluzione in microsecondi.
Questa funzione dovrebbe restituire il tempo trascorso in microsecondi a partire da un'epoca arbitraria definita dalla piattaforma. I valori restituiti da GetClock_MonotonicHiRes() devono essere sempre crescenti (ossia non devono mai essere aggregati). Tuttavia, il timer sottostante non è tenuto a rispettare continuamente gli stati di sospensione profonda del sistema.
Si consiglia alla piattaforma di implementare GetClock_MonotonicHiRes() utilizzando un timer ad alta risoluzione non soggetto a regolazioni graduali dell'orologio (slewing). Sulle piattaforme senza questo timer, GetClock_MonotonicHiRes() può restituire lo stesso valore di GetClock_Monotonic().
L'epoca di tempo restituita da questa funzione non deve essere necessariamente la stessa di qualsiasi altra funzione GetClock....
Questa funzione dovrebbe essere sicura per i thread su qualsiasi piattaforma che utilizzi il thread.
Dettagli | |
---|---|
Restituisce |
Tempo trascorso in microsecondi da un'epoca arbitraria definita dalla piattaforma.
|
GetClock_MonotonicMS
uint64_t GetClock_MonotonicMS( void )
Funzione specifica della piattaforma per ottenere il tempo di sistema monotonico in millisecondi.
Questa funzione dovrebbe restituire il tempo trascorso in millisecondi a partire da un'epoca arbitraria definita dalla piattaforma. Le implementazioni della piattaforma sono obbligate a restituire un valore sempre crescente (ovvero che non esegue mai il wrapping) tra i riavvii del sistema. Inoltre, la sorgente di tempo sottostante deve essere selezionata in modo continuo durante le modalità di sospensione del sistema che non comportano un riavvio alla riattivazione.
L'epoca del tempo restituita da questa funzione non deve essere uguale a quella per qualsiasi altra funzione GetClock..., incluso GetClock_Monotonic().
Questa funzione dovrebbe essere sicura per i thread su qualsiasi piattaforma che utilizzi il thread.
Dettagli | |
---|---|
Restituisce |
Tempo trascorso in millisecondi trascorso da un'epoca arbitraria definita dalla piattaforma.
|
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
Funzione specifica della piattaforma per ottenere l'ora reale (civile) attuale in formato orario Unix in microsecondi.
Questa funzione dovrebbe restituire la nozione di tempo reale attuale della piattaforma locale, espressa come valore temporale Unix scalato in microsecondi. L'orologio sottostante deve avere un ritmo di almeno secondi interi (valori di 1.000.000), ma potrebbe farlo più velocemente.
Su quelle piattaforme in grado di monitorare in tempo reale, GetClock_RealTime() deve restituire l'errore WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED ogni volta che il sistema non è sincronizzato con il tempo reale.
Le piattaforme che non sono in grado di monitorare in tempo reale non dovrebbero implementare la funzione GetClock_RealTime(), forzando così errori in fase di collegamento delle funzionalità che dipendono dall'accesso in tempo reale. In alternativa, tali piattaforme potrebbero fornire un'implementazione di GetClock_RealTime() che restituisce l'errore WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Questa funzione dovrebbe essere sicura per i thread su qualsiasi piattaforma che utilizzi il thread.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
GetClock_RealTimeMS
Error GetClock_RealTimeMS( uint64_t & curTimeMS )
Funzione specifica della piattaforma per ottenere l'ora reale (civile) attuale in formato Unix in millisecondi.
Questa funzione dovrebbe restituire la nozione di tempo reale attuale della piattaforma locale, espressa come valore di tempo Unix scalato in millisecondi.
Per informazioni dettagliate sul comportamento previsto, consulta la documentazione di GetClock_RealTime().
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
PostEvent
NL_DLL_EXPORT Error PostEvent( Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument )
Si tratta di un hook di un evento / un post di messaggio specifico della piattaforma.
Può essere eseguito l'override di questa condizione dichiarando la definizione del preprocessore WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Verrà pubblicato un evento / messaggio del tipo specificato con l'argomento fornito nella coda di eventi / messaggi specifica della piattaforma di questa istanza.
Dettagli | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||
Restituisce |
WEAVE_SYSTEM_NO_ERROR in caso di operazione riuscita; in caso contrario, un errore specifico che indica il motivo dell'errore di inizializzazione.
|
SetClock_RealTime
Error SetClock_RealTime( uint64_t newCurTime )
Funzione specifica della piattaforma per impostare l'ora reale (civile) attuale.
Weave chiama questa funzione per impostare la nozione di tempo reale attuale nella piattaforma locale. La nuova ora corrente viene espressa come valore del tempo Unix scalato in microsecondi.
Una volta impostato, l'orologio della piattaforma sottostante dovrebbe tracciare il tempo in tempo reale con una granularità di almeno secondi interi.
Sulle piattaforme che supportano il monitoraggio in tempo reale, la funzione SetClock_RealTime() deve restituire l'errore WEAVE_SYSTEM_ERROR_ACCESS_DENIED se l'applicazione chiamante non dispone dei privilegi necessari per impostare l'ora corrente.
Le piattaforme che non sono in grado di monitorare il tempo reale o che non offrono la possibilità di impostare il tempo in tempo reale non dovrebbero implementare la funzione SetClock_RealTime(), forzando così gli errori in fase di collegamento delle funzionalità che dipendono dall'impostazione del tempo reale. In alternativa, queste piattaforme potrebbero fornire un'implementazione di SetClock_RealTime() che restituisce l'errore WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.
Questa funzione dovrebbe essere sicura per i thread su qualsiasi piattaforma che utilizzi il thread.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
StartTimer
NL_DLL_EXPORT Error StartTimer( Layer & aLayer, void *aContext, uint32_t aMilliseconds )
Si tratta di un hook di invio di eventi / messaggi specifico della piattaforma.
Può essere eseguito l'override di questa condizione dichiarando la definizione del preprocessore WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
WillInit
NL_DLL_EXPORT Error WillInit( Layer & aLayer, void *aContext )
Si tratta di un hook di pre-inizializzazione del livello Weave System specifico della piattaforma.
Può essere eseguito l'override di questa condizione dichiarando la definizione del preprocessore WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Restituisce |
WEAVE_SYSTEM_NO_ERROR in caso di operazione riuscita; in caso contrario, un errore specifico che indica il motivo dell'errore di inizializzazione. Se restituisci lo stato "Non riuscito", l'inizializzazione verrà interrotta.
|
WillShutdown
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
Si tratta di un gancio di pre-arresto specifico del sistema Weave System per.
Può essere eseguito l'override di questa condizione dichiarando la definizione del preprocessore WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Restituisce |
WEAVE_SYSTEM_NO_ERROR in caso di operazione riuscita; in caso contrario, un errore specifico che indica il motivo dell'errore di arresto. Se restituisci lo stato "Non riuscito", l'arresto verrà interrotto.
|