nl::Weave::ExchangeContext

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

Cette classe représente une conversation en cours (ExchangeContext) entre deux nœuds ou plus.

Résumé

Il définit les méthodes d'encodage et de communication des messages Weave dans un ExchangeContext via divers mécanismes de transport, tels que TCP, UDP ou Weave Expect Messaging.

Types publics

@34{
  kSendFlag_AutoRetrans = 0x0001,
  kSendFlag_ExpectResponse = 0x0002,
  kSendFlag_RetransmissionTrickle = 0x0004,
  kSendFlag_DelaySend = 0x0008,
  kSendFlag_ReuseMessageId = 0x0010,
  kSendFlag_ReuseSourceId = 0x0020,
  kSendFlag_RetainBuffer = 0x0040,
  kSendFlag_AlreadyEncoded = 0x0080,
  kSendFlag_DefaultMulticastSourceAddress = 0x0100,
  kSendFlag_FromInitiator = 0x0200,
  kSendFlag_RequestAck = 0x0400,
  kSendFlag_NoAutoRequestAck = 0x0800,
  kSendFlag_MulticastFromLinkLocal = kSendFlag_DefaultMulticastSourceAddress
}
enum
@35{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Cette fonction est le rappel de l'application à invoquer lorsqu'une connexion Weave existante a été fermée.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Type de fonction de gestion des messages d'erreur clés.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
Cette fonction est le rappel de l'application pour traiter un message Weave reçu.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Cette fonction est le rappel de l'application à invoquer lorsque le délai avant expiration de la réception d'un message de réponse a expiré.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Cette fonction est le rappel de l'application à invoquer lorsque le délai d'inactivité de la retransmission d'un message précédemment envoyé a expiré.
Timeout typedef
uint32_t
Type utilisé pour exprimer le délai avant expiration dans ExchangeContext (en millisecondes).
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Cette fonction est le rappel de l'application à invoquer lorsqu'un accusé de réception est reçu pour un message Weave qui en a fait la demande dans le cadre du protocole de messagerie fiable Weave.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Cette fonction est le rappel de l'application à invoquer lorsqu'un message de limitation ou de distribution retardée est reçu dans le cadre du protocole de messagerie fiable de Weave.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Cette fonction est le rappel de l'application à invoquer lorsqu'une erreur se produit lors de l'envoi d'un message Weave.

Attributs publics

AllowDuplicateMsgs
bool
Indicateur booléen indiquant si les messages en double sont autorisés pour un échange donné.
AppState
void *
Pointeur vers l'objet d'état spécifique à l'application.
Con
[LECTURE SEULE] Connexion Weave associée.
EncryptionType
uint8_t
Type de chiffrement à utiliser lors de l'envoi d'un message.
ExchangeId
uint16_t
[LECTURE SEULE] ID de la place de marché attribué.
ExchangeMgr
[LECTURE SEULE] Gestionnaire de la place de marché propriétaire.
KeyId
uint16_t
Clé de chiffrement à utiliser lors de l'envoi d'un message.
OnAckRcvd
Rappel d'application pour l'accusé de réception reçu
OnConnectionClosed
OnDDRcvd
Rappel d'application pour le message de distribution retardée reçu.
OnKeyError
Cette fonction est le rappel de l'application à invoquer lorsque le pair a reçu un message d'erreur clé.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Rappel de l'application en cas d'erreur lors de l'envoi.
OnThrottleRcvd
Rappel d'application pour le message de limitation reçu.
PeerAddr
IPAddress
[LECTURE SEULE] Adresse IP du nœud pair.
PeerIntf
InterfaceId
[LECTURE SEULE] Interface sortante à utiliser lors de l'envoi de messages au pair.
PeerNodeId
uint64_t
[LECTURE SEULE] ID de nœud du nœud pair.
PeerPort
uint16_t
[LECTURE SEULE] Port du nœud pair.
ResponseTimeout
Délai d'attente maximal pour la réponse (en millisecondes) ; 0 désactive le délai avant expiration de la réponse.
RetransInterval
uint32_t
Délai entre les retransmissions (en millisecondes) ; 0 désactive les retransmissions.
mMsgProtocolVersion
uint16_t
Version du protocole de message pour ExchangeContext.
mWRMPConfig
Configuration WRMP.

Fonctions publiques

Abort(void)
void
Annulez immédiatement le contexte Exchange et libérez toutes les références à celui-ci.
AddRef(void)
void
Incrémentez le compteur de référence pour le contexte de la place de marché d'une unité.
AutoRequestAck() const
bool
Indique si un accusé de réception est demandé chaque fois qu'un message est envoyé.
CancelRetrans(void)
void
Annuler le mécanisme de retransmission Trickle
Close(void)
void
Fermez gracieusement un contexte d'échange.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Encodez l'en-tête d'échange dans un tampon de message.
GetAutoReleaseKey() const
bool
Indique si la clé de chiffrement associée à l'échange doit être libérée en même temps que l'échange.
GetCurrentRetransmitTimeout(void)
uint32_t
Obtenir le délai avant expiration actuel de la retransmission
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Construit une chaîne décrivant le nœud pair et les informations de connexion ou d'adresse qui lui sont associées.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Gérez les messages minimes dans le contexte de l'échange.
HasPeerRequestedAck(void) const
bool
Déterminez si le pair a demandé une confirmation pour au moins un message de cet échange.
HasRcvdMsgFromPeer(void) const
bool
Déterminez si au moins un message a été reçu de la part du pair dans cet échange.
IsAckPending(void) const
bool
Déterminez si un accusé de réception est déjà en attente d'envoi au pair sur cet échange.
IsConnectionClosed(void) const
bool
Déterminez si ExchangeContext est associé à une WeaveConnection active.
IsInitiator(void) const
bool
Déterminez si le contexte est à l'origine de l'échange.
IsResponseExpected(void) const
bool
Déterminez si une réponse est attendue pour les messages envoyés via cet échange.
Release(void)
void
Publication de la référence à ce contexte de place de marché.
SendCommonNullMessage(void)
Envoyez un message Common::Null.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Envoyez un message Weave pour cet échange.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Envoyez un message Weave pour cet échange.
SetAckPending(bool inAckPending)
void
Définissez cette option si un accusé de réception doit être renvoyé au pair sur cet échange.
SetAutoReleaseKey(bool autoReleaseKey)
void
Indiquez si la clé de chiffrement associée à l'échange doit être libérée en même temps que l'échange.
SetAutoRequestAck(bool autoReqAck)
void
Permet de définir si un accusé de réception doit être demandé chaque fois qu'un message est envoyé.
SetConnectionClosed(bool inConnectionClosed)
void
Définit le bit d'indicateur kFlagConnectionClosed.
SetDropAck(bool inDropAck)
void
Indiquez si WeaveExchangeManager ne doit pas envoyer d'accusés de réception pour ce contexte.
SetInitiator(bool inInitiator)
void
Définit le bit d'indicateur kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Définissez si un message a été reçu de la part du pair sur cet échange.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Définissez ce paramètre si un accusé de réception a été demandé dans le dernier message reçu sur cet échange.
SetResponseExpected(bool inResponseExpected)
void
Indiquez si une réponse est attendue pour cet échange.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Indiquez si la connexion Weave associée à l'échange doit être libérée en même temps que l'échange.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Configurez le mécanisme de retransmission minime en définissant l'intervalle de retransmission et le seuil de rediffusion correspondants.
ShouldAutoReleaseConnection() const
bool
Indique si la connexion Weave associée à l'échange doit être libérée une fois l'échange libéré.
ShouldDropAck(void) const
bool
Déterminez si WeaveExchangeManager ne doit pas envoyer d'accusé de réception.
StartTimerT(void)
Démarre le mécanisme du minuteur de retransmission périodique de l'algorithme de rediffusion périodique.
TeardownTrickleRetransmit(void)
void
Suppression du mécanisme de retransmission Trickle en annulant les minuteurs périodiques dans Trickle et en libérant le tampon de message contenant le message Weave.
UseEphemeralUDPPort(void) const
bool
Indiquez si les messages sortants envoyés via l'échange doivent être envoyés à partir du port UDP éphémère local.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Envoyez un message de distribution retardée pour avertir un nœud expéditeur que son message précédemment envoyé subirait un retard prévu avant d'être distribué au destinataire.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Envoyez un message de flux de limitation au nœud pair lui demandant de limiter son envoi de messages.

Types publics

@34

 @34
Propriétés
kSendFlag_AlreadyEncoded

Utilisé pour indiquer que le message est déjà encodé.

kSendFlag_AutoRetrans

Indique que la retransmission automatique est activée.

kSendFlag_DefaultMulticastSourceAddress

Permet d'indiquer que la sélection de l'adresse source IPv6 par défaut doit être utilisée lors de l'envoi de messages de multidiffusion IPv6.

kSendFlag_DelaySend

Utilisé pour indiquer que l'envoi du message actuel doit être retardé.

kSendFlag_ExpectResponse

Utilisé pour indiquer qu'une réponse est attendue dans un délai spécifié.

kSendFlag_FromInitiator

Utilisé pour indiquer que le message actuel est l'initiateur de l'échange.

kSendFlag_MulticastFromLinkLocal

Alias obsolète pour kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Supprimez la fonctionnalité d'accusé de réception des demandes automatiques lors de l'envoi d'un message.

kSendFlag_RequestAck

Utilisé pour envoyer un message WRM demandant un accusé de réception.

kSendFlag_RetainBuffer

Utilisé pour indiquer que le tampon du message ne doit pas être libéré après l'envoi.

kSendFlag_RetransmissionTrickle

Utilisé pour indiquer l'obligation de retransmissions pour Trickle.

kSendFlag_ReuseMessageId

Utilisé pour indiquer que l'ID du message dans l'en-tête du message peut être réutilisé.

kSendFlag_ReuseSourceId

Permet d'indiquer que l'ID du nœud source dans l'en-tête du message peut être réutilisé.

@35

 @35
Propriétés
kGetPeerDescription_MaxLength

Longueur maximale de la chaîne (caractère NUL compris) renvoyée par GetPeerDescription().

ConnectionClosedFunct

void(* ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr)

Cette fonction est le rappel de l'application à invoquer lorsqu'une connexion Weave existante a été fermée.

Détails
Paramètres
[in] ec
Pointeur vers l'objet ExchangeContext.
[in] con
Pointeur vers l'objet WeaveConnection.
[in] conErr
Type WEAVE_ERROR signalé lors de la fermeture de la connexion.

KeyErrorFunct

void(* KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr)

Type de fonction de gestion des messages d'erreur clés.

Détails
Paramètres
[in] ec
Pointeur vers l'objet ExchangeContext.
[in] keyErr
Type WEAVE_ERROR signalé dans le message d'erreur de la clé.

MessageReceiveFunct

void(* MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)

Cette fonction est le rappel de l'application pour traiter un message Weave reçu.

Détails
Paramètres
[in] ec
Pointeur vers l'objet ExchangeContext.
[in] pktInfo
Pointeur vers l'objet IPPacketInfo.
[in] msgInfo
Un pointeur vers l'objet WeaveMessageInfo.
[in] profileId
Identifiant de profil du message reçu.
[in] msgType
Type de message du profil correspondant.
[in] payload
Pointeur vers l'objet PacketBuffer contenant la charge utile du message.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Cette fonction est le rappel de l'application à invoquer lorsque le délai avant expiration de la réception d'un message de réponse a expiré.

Détails
Paramètres
[in] ec
Pointeur vers l'objet ExchangeContext.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Cette fonction est le rappel de l'application à invoquer lorsque le délai d'inactivité de la retransmission d'un message précédemment envoyé a expiré.

Détails
Paramètres
[in] ec
Pointeur vers l'objet ExchangeContext.

Délai avant expiration

uint32_t Timeout

Type utilisé pour exprimer le délai avant expiration dans ExchangeContext (en millisecondes).

WRMPAckRcvdFunct

void(* WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt)

Cette fonction est le rappel de l'application à invoquer lorsqu'un accusé de réception est reçu pour un message Weave qui en a fait la demande dans le cadre du protocole de messagerie fiable Weave.

Détails
Paramètres
[in] ec
Pointeur vers l'objet ExchangeContext.
[in] msgCtxt
Pointeur vers un objet de contexte spécifique associé au message d'origine en cours de confirmation.

WRMPPauseRcvdFunct

void(* WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime)

Cette fonction est le rappel de l'application à invoquer lorsqu'un message de limitation ou de distribution retardée est reçu dans le cadre du protocole de messagerie fiable de Weave.

Chacun de ces messages est accompagné d'une valeur temporelle (en millisecondes) qui indique le délai de suspension de l'envoi des messages Weave sur ce ExchangeContext.

Détails
Paramètres
[in] ec
Pointeur vers l'objet ExchangeContext.
[in] pauseTime
Délai de suspension de la transmission (en millisecondes).

WRMPSendErrorFunct

void(* WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt)

Cette fonction est le rappel de l'application à invoquer lorsqu'une erreur se produit lors de l'envoi d'un message Weave.

Détails
Paramètres
[in] ec
Pointeur vers l'objet ExchangeContext.
[in] err
Type WEAVE_ERROR rencontré lors de l'envoi du message.
[in] msgCtxt
Pointeur vers un objet de contexte spécifique associé au message d'origine signalé.

Attributs publics

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Indicateur booléen indiquant si les messages en double sont autorisés pour un échange donné.

AppState

void * AppState

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

Inconvénients

WeaveConnection * Con

[LECTURE SEULE] Connexion Weave associée.

EncryptionType

uint8_t EncryptionType

Type de chiffrement à utiliser lors de l'envoi d'un message.

ExchangeId

uint16_t ExchangeId

[LECTURE SEULE] ID de la place de marché attribué.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[LECTURE SEULE] Gestionnaire de la place de marché propriétaire.

KeyId

uint16_t KeyId

Clé de chiffrement à utiliser lors de l'envoi d'un message.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Rappel d'application pour l'accusé de réception reçu

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Rappel d'application pour le message de distribution retardée reçu.

OnKeyError

KeyErrorFunct OnKeyError

Cette fonction est le rappel de l'application à invoquer lorsque le pair a reçu un message d'erreur clé.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Rappel de l'application en cas d'erreur lors de l'envoi.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Rappel d'application pour le message de limitation reçu.

PeerAddr

IPAddress PeerAddr

[LECTURE SEULE] Adresse IP du nœud pair.

PeerIntf

InterfaceId PeerIntf

[LECTURE SEULE] Interface sortante à utiliser lors de l'envoi de messages au pair.

(uniquement pour UDP).

PeerNodeId

uint64_t PeerNodeId

[LECTURE SEULE] ID de nœud du nœud pair.

PeerPort

uint16_t PeerPort

[LECTURE SEULE] Port du nœud pair.

ResponseTimeout

Timeout ResponseTimeout

Délai d'attente maximal pour la réponse (en millisecondes) ; 0 désactive le délai avant expiration de la réponse.

RetransInterval

uint32_t RetransInterval

Délai entre les retransmissions (en millisecondes) ; 0 désactive les retransmissions.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Version du protocole de message pour ExchangeContext.

mWRMPConfig

WRMPConfig mWRMPConfig

Configuration WRMP.

Fonctions publiques

Annuler

void Abort(
  void
)

Annulez immédiatement le contexte Exchange et libérez toutes les références à celui-ci.

AddRef

void AddRef(
  void
)

Incrémentez le compteur de référence pour le contexte de la place de marché d'une unité.

AutoRequestAck

bool AutoRequestAck() const 

Indique si un accusé de réception est demandé chaque fois qu'un message est envoyé.

CancelRetrans

void CancelRetrans(
  void
)

Annuler le mécanisme de retransmission Trickle

Fermer

void Close(
  void
)

Fermez gracieusement un contexte d'échange.

Cet appel décrémente le nombre de références et libère l'échange lorsque le nombre de références passe à zéro.

EncodeExchHeader

WEAVE_ERROR EncodeExchHeader(
  WeaveExchangeHeader *exchangeHeader,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags
)

Encodez l'en-tête d'échange dans un tampon de message.

Détails
Paramètres
[in] exchangeHeader
Pointeur vers l'objet d'en-tête Weave Exchange.
[in] profileId
Identifiant de profil du message Weave à envoyer.
[in] msgType
Type de message du profil correspondant.
[in] msgBuf
Pointeur vers l'objet PacketBuffer nécessaire pour le message Weave.
[in] sendFlags
Indicateurs définis par l'application pour le message Weave envoyé.
Valeurs de retour
WEAVE_ERROR_BUFFER_TOO_SMALL
Si le tampon du message ne dispose pas d'un espace suffisant pour encoder l'en-tête d'échange.
WEAVE_NO_ERROR
Si l'encodage du message a réussi.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

Indique si la clé de chiffrement associée à l'échange doit être libérée en même temps que l'échange.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Obtenir le délai avant expiration actuel de la retransmission

Il s'agit du délai avant expiration initial ou du délai de retransmission actif, selon que ExchangeContext dispose ou non d'un échange de messages actif avec son pair.

Détails
Renvoie
l'heure de retransmission actuelle.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Construit une chaîne décrivant le nœud pair et les informations de connexion ou d'adresse qui lui sont associées.

Détails
Paramètres
[in] buf
Pointeur vers un tampon dans lequel la chaîne doit être écrite. La taille du tampon fourni doit être au moins égale à celle de kGetPeerDescription_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.

HandleTrickleMessage

void HandleTrickleMessage(
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo
)

Gérez les messages minimes dans le contexte de l'échange.

Détails
Paramètres
[in] pktInfo
Pointeur vers l'objet IPPacketInfo.
[in] msgInfo
Pointeur vers la structure d'informations du message Weave.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Déterminez si le pair a demandé une confirmation pour au moins un message de cet échange.

Détails
Renvoie
Renvoie "true" si une confirmation est demandée, sinon "false".

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Déterminez si au moins un message a été reçu de la part du pair dans cet échange.

Détails
Renvoie
Renvoie la valeur "true" si le message est reçu et la valeur "false" dans le cas contraire.

IsAckPending

bool IsAckPending(
  void
) const 

Déterminez si un accusé de réception est déjà en attente d'envoi au pair sur cet échange.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Déterminez si ExchangeContext est associé à une WeaveConnection active.

Détails
Renvoie
Renvoie la valeur "true" si la connexion est fermée, sinon "false".

IsInitiator

bool IsInitiator(
  void
) const 

Déterminez si le contexte est à l'origine de l'échange.

Détails
Renvoie
Renvoie "true" s'il s'agit de l'initiateur, sinon "false".

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Déterminez si une réponse est attendue pour les messages envoyés via cet échange.

Détails
Renvoie
Renvoie la valeur "true" si la réponse est attendue. Sinon, la valeur "false" est renvoyée.

Version

void Release(
  void
)

Publication de la référence à ce contexte de place de marché.

Si le compte à rebours est à zéro, fermez le contexte, réinitialisez tous les rappels de l'application et arrêtez tous les minuteurs.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Envoyez un message Common::Null.

Détails
Valeurs de retour
WEAVE_ERROR_NO_MEMORY
Si aucun PaquetBuffer disponible n'est disponible.
WEAVE_NO_ERROR
Indique si la méthode a réussi ou si l'erreur n'était pas critique.
other
Une autre erreur critique renvoyée par SendMessage().

SendMessage

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgPayload,
  uint16_t sendFlags,
  void *msgCtxt
)

Envoyez un message Weave pour cet échange.

Détails
Paramètres
[in] profileId
Identifiant de profil du message Weave à envoyer.
[in] msgType
Type de message du profil correspondant.
[in] msgBuf
Pointeur vers l'objet PacketBuffer contenant le message Weave.
[in] sendFlags
Indicateurs définis par l'application pour le message Weave envoyé.
[in] msgCtxt
Pointeur vers un objet de contexte spécifique à l'application à associer au message en cours d'envoi.
Valeurs de retour
WEAVE_ERROR_INVALID_ARGUMENT
si un argument non valide a été transmis à l'API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
si le contexte d'échange a été limité lors de l'utilisation du protocole de messagerie fiable Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
en cas de non-concordance entre l'opération d'envoi spécifique et la version du protocole de message Weave prise en charge. Par exemple, cette erreur est générée en cas de tentative d'utilisation de la sémantique de messagerie fiable Weave lorsque la version du protocole de message Weave est V1.
WEAVE_ERROR_NOT_CONNECTED
si le contexte était associé à une connexion qui est maintenant fermée.
WEAVE_ERROR_INCORRECT_STATE
si l'état du contexte de la place de marché est incorrect.
WEAVE_NO_ERROR
si la couche Weave a bien envoyé le message à la couche réseau.

SendMessage

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags,
  WeaveMessageInfo *msgInfo,
  void *msgCtxt
)

Envoyez un message Weave pour cet échange.

Détails
Paramètres
[in] profileId
Identifiant de profil du message Weave à envoyer.
[in] msgType
Type de message du profil correspondant.
[in] msgBuf
Pointeur vers l'objet PacketBuffer contenant le message Weave.
[in] sendFlags
Indicateurs définis par l'application pour le message Weave envoyé.
[in] msgInfo
Un pointeur vers l'objet WeaveMessageInfo.
[in] msgCtxt
Pointeur vers un objet de contexte spécifique à l'application à associer au message en cours d'envoi.
Valeurs de retour
WEAVE_ERROR_INVALID_ARGUMENT
si un argument non valide a été transmis à l'API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
si le contexte d'échange a été limité lors de l'utilisation du protocole de messagerie fiable Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
en cas de non-concordance entre l'opération d'envoi spécifique et la version du protocole de message Weave prise en charge. Par exemple, cette erreur est générée en cas de tentative d'utilisation de la sémantique de messagerie fiable Weave lorsque la version du protocole de message Weave est V1.
WEAVE_ERROR_NOT_CONNECTED
si le contexte était associé à une connexion qui est maintenant fermée.
WEAVE_ERROR_INCORRECT_STATE
si l'état du contexte de la place de marché est incorrect.
WEAVE_NO_ERROR
si la couche Weave a bien envoyé le message à la couche réseau.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Définissez cette option si un accusé de réception doit être renvoyé au pair sur cet échange.

Détails
Paramètres
[in] inAckPending
Booléen indiquant si un accusé de réception doit être renvoyé en réponse à un message reçu (vrai ou non).

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Indiquez si la clé de chiffrement associée à l'échange doit être libérée en même temps que l'échange.

Détails
Paramètres
[in] autoReleaseKey
"True" si la clé de chiffrement du message doit être libérée automatiquement.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Permet de définir si un accusé de réception doit être demandé chaque fois qu'un message est envoyé.

Détails
Paramètres
[in] autoReqAck
Booléen indiquant si un accusé de réception doit être demandé ou non chaque fois qu'un message est envoyé.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Définit le bit d'indicateur kFlagConnectionClosed.

Cet indicateur est défini lorsqu'une WeaveConnection associée à un ExchangeContext est fermée.

Détails
Paramètres
[in] inConnectionClosed
Booléen indiquant si (true) ou non (false) le contexte a été associé à une connexion.

SetDropAck

void SetDropAck(
  bool inDropAck
)

Indiquez si WeaveExchangeManager ne doit pas envoyer d'accusés de réception pour ce contexte.

Réservé au débogage interne.

Détails
Paramètres
[in] inDropAck
Valeur booléenne indiquant si les accusés de réception ne doivent pas être envoyés pour l'échange.

SetInitiator

void SetInitiator(
  bool inInitiator
)

Définit le bit d'indicateur kFlagInitiator.

Cet indicateur est défini par le nœud qui initie un échange.

Détails
Paramètres
[in] inInitiator
Valeur booléenne indiquant si le contexte est à l'origine de l'échange.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Définissez si un message a été reçu de la part du pair sur cet échange.

Détails
Paramètres
[in] inMsgRcvdFromPeer
Valeur booléenne indiquant si un message a été reçu de la part du pair dans le contexte d'un échange (vrai) ou non (faux).

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Définissez ce paramètre si un accusé de réception a été demandé dans le dernier message reçu sur cet échange.

Détails
Paramètres
[in] inPeerRequestedAck
Booléen indiquant si (true) ou non (false) un accusé de réception a été demandé dans le dernier message reçu.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Indiquez si une réponse est attendue pour cet échange.

Détails
Paramètres
[in] inResponseExpected
Valeur booléenne indiquant si une réponse est attendue dans cet échange (vrai) ou non.

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Indiquez si la connexion Weave associée à l'échange doit être libérée en même temps que l'échange.

Détails
Paramètres
[in] autoReleaseCon
"True" si la connexion Weave doit être libérée automatiquement.

SetupTrickleRetransmit

WEAVE_ERROR SetupTrickleRetransmit(
  uint32_t retransInterval,
  uint8_t threshold,
  uint32_t timeout
)

Configurez le mécanisme de retransmission minime en définissant l'intervalle de retransmission et le seuil de rediffusion correspondants.

Détails
Paramètres
[in] retransInterval
Intervalle de retransmission de l'algorithme de rediffusion de Trickle.
[in] threshold
Nombre maximal de rediffusions d'un message.
[in] timeout
Délai d'attente maximal avant l'annulation du minuteur de retransmission Trickle.
Renvoie
WEAVE_NO_ERROR si la configuration de Trickle a abouti, sinon INET_ERROR est mappée sur WEAVE_ERROR.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Indique si la connexion Weave associée à l'échange doit être libérée une fois l'échange libéré.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

Déterminez si WeaveExchangeManager ne doit pas envoyer d'accusé de réception.

Réservé au débogage interne.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Démarre le mécanisme du minuteur de retransmission périodique de l'algorithme de rediffusion périodique.

Détails
Renvoie
WEAVE_NO_ERROR en cas de réussite, sinon INET_ERROR correspond à WEAVE_ERROR.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Suppression du mécanisme de retransmission Trickle en annulant les minuteurs périodiques dans Trickle et en libérant le tampon de message contenant le message Weave.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Indiquez si les messages sortants envoyés via l'échange doivent être envoyés à partir du port UDP éphémère local.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Envoyez un message de distribution retardée pour avertir un nœud expéditeur que son message précédemment envoyé subirait un retard prévu avant d'être distribué au destinataire.

L'une des causes possibles du retard des messages avant leur distribution est lorsque le nœud final du destinataire est en veille. Ce message est potentiellement généré par un nœud intermédiaire approprié du chemin d'envoi qui dispose de suffisamment de connaissances sur le destinataire pour en déduire la distribution retardée. À la réception de ce message, l'expéditeur réajuste ses délais de retransmission pour les messages nécessitant un accusé de réception.

Détails
Paramètres
[in] pauseTimeMillis
Durée (en millisecondes) pendant laquelle le message précédemment envoyé doit être retardé avant d'être distribué.
[in] delayedNodeId
Identifiant du nœud du pair auquel la distribution des messages serait retardée.
Valeurs de retour
WEAVE_ERROR_INVALID_ARGUMENT
si un argument non valide a été transmis à l'API SendMessage.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
en cas de non-concordance entre l'opération d'envoi spécifique et la version du protocole de message Weave prise en charge. Par exemple, cette erreur est générée en cas de tentative d'utilisation de la sémantique de messagerie fiable Weave lorsque la version du protocole de message Weave est V1.
WEAVE_ERROR_NOT_CONNECTED
si le contexte était associé à une connexion qui est maintenant fermée.
WEAVE_ERROR_INCORRECT_STATE
si l'état du contexte de la place de marché est incorrect.
WEAVE_NO_ERROR
si la couche Weave a bien envoyé le message à la couche réseau.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Envoyez un message de flux de limitation au nœud pair lui demandant de limiter son envoi de messages.

Détails
Paramètres
[in] pauseTimeMillis
Durée (en millisecondes) pendant laquelle le destinataire doit limiter ses envois.
Valeurs de retour
WEAVE_ERROR_INVALID_ARGUMENT
Si un argument non valide a été transmis à cette API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
Indique si le contexte d'échange a été limité lors de l'utilisation du protocole de messagerie fiable Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
En cas de non-concordance entre l'opération d'envoi spécifique et la version du protocole de message Weave prise en charge. Par exemple, cette erreur est générée en cas de tentative d'utilisation de la sémantique de messagerie fiable Weave lorsque la version du protocole de message Weave est V1.
WEAVE_ERROR_NOT_CONNECTED
Si le contexte était associé à une connexion qui est maintenant fermée.
WEAVE_ERROR_INCORRECT_STATE
Si l'état du contexte de la place de marché est incorrect.
WEAVE_NO_ERROR
Si la couche Weave a bien envoyé le message à la couche réseau.