nl::Weave::System::Platform::Layer

Résumé

distantes

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Il s'agit d'un hook de post-initialisation de la couche du système Weave spécifique à la plate-forme.
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Il s'agit d'un hook de pré-arrêt de la couche du système Weave spécifique à la plate-forme.
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
NL_DLL_EXPORT Error
Il s'agit d'un hook d'envoi d'événements / de messages spécifique à une plate-forme.
DispatchEvents(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Il s'agit d'un hook d'envoi d'événements / de messages spécifique à une plate-forme.
GetClock_Monotonic(void)
uint64_t
Fonction spécifique à la plate-forme permettant d'obtenir le temps système monotone en microsecondes.
GetClock_MonotonicHiRes(void)
uint64_t
Fonction spécifique à la plate-forme permettant d'obtenir un temps système monotone haute résolution en microsecondes.
GetClock_MonotonicMS(void)
uint64_t
Fonction spécifique à la plate-forme permettant d'obtenir un temps système monotone en millisecondes.
GetClock_RealTime(uint64_t & curTime)
Error
Fonction spécifique à la plate-forme permettant d'obtenir l'heure réelle (civil) actuelle au format d'heure Unix en microsecondes.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
Fonction spécifique à la plate-forme permettant d'obtenir l'heure réelle (civil) actuelle au format d'heure Unix en millisecondes.
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
NL_DLL_EXPORT Error
Il s'agit d'un post-hook d'événement / de message spécifique à une plate-forme.
SetClock_RealTime(uint64_t newCurTime)
Error
Fonction spécifique à la plate-forme permettant de définir l'heure réelle (civil) actuelle.
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
NL_DLL_EXPORT Error
Il s'agit d'un hook d'envoi d'événements / de messages spécifique à une plate-forme.
WillInit(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Il s'agit d'un hook de pré-initialisation de la couche du système Weave spécifique à la plate-forme.
WillShutdown(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Il s'agit d'un hook de pré-arrêt de la couche du système Weave spécifique à la plate-forme.

distantes

DidInit

NL_DLL_EXPORT void DidInit(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

Il s'agit d'un hook de post-initialisation de la couche du système Weave spécifique à la plate-forme.

Vous pouvez la remplacer en vérifiant la définition du préprocesseur, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Détails
Paramètres
[in,out] aLayer
Référence à l'instance de couche du système Weave en cours d'initialisation.
[in,out] aContext
Données de contexte spécifiques à la plate-forme transmises à la méthode d'initialisation de la couche, ::Init.
[in] anError
État global renvoyé via la méthode Layer du système Weave ::Init.

DidShutdown

NL_DLL_EXPORT void DidShutdown(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

Il s'agit d'un hook de pré-arrêt de la couche du système Weave spécifique à la plate-forme.

Vous pouvez la remplacer en vérifiant la définition du préprocesseur, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Détails
Paramètres
[in,out] aLayer
Référence à l'instance de couche du système Weave en cours d'arrêt.
[in,out] aContext
Données de contexte spécifiques à la plate-forme transmises à la méthode d'initialisation de la couche, ::Shutdown.
[in] anError
État général renvoyé via la méthode d'arrêt Layer du système Weave.
Renvoie
WEAVE_SYSTEM_NO_ERROR en cas de réussite ; sinon, erreur spécifique indiquant la raison de l'échec de l'arrêt. Si vous renvoyez l'état "Échec", l'arrêt sera annulé.

DispatchEvent

NL_DLL_EXPORT Error DispatchEvent(
  Layer & aLayer,
  void *aContext,
  Event aEvent
)

Il s'agit d'un hook d'envoi d'événements / de messages spécifique à une plate-forme.

Vous pouvez remplacer ce paramètre en vérifiant la définition du préprocesseur, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

L'événement spécifié est alors distribué pour le traitement, en dissociant le type et les arguments de l'événement pour les transmettre au Layer::HandleEvent du système Weave.

Détails
Paramètres
[in,out] aLayer
Référence à l'instance de couche pour laquelle les événements / messages sont distribués.
[in,out] aContext
Données de contexte spécifiques à la plate-forme transmises à la méthode d'initialisation de la couche, ::Init.
[in] anEvent
Objet événement spécifique à la plate-forme à envoyer pour traitement.
Valeurs de retour
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Si #aLayer ou la cible de l'événement est NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Si le type d'événement n'est pas reconnu.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Si l'état de l'objet Layer du système Weave est inattendu.
WEAVE_SYSTEM_NO_ERROR
Pour la réussite.

DispatchEvents

NL_DLL_EXPORT Error DispatchEvents(
  Layer & aLayer,
  void *aContext
)

Il s'agit d'un hook d'envoi d'événements / de messages spécifique à une plate-forme.

Vous pouvez remplacer ce paramètre en vérifiant la définition du préprocesseur, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Cela affecte une boucle d'événements, qui attend une file d'attente qui dessert cette instance, extrait des événements de cette file d'attente, puis les distribue pour traitement.

Détails
Paramètres
[in,out] aLayer
Référence à l'instance de couche pour laquelle les événements / messages sont distribués.
[in,out] aContext
Données de contexte spécifiques à la plate-forme transmises à la méthode d'initialisation de la couche, ::Init.
Valeurs de retour
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Si #aLayer ou #aContext est NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Si l'état de l'objet Layer du système Weave est inattendu.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Si un type d'événement n'est pas reconnu.
WEAVE_SYSTEM_NO_ERROR
Pour la réussite.

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

Fonction spécifique à la plate-forme permettant d'obtenir le temps système monotone en microsecondes.

Cette fonction est censée renvoyer le temps écoulé en microsecondes depuis une epoch arbitraire définie par la plate-forme. Les implémentations de plate-forme sont tenues de renvoyer une valeur qui augmente constamment (c'est-à-dire qui n'est jamais encapsulée) entre les redémarrages du système. De plus, la source de temps sous-jacente doit s'activer en continu pendant tous les modes de veille du système qui n'impliquent pas de redémarrage au moment de l'activation.

L'epoch de l'heure renvoyée par cette fonction n'a pas besoin d'être la même que pour les autres fonctions GetClock..., y compris GetClock_MonotonicMS().

Cette fonction est censée être thread-safe sur toute plate-forme qui utilise des threads.

Détails
Renvoie
Temps écoulé, en microsecondes, depuis une epoch arbitraire définie par la plate-forme.

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

Fonction spécifique à la plate-forme permettant d'obtenir un temps système monotone haute résolution en microsecondes.

Cette fonction est censée renvoyer le temps écoulé en microsecondes depuis une epoch arbitraire définie par la plate-forme. Les valeurs renvoyées par GetClock_MonotonicHiRes() doivent être croissantes (c'est-à-dire ne jamais encapsuler). Toutefois, le minuteur sous-jacent n'est pas nécessaire pour fonctionner en continu pendant les états de sommeil profond du système.

La plate-forme est invitée à implémenter GetClock_MonotonicHiRes() à l'aide d'un minuteur haute résolution qui n'est pas soumis à un ajustement progressif de l'horloge (balayage). Sur les plates-formes dépourvues de ce type de minuteur, GetClock_MonotonicHiRes() peut renvoyer la même valeur que GetClock_Monotonic().

L'epoch de l'heure renvoyée par cette fonction ne doit pas nécessairement être la même que pour les autres fonctions GetClock.

Cette fonction est censée être thread-safe sur toute plate-forme qui utilise des threads.

Détails
Renvoie
Temps écoulé, en microsecondes, depuis une epoch arbitraire définie par la plate-forme.

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

Fonction spécifique à la plate-forme permettant d'obtenir un temps système monotone en millisecondes.

Cette fonction doit renvoyer le temps écoulé en millisecondes depuis une epoch arbitraire définie par la plate-forme. Les implémentations de plate-forme sont tenues de renvoyer une valeur qui augmente constamment (c'est-à-dire qui n'est jamais encapsulée) entre les redémarrages du système. De plus, la source de temps sous-jacente doit s'activer en continu pendant tous les modes de veille du système qui n'impliquent pas de redémarrage au moment de l'activation.

L'epoch de l'heure renvoyée par cette fonction n'a pas besoin d'être identique à celle des autres fonctions GetClock..., y compris GetClock_Monotonic().

Cette fonction est censée être thread-safe sur toute plate-forme qui utilise des threads.

Détails
Renvoie
Temps écoulé, en millisecondes, depuis une epoch arbitraire définie par la plate-forme.

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

Fonction spécifique à la plate-forme permettant d'obtenir l'heure réelle (civil) actuelle au format d'heure Unix en microsecondes.

Cette fonction doit renvoyer la notion de temps réel actuelle de la plate-forme locale, exprimée sous la forme d'une valeur de temps Unix adaptée à la microseconde. L'horloge sous-jacente doit se régler à une fréquence d'au moins une seconde entière (des valeurs de 1 000 000), mais elle peut être plus rapide.

Sur les plates-formes capables de suivre en temps réel, GetClock_RealTime() doit renvoyer l'erreur WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED chaque fois que le système est désynchronisé en temps réel.

Les plates-formes incapables d'effectuer le suivi en temps réel ne doivent pas implémenter la fonction GetClock_RealTime(), forçant ainsi les défaillances au moment de la liaison des fonctionnalités qui dépendent de l'accès au temps réel. Ces plates-formes peuvent également fournir une implémentation de GetClock_RealTime() qui renvoie l'erreur WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

Cette fonction est censée être thread-safe sur toute plate-forme qui utilise des threads.

Détails
Paramètres
[out] curTime
Heure actuelle, exprimée en temps Unix ajusté à la microseconde.
Valeurs de retour
WEAVE_SYSTEM_NO_ERROR
Si la méthode a réussi.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
La plate-forme est capable de suivre en temps réel, mais est désynchronisée.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Si la plate-forme n'est pas en mesure d'effectuer un suivi en temps réel.

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

Fonction spécifique à la plate-forme permettant d'obtenir l'heure réelle (civil) actuelle au format d'heure Unix en millisecondes.

Cette fonction doit renvoyer la notion de temps réel actuelle de la plate-forme locale, exprimée sous la forme d'une valeur de temps Unix ajustée en millisecondes.

Consultez la documentation de GetClock_RealTime() pour en savoir plus sur le comportement attendu.

Détails
Paramètres
[out] curTime
Heure actuelle, exprimée en temps Unix en millisecondes.
Valeurs de retour
WEAVE_SYSTEM_NO_ERROR
Si la méthode a réussi.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
La plate-forme est capable de suivre en temps réel, mais est désynchronisée.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Si la plate-forme n'est pas en mesure d'effectuer un suivi en temps réel.

PostEvent

NL_DLL_EXPORT Error PostEvent(
  Layer & aLayer,
  void *aContext,
  Object & aTarget,
  EventType aType,
  uintptr_t aArgument
)

Il s'agit d'un post-hook d'événement / de message spécifique à une plate-forme.

Vous pouvez remplacer ce paramètre en vérifiant la définition du préprocesseur, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Poste un événement / message du type spécifié avec l'argument fourni dans la file d'attente d'événements / de messages spécifique à la plate-forme de cette instance.

Détails
Paramètres
[in,out] aLayer
Pointeur vers l'instance de couche sur laquelle l'événement / le message est publié.
[in,out] aContext
Données de contexte spécifiques à la plate-forme transmises à la méthode d'initialisation de la couche, ::Init.
[in,out] aTarget
Pointeur vers l'objet Layer du système Weave effectuant la requête post.
[in] aType
Type d'événement à publier.
[in,out] anArg
Argument associé à l'événement à publier.
Renvoie
WEAVE_SYSTEM_NO_ERROR en cas de réussite. Sinon, erreur spécifique indiquant la raison de l'échec de l'initialisation.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

Fonction spécifique à la plate-forme permettant de définir l'heure réelle (civil) actuelle.

Weave appelle cette fonction pour définir la notion de temps réel actuelle utilisée par la plate-forme locale. La nouvelle heure actuelle est exprimée sous la forme d'une valeur de temps Unix ajustée à la microseconde.

Une fois définie, l'horloge de la plate-forme sous-jacente doit suivre en temps réel avec une précision d'au moins des secondes entières.

Sur les plates-formes qui prennent en charge le suivi en temps réel, la fonction SetClock_RealTime() doit renvoyer l'erreur WEAVE_SYSTEM_ERROR_ACCESS_DENIED si l'application appelante ne dispose pas du droit lui permettant de définir l'heure actuelle.

Les plates-formes incapables de suivre en temps réel ou n'offrant pas la possibilité de définir cette valeur ne doivent pas implémenter la fonction SetClock_RealTime(), ce qui force les défaillances au moment de la liaison des fonctionnalités qui dépendent du paramétrage du temps réel. Ces plates-formes peuvent également fournir une implémentation de SetClock_RealTime() qui renvoie l'erreur WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

Cette fonction est censée être thread-safe sur toute plate-forme qui utilise des threads.

Détails
Paramètres
[in] newCurTime
Nouvelle heure actuelle, exprimée en heure Unix ajustée à la microseconde.
Valeurs de retour
WEAVE_SYSTEM_NO_ERROR
Si la méthode a réussi.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Si la plate-forme n'est pas en mesure d'effectuer un suivi en temps réel.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Si l'application appelante ne dispose pas du droit lui permettant de définir l'heure actuelle,

StartTimer

NL_DLL_EXPORT Error StartTimer(
  Layer & aLayer,
  void *aContext,
  uint32_t aMilliseconds
)

Il s'agit d'un hook d'envoi d'événements / de messages spécifique à une plate-forme.

Vous pouvez remplacer ce paramètre en vérifiant la définition du préprocesseur, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Détails
Paramètres
[in,out] aLayer
Référence à l'instance de couche pour laquelle les événements / messages sont distribués.
[in,out] aContext
Données de contexte spécifiques à la plate-forme transmises à la méthode d'initialisation de la couche, ::Init.
[in] aMilliseconds
Nombre de millisecondes à définir pour le minuteur.
Valeurs de retour
WEAVE_SYSTEM_NO_ERROR
L'opération réussit toujours, sauf si la règle est remplacée.

WillInit

NL_DLL_EXPORT Error WillInit(
  Layer & aLayer,
  void *aContext
)

Il s'agit d'un hook de pré-initialisation de la couche du système Weave spécifique à la plate-forme.

Vous pouvez la remplacer en vérifiant la définition du préprocesseur, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Détails
Paramètres
[in,out] aLayer
Référence à l'instance de couche du système Weave en cours d'initialisation.
[in,out] aContext
Données de contexte spécifiques à la plate-forme transmises à la méthode d'initialisation de la couche, ::Init.
Renvoie
WEAVE_SYSTEM_NO_ERROR en cas de réussite. Sinon, erreur spécifique indiquant la raison de l'échec de l'initialisation. Si vous renvoyez l'état "Échec", l'initialisation sera annulée.

WillShutdown

NL_DLL_EXPORT Error WillShutdown(
  Layer & aLayer,
  void *aContext
)

Il s'agit d'un hook de pré-arrêt de la couche du système Weave spécifique à la plate-forme.

Vous pouvez la remplacer en vérifiant la définition du préprocesseur, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Détails
Paramètres
[in,out] aLayer
Pointeur vers l'instance de couche du système Weave en cours d'arrêt.
[in,out] aContext
Données de contexte spécifiques à la plate-forme transmises à la méthode d'initialisation de la couche, ::Shutdown.
Renvoie
WEAVE_SYSTEM_NO_ERROR en cas de réussite ; sinon, erreur spécifique indiquant la raison de l'échec de l'arrêt. Si vous renvoyez l'état "Échec", l'arrêt sera annulé.