nl::Weave::WeaveMessageLayer

#include <src/lib/core/WeaveMessageLayer.h>

Définition de la classe WeaveMessageLayer, qui gère la communication avec les autres nœuds Weave.

Résumé

Il utilise l'un des plusieurs points de terminaison InetLayer pour établir un canal de communication avec d'autres nœuds Weave.

Constructeurs et destructeurs

WeaveMessageLayer(void)
Constructeur de la couche de message Weave.

Types publics

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Cette fonction est le rappel de couche supérieure permettant de signaler une erreur lors de la gestion d'une connexion TCP entrante.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
Cette fonction est appelée pour supprimer un rappel.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
Cette fonction est le rappel de couche supérieure pour la gestion d'une connexion TCP entrante.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Cette fonction est le rappel de l'application pour signaler le changement d'activité de la couche de messages.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Cette fonction est le rappel de couche supérieure invoqué à la réception d'un message Weave via UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Cette fonction est le rappel de la couche supérieure appelé en cas d'erreur.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
énum
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Cette fonction est le rappel de couche supérieure appelé à la réception d'un paquet en tunnel via un tunnel UDP local.

Attributs publics

AppState
void *
Pointeur vers un objet d'état spécifique à l'application.
ExchangeMgr
[READ ONLY] Objet WeaveExchangeManager associé.
FabricState
[READ ONLY] Objet WeaveFabricState associé.
IncomingConIdleTimeout
uint32_t
Délai avant expiration par défaut (en millisecondes) pour les connexions entrantes.
Inet
InetLayer *
[READ ONLY] Objet InetLayer associé.
IsListening
bool
[LECTURE UNIQUE] "True" si l'écoute des connexions/messages entrantes est activée, "false" dans le cas contraire.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[READ ONLY] Objet WeaveSecurityManager associé.
State
uint8_t
[LECTURE SEULE] État de l'objet WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Interne et réservé au débogage uniquement. Lorsque cette valeur est définie, WeaveMessageLayer supprime le message et renvoie la valeur.

Fonctions publiques

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
Fermez tous les points de terminaison TCP et UDP ouverts.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
Créez un WeaveConnectionTunnel en associant deux WeaveConnections spécifiées.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Décodez un en-tête de couche de message Weave à partir d'un message Weave reçu.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Encodez un en-tête WeaveMessageLayer dans un PacketBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Encodez un en-tête de couche de message Weave en un PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Vérifiez si les échanges UDP Weave initiés localement doivent être envoyés à partir d'un port source UDP éphémère.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Obtenez le nombre de WeaveConnections utilisés et la taille du pool.
IPv4ListenEnabled(void) const
bool
Vérifiez si WeaveMessageLayer est configuré pour écouter les communications entrantes via IPv4.
IPv6ListenEnabled(void) const
bool
Vérifiez si WeaveMessageLayer est configuré pour écouter les communications entrantes via IPv4.
Init(InitContext *context)
Initialisez l'objet de la couche de message Weave.
IsBoundToLocalIPv4Address(void) const
bool
Vérifiez si WeaveMessageLayer est associé à une adresse IPv4 locale.
IsBoundToLocalIPv6Address(void) const
bool
Vérifiez si WeaveMessageLayer est lié à une adresse IPv6 locale.
IsMessageLayerActive(void)
bool
NewConnection(void)
Créez un objet WeaveConnection à partir d'un pool.
NewConnectionTunnel(void)
Créez un objet WeaveConnectionTunnel à partir d'un pool.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
Actualiser les points de terminaison InetLayer en fonction de l'état actuel des interfaces réseau du système
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Réenvoyer un message Weave encodé à l'aide du point de terminaison UDP Inetlayer sous-jacent.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Réenvoyer un message Weave encodé à l'aide du point de terminaison UDP Inetlayer sous-jacent.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Réenvoyer un message Weave encodé à l'aide du point de terminaison UDP Inetlayer sous-jacent.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Renvoyez un message Weave encodé à l'aide du point de terminaison UDP Inetlayer sous-jacent.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Envoyez un message Weave à l'aide du point de terminaison UDP Inetlayer sous-jacent après l'avoir encodé.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Envoyez un message Weave à l'aide du point de terminaison UDP Inetlayer sous-jacent après l'avoir encodé.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Envoyez un message Weave à l'aide du point de terminaison UDP Inetlayer sous-jacent après l'avoir encodé.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Fonction permettant d'envoyer un paquet en tunnel via un tunnel UDP local.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Définissez un gestionnaire d'application qui sera appelé chaque fois que l'activité de la couche de messages change.
SetTCPListenEnabled(bool val)
void
Activez ou désactivez l'écoute des connexions TCP entrantes dans WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Activez ou désactivez l'écoute des messages UDP entrants dans WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
TCPListenEnabled(void) const
bool
Vérifiez si WeaveMessageLayer est configuré pour écouter les connexions TCP entrantes.
UDPListenEnabled(void) const
bool
Vérifiez si WeaveMessageLayer est configuré pour écouter les messages UDP entrants.
UnsecuredListenEnabled(void) const
bool
Activez ou désactivez l'initiation d'échanges UDP Weave à partir d'un port source UDP éphémère.

Fonctions statiques publiques

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
Obtenez la taille maximale de la charge utile Weave pour une configuration de message et un PacketBuffer fourni.
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
Construit une chaîne décrivant un nœud de pair et ses informations d'adresse/de connexion associées.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Construit une chaîne décrivant un nœud pair en fonction des informations associées à un message reçu du pair.

Classes

nl::Weave::WeaveMessageLayer::InitContext

Définition de la classe InitContext.

Types publics

AcceptErrorFunct

void(* AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err)

Cette fonction est le rappel de couche supérieure permettant de signaler une erreur lors du traitement d'une connexion TCP entrante.

Détails
Paramètres
[in] msgLayer
Pointeur vers l'objet WeaveMessageLayer.
[in] err
L'erreur WEAVE_ERROR rencontrée lors de la gestion d'une connexion TCP entrante.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

Cette fonction est appelée pour supprimer un rappel.

Détails
Paramètres
[in] listenerState
Pointeur vers l'objet d'état de l'application.

ConnectionReceiveFunct

void(* ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con)

Cette fonction est le rappel de couche supérieure pour gérer une connexion TCP entrante.

Détails
Paramètres
[in] msgLayer
Pointeur vers l'objet WeaveMessageLayer.
[in] con
Pointeur vers l'objet WeaveConnection.

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

Cette fonction est le rappel de l'application pour signaler les modifications apportées à l'activité de la couche de messages.

La couche de message est considérée comme active s'il existe au moins un échange ouvert ou une requête de synchronisation de compteur de messages en attente.

Détails
Paramètres
[in] messageLayerIsActive
Valeur booléenne indiquant si la couche de messages est active ou non.

MessageReceiveFunct

void(* MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload)

Cette fonction est le rappel de couche supérieure invoqué à la réception d'un message Weave via UDP.

Détails
Paramètres
[in] msgLayer
Pointeur vers l'objet WeaveMessageLayer.
[in] msgInfo
Pointeur vers l'objet WeaveMessageInfo.
[in] payload
Pointeur vers le message PacketBuffer contenant le paquet en tunnel reçu.

ReceiveErrorFunct

void(* ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo)

Cette fonction est le rappel de couche supérieure invoqué en cas d'erreur.

Détails
Paramètres
[in] msgLayer
Un pointeur vers l'objet WeaveMessageLayer.
[in] err
WEAVE_ERROR rencontré lors de la réception de données.
[in] pktInfo
Pointeur en lecture seule vers l'objet IPPacketInfo.

État

 State

État de WeaveMessageLayer.

Propriétés
kState_Initialized

État lorsque la couche WeaveMessageLayer est initialisée.

kState_Initializing

État lorsque la WeaveMessageLayer est en cours d'initialisation.

kState_NotInitialized

État lorsque la WeaveMessageLayer n'est pas initialisée.

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload)

Cette fonction est le rappel de couche supérieure appelé à la réception d'un paquet en tunnel via un tunnel UDP local.

Détails
Paramètres
[in] msgLayer
Pointeur vers l'objet WeaveMessageLayer.
[in] payload
Pointeur vers le message PacketBuffer contenant le paquet en tunnel reçu.

Attributs publics

AppState

void * AppState

Pointeur vers un objet d'état spécifique à l'application.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[LECTURE SEULE] Objet WeaveExchangeManager associé.

FabricState

WeaveFabricState * FabricState

[LECTURE SEULE] Objet WeaveFabricState associé.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

Délai avant expiration par défaut (en millisecondes) pour les connexions entrantes.

Inet

InetLayer * Inet

[READ ONLY] Objet InetLayer associé.

IsListening

bool IsListening

[LECTURE UNIQUE] "True" si l'écoute des connexions/messages entrantes est activée, "false" dans le cas contraire.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[LECTURE SEULE] Objet WeaveSecurityManager associé.

État

uint8_t State

[LECTURE SEULE] État de l'objet WeaveMessageLayer.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Interne et pour le débogage uniquement. Lorsqu'il est défini, WeaveMessageLayer abandonne le message et le renvoie.

Fonctions publiques

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

Fermez tous les points de terminaison TCP et UDP ouverts.

Arrêtez ensuite toutes les connexions Weave ouvertes et arrêtez tous les objets WeaveConnectionTunnel ouverts.

Voir aussi :
Shutdown().

CreateTunnel

WEAVE_ERROR CreateTunnel(
  WeaveConnectionTunnel **tunPtr,
  WeaveConnection & conOne,
  WeaveConnection & conTwo,
  uint32_t inactivityTimeoutMS
)

Créez un WeaveConnectionTunnel en associant deux WeaveConnections spécifiées.

En cas de création réussie, les TCPEndPoints correspondant aux objets WeaveConnection du composant sont transmis au WeaveConnectionTunnel, sinon les WeaveConnections sont fermées.

Détails
Paramètres
[out] tunPtr
Pointeur vers un pointeur d'un objet WeaveConnectionTunnel.
[in] conOne
Référence au premier objet WeaveConnection.
[in] conTwo
Référence au deuxième objet WeaveConnection.
[in] inactivityTimeoutMS
Durée maximale (en millisecondes) pendant laquelle le tunnel de connexion Weave peut être inactif.
Valeurs renvoyées
WEAVE_NO_ERROR
après la création réussie du WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
Si les objets WeaveConnection du composant WeaveConnectionTunnel ne sont pas dans l'état correct.
WEAVE_ERROR_NO_MEMORY
si un nouvel objet WeaveConnectionTunnel ne peut pas être créé.

DecodeHeader

WEAVE_ERROR DecodeHeader(
  PacketBuffer *msgBuf,
  WeaveMessageInfo *msgInfo,
  uint8_t **payloadStart
)

Décodez un en-tête de couche de message Weave à partir d'un message Weave reçu.

Détails
Paramètres
[in] msgBuf
Pointeur vers l'objet PacketBuffer contenant le message Weave.
[in] msgInfo
Pointeur vers un objet WeaveMessageInfo qui recevra des informations sur le message.
[out] payloadStart
Pointeur vers un pointeur vers la position dans le tampon de message une fois le décodage terminé.
Valeurs renvoyées
WEAVE_NO_ERROR
Une fois le décodage de l'en-tête du message réussi.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Si la longueur du tampon de message transmis n'est pas valide.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Si la version du format d'en-tête de message Weave n'est pas compatible.

EncodeMessage

WEAVE_ERROR EncodeMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf,
  WeaveConnection *con,
  uint16_t maxLen,
  uint16_t reserve
)

Encodez un en-tête WeaveMessageLayer dans un PacketBuffer.

Détails
Paramètres
[in] msgInfo
Pointeur vers un objet WeaveMessageInfo contenant des informations sur le message à encoder.
[in] msgBuf
Pointeur vers l'objet PacketBuffer qui contiendra le message Weave.
[in] con
Pointeur vers l'objet WeaveConnection.
[in] maxLen
Longueur maximale du message Weave encodé.
[in] reserve
Espace réservé avant la charge utile pour contenir l'en-tête de message Weave.
Valeurs renvoyées
WEAVE_NO_ERROR
après l'encodage du message.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
si la version du format d'en-tête de message Weave n'est pas prise en charge.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
si la longueur de la charge utile dans le tampon de message est nulle.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
si le type de chiffrement dans l'en-tête du message n'est pas compatible.
WEAVE_ERROR_MESSAGE_TOO_LONG
si le message encodé dépasse le maximum demandé.
WEAVE_ERROR_BUFFER_TOO_SMALL
si l'espace est insuffisant avant ou après la charge utile du message.
other
erreurs générées par l'objet d'état de fabric lors de la récupération de l'état de la session.

EncodeMessage

WEAVE_ERROR EncodeMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *payload
)

Encodez un en-tête de couche de message Weave dans un PacketBuffer.

Détails
Paramètres
[in] destAddr
Adresse IP de destination.
[in] destPort
Port de destination.
[in] sendIntId
Interface sur laquelle envoyer le message Weave.
[in] msgInfo
Pointeur vers un objet WeaveMessageInfo.
[in] payload
Pointeur vers l'objet PacketBuffer qui contiendrait le message Weave.
Valeurs renvoyées
WEAVE_NO_ERROR
après l'encodage réussi du message Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
si la version de Weave Message n'est pas compatible.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
si la longueur de la charge utile dans le tampon de message est nulle.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
si le type de chiffrement n'est pas compatible.
WEAVE_ERROR_MESSAGE_TOO_LONG
si le message encodé est plus long que la longueur maximale demandée.
WEAVE_ERROR_BUFFER_TOO_SMALL
si l'espace est insuffisant avant ou après la charge utile du message.
other
erreurs générées par l'objet d'état de fabric lors de la récupération de l'état de la session.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

Vérifiez si les échanges UDP Weave initiés localement doivent être envoyés à partir d'un port source UDP éphémère.

GetConnectionPoolStats

void GetConnectionPoolStats(
  nl::Weave::System::Stats::count_t & aOutInUse
) const 

Obtenez le nombre de WeaveConnections en cours d'utilisation et la taille du pool.

Détails
Paramètres
[out] aOutInUse
Référence à size_t, dans laquelle le nombre de connexions utilisées est stocké.

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

Vérifiez si WeaveMessageLayer est configuré pour écouter les communications entrantes via IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Vérifiez si WeaveMessageLayer est configuré pour écouter les communications entrantes via IPv4.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Initialisez l'objet de la couche de message Weave.

Détails
Paramètres
[in] context
Pointeur vers l'objet InitContext.
Valeurs renvoyées
WEAVE_NO_ERROR
en cas d'initialisation réussie.
WEAVE_ERROR_INVALID_ARGUMENT
si l'objet InitContext transmis est NULL.
WEAVE_ERROR_INCORRECT_STATE
si l'état de l'objet WeaveMessageLayer est incorrect.
other
erreurs générées par la couche Inet inférieure lors de la création du point de terminaison.

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

Vérifiez si WeaveMessageLayer est lié à une adresse IPv4 locale.

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

Vérifiez si WeaveMessageLayer est lié à une adresse IPv6 locale.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

Créez un objet WeaveConnection à partir d'un pool.

Détails
Renvoie
Si la requête aboutit, un pointeur vers l'objet WeaveConnection nouvellement créé, sinon NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Créez un objet WeaveConnectionTunnel à partir d'un pool.

Détails
Renvoie
Si la requête aboutit, un pointeur vers l'objet WeaveConnectionTunnel nouvellement créé, sinon NULL.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

Actualiser les points de terminaison InetLayer en fonction de l'état actuel des interfaces réseau du système

Détails
Valeurs renvoyées
WEAVE_NO_ERROR
après l'actualisation réussie des points de terminaison.
InetLayer
erreurs basées sur des appels pour créer des points de terminaison TCP/UDP.

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Réenvoyer un message Weave encodé à l'aide du point de terminaison UDP Inetlayer sous-jacent.

Détails
Paramètres
[in] msgInfo
Pointeur vers l'objet WeaveMessageInfo.
[in] payload
Pointeur vers l'objet PacketBuffer contenant le message Weave encodé.
Valeurs renvoyées
WEAVE_NO_ERROR
après avoir envoyé le message à la couche réseau.
errors
généré à partir du point de terminaison UDP de la couche Inet inférieure lors de l'envoi.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Réenvoyer un message Weave encodé à l'aide du point de terminaison UDP Inetlayer sous-jacent.

Détails
Paramètres
[in] destAddr
Adresse IP de destination.
[in] msgInfo
Pointeur vers l'objet WeaveMessageInfo.
[in] payload
Pointeur vers l'objet PacketBuffer contenant le message Weave encodé.
Valeurs renvoyées
WEAVE_NO_ERROR
après avoir envoyé le message à la couche réseau.
errors
généré à partir du point de terminaison UDP de la couche Inet inférieure lors de l'envoi.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Réenvoyer un message Weave encodé à l'aide du point de terminaison UDP Inetlayer sous-jacent.

Détails
Paramètres
[in] destAddr
Adresse IP de destination.
[in] destPort
Port de destination.
[in] msgInfo
Pointeur vers l'objet WeaveMessageInfo.
[in] payload
Pointeur vers l'objet PacketBuffer contenant le message Weave encodé.
Valeurs renvoyées
WEAVE_NO_ERROR
après avoir envoyé le message à la couche réseau.
errors
généré à partir du point de terminaison UDP de la couche Inet inférieure lors de l'envoi.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId interfaceId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Réenvoyer un message Weave encodé à l'aide du point de terminaison UDP Inetlayer sous-jacent.

Remarque : Si l'adresse de destination n'a pas été fournie, essayez de la déterminer à partir de l'identifiant du nœud dans l'en-tête du message. Échec si cela n'est pas possible. -Si l'adresse de destination est une adresse de fabric pour le fabric local et que l'appelant n'a pas spécifié l'ID de nœud de destination, extrayez-le de l'adresse de destination.

Détails
Paramètres
[in] aDestAddr
Adresse IP de destination.
[in] destPort
Port de destination.
[in] interfaceId
Interface sur laquelle envoyer le message Weave.
[in] msgInfo
Pointeur vers l'objet WeaveMessageInfo.
[in] payload
Pointeur vers l'objet PacketBuffer contenant le message Weave encodé.
Valeurs renvoyées
WEAVE_NO_ERROR
après avoir envoyé le message à la couche réseau.
errors
généré à partir du point de terminaison UDP de la couche Inet inférieure lors de l'envoi.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Envoyez un message Weave à l'aide du point de terminaison UDP Inetlayer sous-jacent après l'avoir encodé.

Détails
Paramètres
[in] msgInfo
Pointeur vers un objet WeaveMessageInfo contenant des informations sur le message à envoyer.
[in] payload
Pointeur vers l'objet PacketBuffer contenant le message Weave encodé.
Valeurs renvoyées
WEAVE_NO_ERROR
après avoir envoyé le message à la couche réseau.
errors
généré à partir du point de terminaison UDP de la couche Inet inférieure lors de l'envoi.

SendMessage

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Envoyez un message Weave à l'aide du point de terminaison UDP Inetlayer sous-jacent après l'avoir encodé.

Remarque : Le port de destination utilisé est WEAVE_PORT. - Si l'adresse de destination n'a pas été fournie, essayez de la déterminer à partir de l'identifiant du nœud dans l'en-tête du message. Échec si cela n'est pas possible.

-Si l'adresse de destination est une adresse de fabric pour le fabric local et que l'appelant n'a pas spécifié l'ID de nœud de destination, extrayez-le de l'adresse de destination.

Détails
Paramètres
[in] destAddr
Adresse IP de destination.
[in] msgInfo
Pointeur vers un objet WeaveMessageInfo contenant des informations sur le message à envoyer.
[in] payload
Pointeur vers l'objet PacketBuffer contenant le message Weave encodé.
Valeurs renvoyées
WEAVE_NO_ERROR
après avoir envoyé le message à la couche réseau.
errors
généré à partir du point de terminaison UDP de la couche Inet inférieure lors de l'envoi.

SendMessage

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntfId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Envoyez un message Weave à l'aide du point de terminaison UDP Inetlayer sous-jacent après l'avoir encodé.

Remarque : Si l'adresse de destination n'a pas été fournie, essayez de la déterminer à partir de l'identifiant du nœud dans l'en-tête du message. Échec si cela n'est pas possible. -Si l'adresse de destination est une adresse de fabric pour le fabric local et que l'appelant n'a pas spécifié l'ID de nœud de destination, extrayez-le de l'adresse de destination.

Détails
Paramètres
[in] aDestAddr
Adresse IP de destination.
[in] destPort
Port de destination.
[in] sendIntfId
Interface sur laquelle envoyer le message Weave.
[in] msgInfo
Pointeur vers un objet WeaveMessageInfo contenant des informations sur le message à envoyer.
[in] payload
Pointeur vers l'objet PacketBuffer contenant le message Weave encodé.
Valeurs renvoyées
WEAVE_NO_ERROR
après avoir envoyé le message à la couche réseau.
WEAVE_ERROR_INVALID_ADDRESS
si l'adresse de destination n'est pas spécifiée ou ne peut pas être déterminée à partir de l'ID du nœud de destination.
errors
généré à partir du point de terminaison UDP de la couche Inet inférieure lors de l'envoi.

SendUDPTunneledMessage

WEAVE_ERROR SendUDPTunneledMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Fonction permettant d'envoyer un paquet en tunnel via un tunnel UDP local.

Envoyez un message de données IPv6 en tunnel via UDP.

Détails
Paramètres
[in] msgInfo
Pointeur vers un objet WeaveMessageInfo.
[in] destAddr
Adresse IP de la destination du tunnel UDP.
[in] msgBuf
Pointeur vers l'objet PacketBuffer contenant le paquet à envoyer.
Valeurs renvoyées
WEAVE_NO_ERROR
après avoir envoyé le message à la couche réseau.
WEAVE_ERROR_INVALID_ADDRESS
si l'adresse de destination n'est pas spécifiée ou ne peut pas être déterminée à partir de l'ID du nœud de destination.
errors
généré à partir du point de terminaison UDP de la couche Inet inférieure lors de l'envoi.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Définissez un gestionnaire d'application qui sera appelé chaque fois que l'activité de la couche de messages change.

Plus précisément, l'application reçoit une notification chaque fois que :

  • le nombre d'échanges ouverts change.
  • le nombre de requêtes de synchronisation du compteur de messages en attente passe de zéro à au moins un, puis à zéro. Le gestionnaire est diffusé en tant que signal général indiquant s'il existe des conversations Weave en cours ou des réponses en attente. Le gestionnaire doit être défini après l'initialisation de WeaveMessageLayer. L'arrêt de WeaveMessageLayer effacera le gestionnaire actuel.

Détails
Paramètres
[in] messageLayerActivityChangeHandler
Pointeur vers une fonction à appeler chaque fois que l'activité de la couche de messages change.
Valeurs renvoyées
None.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

Activez ou désactivez l'écoute des connexions TCP entrantes dans WeaveMessageLayer.

REMARQUE : RefreshEndpoints() doit être appelé après la modification de l'état d'écoute TCP.

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

Activez ou désactivez l'écoute des messages UDP entrants dans WeaveMessageLayer.

REMARQUE: RefreshEndpoints() doit être appelé après la modification de l'état d'écoute UDP.

SetUnsecuredConnectionListener

WEAVE_ERROR SetUnsecuredConnectionListener(
  ConnectionReceiveFunct newOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved,
  bool force,
  void *listenerState
)

Arrêt

WEAVE_ERROR Shutdown(
  void
)

Arrêtez WeaveMessageLayer.

Fermez tous les points de terminaison ouverts de la couche Inet et réinitialisez tous les rappels de la couche supérieure, les variables de membre et les objets. Un appel à Shutdown() met fin à l'objet WeaveMessageLayer.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Vérifiez si WeaveMessageLayer est configuré pour écouter les connexions TCP entrantes.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Vérifiez si WeaveMessageLayer est configuré pour écouter les messages UDP entrants.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

Activez ou désactivez l'initiation d'échanges UDP Weave à partir d'un port source UDP éphémère.

REMARQUE : RefreshEndpoints() doit être appelé après la modification de l'état du port éphémère. Vérifiez si l'écoute non sécurisée est activée.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Constructeur de la couche de message Weave.

Fonctions statiques publiques

GetMaxWeavePayloadSize

uint32_t GetMaxWeavePayloadSize(
  const PacketBuffer *msgBuf,
  bool isUDP,
  uint32_t udpMTU
)

Obtenez la taille maximale de la charge utile Weave pour une configuration de message et un PacketBuffer fourni.

La taille maximale de la charge utile renvoyée ne dépassera pas l'espace disponible pour une charge utile dans le PacketBuffer fourni.

Si le message est UDP, la taille de charge utile maximale renvoyée ne générera pas de message Weave qui ne débordera pas la MTU UDP spécifiée.

Enfin, la taille maximale de la charge utile renvoyée ne générera pas de message Weave qui débordera la taille maximale de message Weave.

Détails
Paramètres
[in] msgBuf
Pointeur vers le PacketBuffer dans lequel la charge utile du message sera écrite.
[in] isUDP
"True" si le message est un message UDP.
[in] udpMTU
Taille du MTU UDP. Ignoré si la valeur de "isUDP" est "false".
Renvoie
la taille maximale de la charge utile Weave.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  uint64_t nodeId,
  const IPAddress *addr,
  uint16_t port,
  InterfaceId interfaceId,
  const WeaveConnection *con
)

Construit une chaîne décrivant un nœud pair et les informations de connexion / adresse associées.

La chaîne générée a le format suivant :

 ([]:%, con )

Détails
Paramètres
[in] buf
Pointeur vers un tampon dans lequel la chaîne doit être écrite. La mémoire tampon fournie doit être au moins aussi grande que kWeavePeerDescription_MaxLength. Si un tampon plus petit est fourni, la chaîne sera tronquée pour s'adapter. La sortie inclut toujours un caractère de fin NUL.
[in] bufSize
Taille du tampon pointé par buf.
[in] nodeId
ID du nœud à imprimer.
[in] addr
Pointeur vers une adresse IP à imprimer ou valeur NULL si aucune adresse IP ne doit être imprimée.
[in] port
Numéro de port IP à imprimer. Aucun numéro de port ne sera imprimé si addr est NULL.
[in] interfaceId
InterfaceId identifiant l'interface à imprimer. La chaîne de sortie contient le nom de l'interface tel que connu par la pile réseau sous-jacente. Aucun nom d'interface ne sera imprimé si interfaceId est INET_NULL_INTERFACEID ou si addr est NULL.
[in] con
Pointeur vers un objet WeaveConnection dont l'ID de journalisation doit être imprimé, ou NULL si aucun ID de connexion ne doit être imprimé.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  const WeaveMessageInfo *msgInfo
)

Construit une chaîne décrivant un nœud pair à partir des informations associées à un message reçu du pair.

Détails
Paramètres
[in] buf
Pointeur vers un tampon dans lequel la chaîne doit être écrite. La mémoire tampon fournie doit être au moins aussi grande que kWeavePeerDescription_MaxLength. Si un tampon plus petit est fourni, la chaîne sera tronquée pour s'adapter. La sortie inclut toujours un caractère de fin NUL.
[in] bufSize
Taille du tampon indiqué par le tampon.
[in] msgInfo
Pointeur vers une structure WeaveMessageInfo contenant des informations sur le message.