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

Résumé

Fonctions

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Il s'agit d'un hook de post-initialisation de système Weave System Layer spécifique à la plate-forme.
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Il s'agit d'un crochet de pré-arrêt Layer spécifique à la plate-forme.
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
NL_DLL_EXPORT Error
Il s'agit d'un hook de distribution d'événement / de message spécifique à une plate-forme.
DispatchEvents(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Il s'agit d'un hook de distribution d'événement / de message 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 à une 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 le temps réel (civil) actuel au format de temps Unix en microsecondes.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
Fonction spécifique à la plate-forme permettant d'obtenir le temps réel (civil) actuel 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 événement / message après hook spécifique à une plate-forme.
SetClock_RealTime(uint64_t newCurTime)
Error
Fonction spécifique à la plate-forme permettant de définir le temps réel (civil) actuel.
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
NL_DLL_EXPORT Error
Il s'agit d'un hook de distribution d'événement / de message spécifique à une plate-forme.
WillInit(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Il s'agit d'un crochet de pré-initialisation de Layer Weave System spécifique à la plate-forme.
WillShutdown(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Il s'agit d'un crochet de pré-arrêt Layer spécifique à la plate-forme.

Fonctions

DidInit

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

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

Ce paramètre peut être ignoré en attribuant 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 Layer (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 général renvoyé par la méthode Layer ::Init du système Weave.

DidShutdown

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

Il s'agit d'un crochet de pré-arrêt Layer spécifique à la plate-forme.

Ce paramètre peut être ignoré en attribuant 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, ::Arrêt.
[in] anError
État général renvoyé par la méthode ::Shutdown ::Layer (couche) du système Weave.
Renvoie
WEAVE_SYSTEM_NO_ERROR en cas de réussite Sinon, une erreur spécifique indiquant la raison de l'échec de l'arrêt. Le renvoi de l'état ayant échoué entraînera l'annulation de l'arrêt.

DispatchEvent

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

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

Ce paramètre peut être ignoré en attribuant la définition du préprocesseur WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

L'événement spécifié est alors envoyé pour être traité, en retirant le type et les arguments de l'événement pour les transférer à la méthode Layer::HandleEvent du système Weave pour la distribution réelle.

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 d'événement spécifique à la plate-forme à envoyer pour traitement.
Valeurs renvoyées
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Si #aLayer ou si 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
En cas de réussite.

DispatchEvents

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

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

Ce paramètre peut être ignoré en attribuant la définition du préprocesseur WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Cela crée une boucle d'événements : il attend une file d'attente qui dessert cette instance, extrait les événements de cette file d'attente, puis les envoie pour qu'ils soient traités.

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 renvoyées
#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
En cas de 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 époque arbitraire définie par la plate-forme. Les implémentations de plate-forme sont tenues de renvoyer une valeur qui ne cesse d'augmenter (c'est-à-dire qui ne s'encapsule jamais) entre les redémarrages du système. De plus, la source temporelle sous-jacente est requise pour fonctionner en continu pendant tout mode de veille du système qui n'implique pas de redémarrage au démarrage.

L'époque pour l'heure renvoyée par cette fonction n'a pas besoin d'être identique à celle de toutes 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 époque arbitraire définie par la plate-forme.

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

Fonction spécifique à une 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 époque arbitraire définie par la plate-forme. Les valeurs renvoyées par GetClock_MonotonicHiRes() doivent être croissantes (c'est-à-dire ne jamais encapsulées). Cependant, le minuteur sous-jacent n'est pas nécessaire pour tourner 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 à des ajustements progressifs de l'horloge (balayage). Sur les plates-formes qui ne disposent pas d'un tel minuteur, GetClock_MonotonicHiRes() peut renvoyer la même valeur que GetClock_Monotonic().

L'époque pour l'heure renvoyée par cette fonction ne doit pas nécessairement être identique à celle des 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 époque 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 époque arbitraire définie par la plate-forme. Les implémentations de plate-forme sont tenues de renvoyer une valeur qui ne cesse d'augmenter (c'est-à-dire qui ne s'encapsule jamais) entre les redémarrages du système. De plus, la source temporelle sous-jacente est requise pour fonctionner en continu pendant tout mode de veille du système qui n'implique pas de redémarrage au démarrage.

L'époque pour 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 époque arbitraire définie par la plate-forme.

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

Fonction spécifique à la plate-forme permettant d'obtenir le temps réel (civil) actuel au format de temps 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 mise à l'échelle en microsecondes. L'horloge sous-jacente doit être exécutée à une fréquence d'au moins au moins une seconde entière (valeurs de 1 000 000), mais elle peut être plus rapide.

Sur les plateformes qui sont capables de suivre le 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é avec le temps réel.

Les plates-formes incapables de suivre le temps réel ne doivent pas implémenter la fonction GetClock_RealTime(), entraînant ainsi des 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 heure Unix exprimée en microsecondes.
Valeurs renvoyées
WEAVE_SYSTEM_NO_ERROR
Si la méthode aboutit.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Si la plate-forme est capable d'effectuer le suivi en temps réel, mais qu'elle est actuellement désynchronisée.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Si la plate-forme n'est pas en mesure d'effectuer le suivi en temps réel.

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

Fonction spécifique à la plate-forme permettant d'obtenir le temps réel (civil) actuel 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 mise à l'échelle en millisecondes.

Pour en savoir plus sur le comportement attendu, consultez la documentation sur GetClock_RealTime().

Détails
Paramètres
[out] curTime
Heure actuelle, exprimée sous la forme d'une heure Unix ajustée à la milliseconde
Valeurs renvoyées
WEAVE_SYSTEM_NO_ERROR
Si la méthode aboutit.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Si la plate-forme est capable d'effectuer le suivi en temps réel, mais qu'elle est actuellement désynchronisée.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Si la plate-forme n'est pas en mesure d'effectuer le 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 événement / message après hook spécifique à une plate-forme.

Ce paramètre peut être ignoré en attribuant la définition du préprocesseur WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Cette commande publie un événement / message du type spécifié avec l'argument fourni dans la file d'attente de messages / d'événements 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 à l'origine de 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, une 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 le temps réel (civil) actuel.

Weave appelle cette fonction pour définir la notion de temps réel de la plate-forme locale. La nouvelle heure actuelle est exprimée sous la forme d'une valeur de temps Unix mise à l'échelle en microsecondes.

Une fois définie, l'horloge sous-jacente de la plate-forme doit suivre en temps réel avec une précision d'au moins 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 de définir l'heure actuelle.

Les plates-formes incapables de suivre en temps réel ou qui n'offrent pas la possibilité de définir une valeur en temps réel ne doivent pas implémenter la fonction SetClock_RealTime(), entraînant ainsi des défaillances au moment de la liaison pour les fonctionnalités qui dépendent de la configuration 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 exprimée en microsecondes.
Valeurs renvoyées
WEAVE_SYSTEM_NO_ERROR
Si la méthode aboutit.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Si la plate-forme n'est pas en mesure d'effectuer le suivi en temps réel.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Si l'application appelante ne dispose pas du droit 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 de distribution d'événement / de message spécifique à une plate-forme.

Ce paramètre peut être ignoré en attribuant 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 renvoyées
WEAVE_SYSTEM_NO_ERROR
L'opération réussit toujours, sauf si elle est remplacée.

WillInit

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

Il s'agit d'un crochet de pré-initialisation de Layer Weave System spécifique à la plate-forme.

Ce paramètre peut être ignoré en attribuant 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 Layer (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, une erreur spécifique indiquant la raison de l'échec de l'initialisation. Si l'état renvoyé a échoué, l'initialisation est annulée.

WillShutdown

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

Il s'agit d'un crochet de pré-arrêt Layer spécifique à la plate-forme.

Ce paramètre peut être ignoré en attribuant 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, ::Arrêt.
Renvoie
WEAVE_SYSTEM_NO_ERROR en cas de réussite Sinon, une erreur spécifique indiquant la raison de l'échec de l'arrêt. Le renvoi de l'état ayant échoué entraînera l'annulation de l'arrêt.