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
[in,out] aLayer
Un riferimento all'istanza layer Weave System in fase di inizializzazione.
[in,out] aContext
Dati di contesto specifici della piattaforma passati al metodo di inizializzazione del livello, ::Init.
[in] anError
Lo stato generale restituito tramite il metodo ::Init Livello del sistema Weave.

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
[in,out] aLayer
Un riferimento all'istanza Weave System layer che verrà arrestata.
[in,out] aContext
Dati di contesto specifici della piattaforma passati al metodo di inizializzazione del livello, ::Shutdown.
[in] anError
Lo stato generale restituito tramite il metodo Livello ::Shutdown del sistema Weave.
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
[in,out] aLayer
Un riferimento all'istanza del livello per cui vengono inviati eventi / messaggi.
[in,out] aContext
Dati di contesto specifici della piattaforma passati al metodo di inizializzazione del livello, ::Init.
[in] anEvent
L'oggetto evento specifico della piattaforma da inviare per la gestione.
Valori restituiti
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Se #alayer o la destinazione dell'evento è NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Se il tipo di evento non è riconosciuto.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Se lo stato dell'oggetto Livello del sistema Weave è imprevisto.
WEAVE_SYSTEM_NO_ERROR
In caso di successo.

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
[in,out] aLayer
Un riferimento all'istanza del livello per cui vengono inviati eventi / messaggi.
[in,out] aContext
Dati di contesto specifici della piattaforma passati al metodo di inizializzazione del livello, ::Init.
Valori restituiti
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Se #alayer o #aContext è NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Se lo stato dell'oggetto Livello del sistema Weave è imprevisto.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Se un tipo di evento non viene riconosciuto.
WEAVE_SYSTEM_NO_ERROR
In caso di successo.

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
[out] curTime
L'ora attuale, espressa come tempo Unix scalato in microsecondi.
Valori restituiti
WEAVE_SYSTEM_NO_ERROR
Se il metodo è riuscito.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Se la piattaforma è in grado di eseguire il monitoraggio in tempo reale, ma al momento non è sincronizzata.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Se la piattaforma non è in grado di eseguire il monitoraggio in tempo reale.

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
[out] curTime
L'ora attuale, espressa come tempo Unix scalato in millisecondi.
Valori restituiti
WEAVE_SYSTEM_NO_ERROR
Se il metodo è riuscito.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Se la piattaforma è in grado di eseguire il monitoraggio in tempo reale, ma al momento non è sincronizzata.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Se la piattaforma non è in grado di eseguire il monitoraggio in tempo reale.

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
[in,out] aLayer
Un puntatore all'istanza del livello in cui l'evento / messaggio viene pubblicato.
[in,out] aContext
Dati di contesto specifici della piattaforma passati al metodo di inizializzazione del livello, ::Init.
[in,out] aTarget
Un puntatore all'oggetto Livello del sistema Weave che effettua la richiesta di post.
[in] aType
Il tipo di evento da pubblicare.
[in,out] anArg
L'argomento associato all'evento da pubblicare.
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
[in] newCurTime
La nuova ora corrente, espressa come tempo Unix scalato in microsecondi.
Valori restituiti
WEAVE_SYSTEM_NO_ERROR
Se il metodo è riuscito.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Se la piattaforma non è in grado di eseguire il monitoraggio in tempo reale.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Se l'applicazione di chiamata non dispone dei privilegi necessari per impostare l'ora attuale.

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
[in,out] aLayer
Un riferimento all'istanza del livello per cui vengono inviati eventi / messaggi.
[in,out] aContext
Dati di contesto specifici della piattaforma passati al metodo di inizializzazione del livello, ::Init.
[in] aMilliseconds
Il numero di millisecondi da impostare per il timer.
Valori restituiti
WEAVE_SYSTEM_NO_ERROR
Ha sempre esito positivo, a meno che non venga eseguito l'override.

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
[in,out] aLayer
Un riferimento all'istanza layer Weave System in fase di inizializzazione.
[in,out] aContext
Dati di contesto specifici della piattaforma passati al metodo di inizializzazione del livello, ::Init.
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
[in,out] aLayer
Un puntatore all'istanza livello di sistema Weave che verrà arrestata.
[in,out] aContext
Dati di contesto specifici della piattaforma passati al metodo di inizializzazione del livello, ::Shutdown.
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.