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

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
[in,out] aLayer
Un riferimento all'istanza di livello Weave System in fase di arresto.
[in,out] aContext
Dati di contesto specifici della piattaforma passati al metodo di inizializzazione dei livelli ::Shutdown.
[in] anError
Lo stato generale restituito tramite il metodo Livello ::Shutdown di Weave System.
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
[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 dei livelli ::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 viene riconosciuto.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Se lo stato dell'oggetto livello del sistema Weave è imprevisto.
WEAVE_SYSTEM_NO_ERROR
Un successo.

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
[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 dei livelli ::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
Un successo.

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

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

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
[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 dei livelli ::Init.
[in] aMilliseconds
Il numero di millisecondi da impostare per il timer.
Valori restituiti
WEAVE_SYSTEM_NO_ERROR
L'operazione riesce sempre se non viene eseguito l'override.

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