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é

Elle utilise l'un des nombreux points de terminaison InetLayer pour établir un canal de communication avec les autres nœuds Weave.

Constructeurs et destructeurs

WeaveMessageLayer(void)
Constructeur de couche de message Weave.

Types publics

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Cette fonction est le rappel de la couche supérieure pour signaler une erreur lors du traitement d'une connexion TCP entrante.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
Cette fonction est invoquée pour supprimer un rappel.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
Cette fonction correspond au rappel de la couche supérieure pour gérer une connexion TCP entrante.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Cette fonction est le rappel de l'application pour signaler une modification de l'activité de la couche des messages.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Cette fonction est le rappel de la couche supérieure qui est invoqué à la réception d'un message Weave sur UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Cette fonction est le rappel de la couche supérieure invoqué lorsqu'une erreur se produit.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Cette fonction est le rappel de la couche supérieure qui est invoqué à la réception d'un paquet tunnelisé sur un tunnel UDP local.

Attributs publics

AppState
void *
Pointeur vers un objet d'état spécifique à l'application.
ExchangeMgr
[LECTURE SEULE] L'objet WeaveExchangeManager associé.
FabricState
[LECTURE SEULE] L'objet WeaveFabricState associé.
IncomingConIdleTimeout
uint32_t
Délai d'inactivité par défaut (en millisecondes) pour les connexions entrantes.
Inet
InetLayer *
[LECTURE SEULE] L'objet InetLayer associé.
IsListening
bool
[LECTURE SEULE] "True" si l'écoute de connexions/messages entrants est activée, "false" dans le cas contraire.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[LECTURE SEULE] L'objet WeaveSecurityManager associé.
State
uint8_t
[LECTURE SEULE] État de l'objet WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Interne et pour le débogage uniquement. Lorsque cet indicateur est défini, WeaveMessageLayer supprime le message et l'affiche.

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ée un WeaveConnectionTunnel en associant deux WeaveConnections spécifiées.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Décoder 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 Weave Message dans un PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Vérifiez si les échanges UDP Weave initiés localement doivent être envoyés depuis un port source UDP éphémère.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Obtenez le nombre de connexions WeaveConnections utilisées et la taille du pool.
IPv4ListenEnabled(void) const
bool
Vérifiez si WeaveMessageLayer est configuré pour écouter les communications entrantes sur IPv4.
IPv6ListenEnabled(void) const
bool
Vérifiez si WeaveMessageLayer est configuré pour écouter les communications entrantes sur IPv4.
Init(InitContext *context)
Initialisez l'objet de couche de message Weave.
IsBoundToLocalIPv4Address(void) const
bool
Vérifiez si WeaveMessageLayer est lié à 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)
Renvoyez un message Weave encodé à l'aide du point de terminaison UDP Inetlayer sous-jacent.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Renvoyez 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)
Renvoyez 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 mode tunnelisé 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 message 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
Permet d'activer ou de désactiver le lancement 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
Récupère la taille maximale de la charge utile Weave pour une configuration de message et la valeur PacketBuffer fournie.
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 pair et les informations de connexion ou d'adresse qui lui sont 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 la couche supérieure pour signaler une erreur lors du traitement d'une connexion TCP entrante.

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

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

Cette fonction est invoquée pour supprimer un rappel.

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

ConnectionReceiveFunct

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

Cette fonction correspond au rappel de la 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 une modification de l'activité de la couche des messages.

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

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

MessageReceiveFunct

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

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

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

ReceiveErrorFunct

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

Cette fonction est le rappel de la couche supérieure invoqué lorsqu'une erreur se produit.

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

État

 State

État du WeaveMessageLayer.

Propriétés
kState_Initialized

État lorsque le WeaveMessageLayer est initialisé.

kState_Initializing

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

kState_NotInitialized

État lorsque le WeaveMessageLayer n'est pas initialisé.

TunneledMsgReceiveFunct

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

Cette fonction est le rappel de la couche supérieure qui est invoqué à la réception d'un paquet tunnelisé sur 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 reçu par tunnel.

Attributs publics

AppState

void * AppState

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

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[LECTURE SEULE] L'objet WeaveExchangeManager associé.

FabricState

WeaveFabricState * FabricState

[LECTURE SEULE] L'objet WeaveFabricState associé.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

Délai d'inactivité par défaut (en millisecondes) pour les connexions entrantes.

Inet

InetLayer * Inet

[LECTURE SEULE] L'objet InetLayer associé.

IsListening

bool IsListening

[LECTURE SEULE] "True" si l'écoute de connexions/messages entrants 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] L'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. Lorsque cet indicateur est défini, WeaveMessageLayer supprime le message et l'affiche.

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.

Ensuite, abandonnez tous les WeaveConnections ouverts et tous les objets WeaveConnectionTunnel ouverts.

Voir aussi:
Shutdown().

CreateTunnel

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

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

Si la création aboutit, 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 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 d'inactivité du tunnel de connexion Weave, en millisecondes.
Valeurs de retour
WEAVE_NO_ERROR
Une fois la création du WeaveConnectionTunnel réussie
WEAVE_ERROR_INCORRECT_STATE
si l'état des objets de composant WeaveConnection du WeaveConnectionTunnel est incorrect.
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écoder 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 les informations sur le message.
[out] payloadStart
Pointeur pointant vers la position dans le tampon du message une fois le décodage terminé.
Valeurs de retour
WEAVE_NO_ERROR
Après un décodage réussi de l'en-tête du message.
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 Weave Message n'est pas prise en charge.

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 du message Weave.
Valeurs de retour
WEAVE_NO_ERROR
sur la réussite de l'encodage du message.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
si la version du format d'en-tête Weave Message n'est pas prise en charge.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
si la longueur de la charge utile dans le tampon du message est de zéro.
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 la longueur maximale demandée.
WEAVE_ERROR_BUFFER_TOO_SMALL
s’il n’y a pas assez d’espace avant ou après la charge utile du message.
other
Erreurs générées par l'objet d'état de la structure 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 Weave Message 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 contiendra le message Weave.
Valeurs de retour
WEAVE_NO_ERROR
sur l'encodage réussi du message Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
si la version de Weave Message n'est pas prise en charge.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
si la longueur de la charge utile dans le tampon du message est de zéro.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
si le type de chiffrement n'est pas compatible.
WEAVE_ERROR_MESSAGE_TOO_LONG
si le message encodé dépasse la longueur maximale demandée.
WEAVE_ERROR_BUFFER_TOO_SMALL
s’il n’y a pas assez d’espace avant ou après la charge utile du message.
other
Erreurs générées par l'objet d'état de la structure 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 depuis un port source UDP éphémère.

GetConnectionPoolStats

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

Obtenez le nombre de connexions WeaveConnections utilisées et la taille du pool.

Détails
Paramètres
[out] aOutInUse
Référence à size_t, dans laquelle le nombre de connexions en cours d'utilisation est stocké.

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

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

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

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

Init

WEAVE_ERROR Init(
  InitContext *context
)

Initialisez l'objet de couche de message Weave.

Détails
Paramètres
[in] context
Un pointeur vers l'objet InitContext.
Valeurs de retour
WEAVE_NO_ERROR
après une initialisation réussie.
WEAVE_ERROR_INVALID_ARGUMENT
si l'objet InitContext transmis est nul.
WEAVE_ERROR_INCORRECT_STATE
si l'état de l'objet WeaveMessageLayer est incorrect.
other
d'erreurs générées à partir de 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
Un pointeur vers l'objet WeaveConnection nouvellement créé en cas de réussite, sinon NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

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

Détails
Renvoie
Un pointeur vers l'objet WeaveConnectionTunnel nouvellement créé en cas de réussite, 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 de retour
WEAVE_NO_ERROR
sur l'actualisation réussie des points de terminaison.
InetLayer
d'erreurs basées sur les appels à la création de points de terminaison TCP/UDP.

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

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

Détails
Paramètres
[in] msgInfo
Un pointeur vers l'objet WeaveMessageInfo.
[in] payload
Pointeur vers l'objet PacketBuffer contenant le message Weave encodé.
Valeurs de retour
WEAVE_NO_ERROR
de l'envoi réussi du message à la couche réseau.
errors
générés à 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
)

Renvoyez 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
Un pointeur vers l'objet WeaveMessageInfo.
[in] payload
Pointeur vers l'objet PacketBuffer contenant le message Weave encodé.
Valeurs de retour
WEAVE_NO_ERROR
de l'envoi réussi du message à la couche réseau.
errors
générés à 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
)

Renvoyez 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
Un pointeur vers l'objet WeaveMessageInfo.
[in] payload
Pointeur vers l'objet PacketBuffer contenant le message Weave encodé.
Valeurs de retour
WEAVE_NO_ERROR
de l'envoi réussi du message à la couche réseau.
errors
générés à 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
)

Renvoyez 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 figurant dans l'en-tête du message. Échec si cette opération ne peut pas être effectuée. - Si l'adresse de destination est une adresse de fabric pour la fabrique locale et que l'appelant n'a pas spécifié l'ID du 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
Un pointeur vers l'objet WeaveMessageInfo.
[in] payload
Pointeur vers l'objet PacketBuffer contenant le message Weave encodé.
Valeurs de retour
WEAVE_NO_ERROR
de l'envoi réussi du message à la couche réseau.
errors
générés à 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 de retour
WEAVE_NO_ERROR
de l'envoi réussi du message à la couche réseau.
errors
générés à 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 figurant dans l'en-tête du message. Échec si cette opération ne peut pas être effectuée.

- Si l'adresse de destination est une adresse de fabric pour la fabrique locale et que l'appelant n'a pas spécifié l'ID du 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 de retour
WEAVE_NO_ERROR
de l'envoi réussi du message à la couche réseau.
errors
générés à 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 figurant dans l'en-tête du message. Échec si cette opération ne peut pas être effectuée. - Si l'adresse de destination est une adresse de fabric pour la fabrique locale et que l'appelant n'a pas spécifié l'ID du 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 de retour
WEAVE_NO_ERROR
de l'envoi réussi du message à la couche réseau.
WEAVE_ERROR_INVALID_ADDRESS
si l'objet destAddr n'est pas spécifié ou ne peut pas être déterminé à partir de l'ID du nœud de destination.
errors
générés à 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 mode tunnelisé via un tunnel UDP local.

Envoyer un message de données IPv6 avec tunnel sur 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 de retour
WEAVE_NO_ERROR
de l'envoi réussi du message à la couche réseau.
WEAVE_ERROR_INVALID_ADDRESS
si l'objet destAddr n'est pas spécifié ou ne peut pas être déterminé à partir de l'ID du nœud de destination.
errors
générés à 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 message change.

Plus précisément, l'application recevra une notification à chaque fois:

  • le nombre de places de marché ouvertes change.
  • le nombre de demandes de synchronisation de compteur de messages en attente passe de zéro à au moins un, puis à zéro. Le gestionnaire sert de signal général indiquant si des conversations Weave sont en cours ou des réponses en attente. Le gestionnaire doit être défini une fois le WeaveMessageLayer initialisé. L'arrêt de WeaveMessageLayer supprimera le gestionnaire actuel.

Détails
Paramètres
[in] messageLayerActivityChangeHandler
Un pointeur vers une fonction à appeler chaque fois que l'activité de la couche de message change.
Valeurs de retour
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 le changement 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 le changement 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 couche supérieure, les variables de membre et les objets. L'appel de 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 

Permet d'activer ou de désactiver le lancement d'échanges UDP Weave à partir d'un port source UDP éphémère.

REMARQUE: RefreshEndpoints() doit être appelé après le changement 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 couche de message Weave.

Fonctions statiques publiques

GetMaxWeavePayloadSize

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

Récupère la taille maximale de la charge utile Weave pour une configuration de message et la valeur PacketBuffer fournie.

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

Si le message est UDP, la taille de charge utile maximale renvoyée n'entraînera pas de message Weave qui ne dépassera pas la MTU UDP spécifiée.

Enfin, la taille de charge utile maximale renvoyée n'entraînera pas un message Weave qui dépassera la taille maximale du message Weave.

Détails
Paramètres
[in] msgBuf
Pointeur vers le TametBuffer dans lequel la charge utile du message sera écrite.
[in] isUDP
"True" si le message est un message UDP.
[in] udpMTU
Taille de la MTU UDP. Ignoré si isUDP est défini sur "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 ou d'adresse qui lui sont 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 taille de la mémoire tampon fournie doit être au moins égale à celle de kWeavePeerDescription_MaxLength. Si vous fournissez un tampon plus petit, la chaîne sera tronquée. Le résultat inclut un caractère de fin NUL dans tous les cas.
[in] bufSize
Taille du tampon indiqué 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 affichée.
[in] port
Numéro de port IP à imprimer. Aucun numéro de port ne sera imprimé si la valeur adr est NULL.
[in] interfaceId
InterfaceId identifiant l'interface à imprimer. La chaîne de sortie contiendra le nom de l'interface connu de la pile réseau sous-jacente. Aucun nom d'interface ne sera affiché si interfaceId est INET_NULL_INTERFACEID ou si l'utilisateur est NULL.
[in] con
Pointeur vers un objet WeaveConnection dont l'ID de journalisation doit être affiché, ou valeur NULL si aucun ID de connexion ne doit être affiché.

GetPeerDescription

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

Construit une chaîne décrivant un nœud pair en fonction 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 taille de la mémoire tampon fournie doit être au moins égale à celle de kWeavePeerDescription_MaxLength. Si vous fournissez un tampon plus petit, la chaîne sera tronquée. Le résultat inclut un caractère de fin NUL dans tous les cas.
[in] bufSize
Taille du tampon indiqué par buf.
[in] msgInfo
Pointeur vers une structure WeaveMessageInfo contenant des informations sur le message.