nl:: Weave:: System:: Platform:: Layer
Riepilogo
Funzioni |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Si tratta di un hook post-inizializzazione livello del sistema Weave specifico della piattaforma.
|
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Si tratta di un gancio di pre-arresto specifico per la piattaforma Weave System layer.
|
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
|
NL_DLL_EXPORT Error
Si tratta di un hook di evento / invio di messaggi specifico della piattaforma.
|
DispatchEvents(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Si tratta di un hook di evento / invio di messaggi specifico della piattaforma.
|
GetClock_Monotonic(void)
|
uint64_t
Funzione specifica della piattaforma per ottenere tempo di sistema monotonico in microsecondi.
|
GetClock_MonotonicHiRes(void)
|
uint64_t
Funzione specifica della piattaforma per ottenere tempo di sistema monotonico ad alta risoluzione in microsecondi.
|
GetClock_MonotonicMS(void)
|
uint64_t
Funzione specifica della piattaforma per ottenere tempo di sistema monotonico in millisecondi.
|
GetClock_RealTime(uint64_t & curTime)
|
Error
Funzione specifica della piattaforma per ottenere il tempo reale (civile) corrente in formato di tempo Unix in microsecondi.
|
GetClock_RealTimeMS(uint64_t & curTimeMS)
|
Error
Funzione specifica della piattaforma per ottenere il tempo reale (civile) corrente in formato di tempo 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 post evento / messaggio specifico per la piattaforma.
|
SetClock_RealTime(uint64_t newCurTime)
|
Error
Funzione specifica della piattaforma per impostare il tempo reale (civile) corrente.
|
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
|
NL_DLL_EXPORT Error
Si tratta di un hook di evento / invio di messaggi specifico della piattaforma.
|
WillInit(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Si tratta di un hook di pre-inizializzazione livello del sistema Weave specifico della piattaforma.
|
WillShutdown(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Si tratta di un gancio di pre-arresto specifico per la piattaforma Weave System layer.
|
Funzioni
DidInit
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
Si tratta di un hook post-inizializzazione livello del sistema Weave specifico della piattaforma.
Questo valore può essere sostituito assegnando la definizione del pre-processore, 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 per la piattaforma Weave System layer.
Questo valore può essere sostituito assegnando la definizione del pre-processore, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Restituisce |
WEAVE_SYSTEM_NO_ERROR in caso di esito positivo; in caso contrario, si tratta di un errore specifico che indica il motivo dell'errore di arresto. La restituzione dello stato non riuscito interromperà la chiusura.
|
DispatchEvent
NL_DLL_EXPORT Error DispatchEvent( Layer & aLayer, void *aContext, Event aEvent )
Si tratta di un hook di evento / invio di messaggi specifico della piattaforma.
Questo valore può essere sostituito assegnando la definizione del pre-processore, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
In questo modo viene inviato l'evento specificato per la gestione, annullando il marshalling del tipo e degli argomenti dall'evento per il trasferimento a layer::HandleEvent del sistema Weave per l'invio effettivo.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
DispatchEvents
NL_DLL_EXPORT Error DispatchEvents( Layer & aLayer, void *aContext )
Si tratta di un hook di evento / invio di messaggi specifico della piattaforma.
Questo valore può essere sostituito assegnando la definizione del pre-processore, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
In questo modo si ha un loop di eventi, in attesa di una coda che gestisce l'istanza, durante il pull degli eventi dalla coda e l'invio per la gestione.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
GetClock_Monotonic
uint64_t GetClock_Monotonic( void )
Funzione specifica della piattaforma per ottenere tempo di sistema monotonico in microsecondi.
Questa funzione dovrebbe restituire il tempo trascorso in microsecondi da un'epoca arbitraria definita dalla piattaforma. Le implementazioni della piattaforma sono obbligate a restituire un valore sempre crescente (ovvero non va mai a capo) tra i riavvii del sistema. Inoltre, la sorgente di tempo sottostante deve vibrare continuamente durante le modalità di sospensione del sistema che non richiedono un riavvio alla riattivazione.
L'epoca del tempo restituita da questa funzione non deve essere la stessa delle altre funzioni GetClock..., incluso GetClock_MonotonicMS().
Questa funzione dovrebbe essere sicura per i thread su qualsiasi piattaforma che utilizzi i 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 tempo di sistema monotonico ad alta risoluzione in microsecondi.
Questa funzione dovrebbe restituire il tempo trascorso in microsecondi da un'epoca arbitraria definita dalla piattaforma. I valori restituiti da GetClock_MonotonicHiRes() devono essere sempre in aumento (ovvero non devono essere mai aggregati). Tuttavia, il timer sottostante non è necessario che suoni di continuo durante gli stati di sospensione profonda del sistema.
Consigliamo alla piattaforma di implementare GetClock_MonotonicHiRes() utilizzando un timer ad alta risoluzione che non è soggetto a regolazioni graduali dell'orologio (rotazione). Sulle piattaforme che non dispongono di un timer di questo tipo, GetClock_MonotonicHiRes() può restituire lo stesso valore di GetClock_Monotonic().
L'epoca del tempo restituita da questa funzione non deve essere uguale a quella delle altre funzioni GetClock....
Questa funzione dovrebbe essere sicura per i thread su qualsiasi piattaforma che utilizzi i 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 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 non va mai a capo) tra i riavvii del sistema. Inoltre, la sorgente di tempo sottostante deve vibrare continuamente durante le modalità di sospensione del sistema che non richiedono un riavvio alla riattivazione.
L'epoca del tempo restituita da questa funzione non deve essere uguale a quella delle altre funzioni GetClock..., incluso GetClock_Monotonic().
Questa funzione dovrebbe essere sicura per i thread su qualsiasi piattaforma che utilizzi i thread.
Dettagli | |
---|---|
Restituisce |
Tempo trascorso in millisecondi da un'epoca arbitraria definita dalla piattaforma.
|
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
Funzione specifica della piattaforma per ottenere il tempo reale (civile) corrente in formato di tempo Unix in microsecondi.
Questa funzione dovrebbe restituire la nozione di tempo reale attuale nella piattaforma locale, espressa come valore di tempo Unix scalato in microsecondi. L'orologio sottostante è tenuto a spuntare a una frequenza di almeno secondi interi (valori pari a 1.000.000), ma potrebbe cambiare più velocemente.
Sulle piattaforme in grado di eseguire il monitoraggio 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ì gli errori in fase di collegamento delle funzionalità che dipendono dall'accesso in tempo reale. In alternativa, queste piattaforme possono 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 i thread.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
GetClock_RealTimeMS
Error GetClock_RealTimeMS( uint64_t & curTimeMS )
Funzione specifica della piattaforma per ottenere il tempo reale (civile) corrente in formato di tempo 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 relativa a 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 post evento / messaggio specifico per la piattaforma.
Questo valore può essere sostituito assegnando la definizione del pre-processore, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.
In questo modo viene pubblicato un evento / messaggio del tipo specificato con l'argomento fornito nella coda di messaggi / evento specifica della piattaforma di questa istanza.
Dettagli | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||
Restituisce |
WEAVE_SYSTEM_NO_ERROR se l'operazione va a buon fine; in caso contrario, si tratta di 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 il tempo reale (civile) corrente.
Weave chiama questa funzione per impostare il concetto di tempo reale corrente nella piattaforma locale. La nuova ora corrente viene espressa come valore di tempo Unix scalato in microsecondi.
Una volta impostato, l'orologio della piattaforma sottostante dovrebbe monitorare 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 del privilegio necessario per impostare l'ora corrente.
Le piattaforme che non sono in grado di monitorare in tempo reale, o che non offrono la possibilità di impostare il tempo reale, non dovrebbero implementare la funzione SetClock_RealTime(), forzando così gli errori in fase di collegamento delle funzionalità che dipendono dall'impostazione in tempo reale. In alternativa, queste piattaforme possono 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 i thread.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
StartTimer
NL_DLL_EXPORT Error StartTimer( Layer & aLayer, void *aContext, uint32_t aMilliseconds )
Si tratta di un hook di evento / invio di messaggi specifico della piattaforma.
Questo valore può essere sostituito assegnando la definizione del pre-processore, 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 livello del sistema Weave specifico della piattaforma.
Questo valore può essere sostituito assegnando la definizione del pre-processore, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Restituisce |
WEAVE_SYSTEM_NO_ERROR se l'operazione va a buon fine; in caso contrario, si tratta di un errore specifico che indica il motivo dell'errore di inizializzazione. La restituzione dello stato non riuscita interromperà l'inizializzazione.
|
WillShutdown
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
Si tratta di un gancio di pre-arresto specifico per la piattaforma Weave System layer.
Questo valore può essere sostituito assegnando la definizione del pre-processore, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Restituisce |
WEAVE_SYSTEM_NO_ERROR in caso di esito positivo; in caso contrario, si tratta di un errore specifico che indica il motivo dell'errore di arresto. La restituzione dello stato non riuscito interromperà la chiusura.
|