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 des méthodes d'encodage et de communication des messages Weave dans un ExchangeContext via divers mécanismes de transport, par exemple TCP, UDP ou Weave Reliable 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
}
énum
@35{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
énum
ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Cette fonction est le rappel d'application à invoquer lorsqu'une connexion Weave existante a été fermée.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Type de fonction clé de gestion des messages d'erreur.
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 gérer 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 d'application à invoquer lorsque le délai avant expiration de la retransmission d'un message envoyé précédemment a expiré.
Timeout typedef
uint32_t
Type utilisé pour exprimer le délai avant expiration dans ce ExchangeContext, en millisecondes.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Cette fonction est le rappel d'application à invoquer lorsqu'un accusé de réception est reçu pour un message Weave qui en a demandé un 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 Throttle ou un message de distribution retardée est reçu dans le cadre du protocole de messagerie fiable 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 qui détermine si des messages en double sont autorisés pour un échange donné.
AppState
void *
Pointeur vers un objet d'état spécifique à l'application.
Con
[LIRE UNIQUEMENT] Connexion Weave associée.
EncryptionType
uint8_t
Type de chiffrement à utiliser lors de l'envoi d'un message.
ExchangeId
uint16_t
[LIRE SEULE] ID de place de marché attribué.
ExchangeMgr
[LECTURE SEULE] Gestionnaire de 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 livraison retardée reçu.
OnKeyError
Cette fonction est le rappel de l'application à invoquer lorsque le pair reçoit 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 Throttle reçu.
PeerAddr
IPAddress
[READ ONLY] Adresse IP du nœud pair.
PeerIntf
InterfaceId
[READ ONLY] Interface sortante à utiliser lors de l'envoi de messages au pair.
PeerNodeId
uint64_t
[LECTURE UNIQUEMENT] ID du nœud pair.
PeerPort
uint16_t
[READ ONLY] 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
Temps 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ément d'une unité le compteur de référence pour le contexte de la place de marché.
AutoRequestAck() const
bool
Indique si un accusé de réception est demandé à chaque envoi d'un message.
CancelRetrans(void)
void
Annulez le mécanisme de retransmission Trickle.
Close(void)
void
Bouclez progressivement 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 une fois l'échange libéré.
GetCurrentRetransmitTimeout(void)
uint32_t
Permet d'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 / adresse associées.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Gérer les messages minimes dans le contexte de l'échange.
HasPeerRequestedAck(void) const
bool
Déterminez si le pair a demandé un accusé de réception pour au moins un message sur cet échange.
HasRcvdMsgFromPeer(void) const
bool
Déterminez si au moins un message a été reçu de la part du pair sur 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é à un WeaveConnection actif.
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
Libérez 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 sur cet échange.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Envoyez un message Weave sur cet échange.
SetAckPending(bool inAckPending)
void
Définissez 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 lors de la libération de l'échange.
SetAutoRequestAck(bool autoReqAck)
void
Définissez si un accusé de réception doit être demandé à chaque envoi d'un message.
SetConnectionClosed(bool inConnectionClosed)
void
Définissez 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éfinissez le bit d'indicateur kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Définissez si un message a été reçu du pair sur cet échange.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Définir 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 sur cet échange.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Indiquez si la connexion Weave associée à l'échange doit être libérée une fois l'échange libéré.
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 retransmission 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 de confirmation.
StartTimerT(void)
Démarre le mécanisme de minuteur de retransmission périodique de l'algorithme de rediffusion Trickle.
TeardownTrickleRetransmit(void)
void
Supprimez le mécanisme de retransmission Trickle en annulant les minuteurs périodiques dans Trickle et en libérant le tampon du message contenant le message Weave.
UseEphemeralUDPPort(void) const
bool
Indique si les messages sortants envoyés via l'échange doivent être envoyés à partir du port UDP local éphémère.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Envoyez un message de distribution retardée pour avertir un nœud expéditeur que le message précédemment envoyé subirait un retard prévu avant d'être distribué au destinataire.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Envoyer un message de flux de limitation au nœud pair pour lui demander de limiter l'envoi de messages

Types publics

p. 34

 @34
Propriétés
kSendFlag_AlreadyEncoded

Indique que le message est déjà encodé.

kSendFlag_AutoRetrans

Permet d'indiquer 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 IPv6 multicast.

kSendFlag_DelaySend

Permet d'indiquer que l'envoi du message actuel doit être retardé.

kSendFlag_ExpectResponse

Permet d'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

Supprimer 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

Permet d'indiquer que le tampon de messages ne doit pas être libéré après l'envoi.

kSendFlag_RetransmissionTrickle

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

kSendFlag_ReuseMessageId

Permet d'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é.

p. 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 d'application à invoquer lorsqu'une connexion Weave existante a été fermée.

Détails
Paramètres
[in] ec
Un 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 clé de gestion des messages d'erreur.

Détails
Paramètres
[in] ec
Un 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 gérer un message Weave reçu.

Détails
Paramètres
[in] ec
Un pointeur vers l'objet ExchangeContext.
[in] pktInfo
Un pointeur vers l'objet IPPacketInfo.
[in] msgInfo
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
Un pointeur vers l'objet ExchangeContext.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

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

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

Délai avant expiration

uint32_t Timeout

Type utilisé pour exprimer le délai avant expiration dans ce ExchangeContext, en millisecondes.

WRMPAckRcvdFunct

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

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

Détails
Paramètres
[in] ec
Un 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 Throttle ou un message de distribution retardée est reçu dans le cadre du protocole de messagerie fiable Weave.

Chacun de ces messages est accompagné d'une valeur de temps (en millisecondes) indiquant le temps nécessaire pour suspendre l'envoi des messages Weave sur ce ExchangeContext.

Détails
Paramètres
[in] ec
Un pointeur vers l'objet ExchangeContext.
[in] pauseTime
Temps de pause 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
Un 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 concerné par le signalement.

Attributs publics

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Indicateur booléen qui détermine si des messages en double sont autorisés pour un échange donné.

AppState

void * AppState

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

Inconvénient

WeaveConnection * Con

[LIRE UNIQUEMENT] Connexion Weave associée.

EncryptionType

uint8_t EncryptionType

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

ExchangeId

uint16_t ExchangeId

[LIRE SEULE] ID de place de marché attribué.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[LECTURE SEULE] Gestionnaire de 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 livraison retardée reçu.

OnKeyError

KeyErrorFunct OnKeyError

Cette fonction est le rappel de l'application à invoquer lorsque le pair reçoit 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 Throttle reçu.

PeerAddr

IPAddress PeerAddr

[READ ONLY] Adresse IP du nœud pair.

PeerIntf

InterfaceId PeerIntf

[READ ONLY] Interface sortante à utiliser lors de l'envoi de messages au pair.

(significatif uniquement pour UDP).

PeerNodeId

uint64_t PeerNodeId

[LECTURE UNIQUEMENT] ID du nœud pair.

PeerPort

uint16_t PeerPort

[READ ONLY] 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

Temps 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ément d'une unité le compteur de référence pour le contexte de la place de marché.

AutoRequestAck

bool AutoRequestAck() const 

Indique si un accusé de réception est demandé à chaque envoi d'un message.

CancelRetrans

void CancelRetrans(
  void
)

Annulez le mécanisme de retransmission Trickle.

Fermer

void Close(
  void
)

Bouclez progressivement un contexte d'échange.

Cet appel décrémente le nombre de références et libère l'échange lorsque ce nombre 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
Un pointeur vers le PackageBuffer requis pour le message Weave.
[in] sendFlags
Indicateurs définis par l'application pour le message Weave envoyé.
Valeurs renvoyées
WEAVE_ERROR_BUFFER_TOO_SMALL
Si le tampon de messages 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 une fois l'échange libéré.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Permet d'obtenir le délai avant expiration actuel de la retransmission.

Il s'agit du délai avant expiration initial ou actif de la retransmission 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 / adresse 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 à kGetPeerDescription_MaxLength. Si un tampon plus petit est fourni, la chaîne sera tronquée pour s'adapter. Le résultat inclut un caractère de fin NUL dans tous les cas.
[in] bufSize
Taille du tampon indiqué par le tampon.

HandleTrickleMessage

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

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

Détails
Paramètres
[in] pktInfo
Un 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é un accusé de réception pour au moins un message sur cet échange.

Détails
Renvoie
Affiche la valeur "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 sur cet échange.

Détails
Renvoie
Affiche la valeur "true". Si le message est reçu, sinon "false".

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é à un WeaveConnection actif.

Détails
Renvoie
Affiche 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
Affiche la valeur "true". si c'est 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
Affiche la valeur "true". Si la réponse est attendue, sinon "false".

Version

void Release(
  void
)

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

Si le décompte est inférieur à 1, 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 renvoyées
WEAVE_ERROR_NO_MEMORY
Si aucun PacketBuffers n'est disponible.
WEAVE_NO_ERROR
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 sur 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 envoyé.
Valeurs renvoyées
WEAVE_ERROR_INVALID_ARGUMENT
si un argument non valide a été transmis à cette API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
si ce 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 compatible. Par exemple, cette erreur est générée si vous tentez d'utiliser la sémantique Weave Reliable Messaging lorsque la version du protocole de message Weave est V1.
WEAVE_ERROR_NOT_CONNECTED
si le contexte était associé à une connexion désormais 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 envoyé avec succès 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 sur 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
Pointeur vers l'objet WeaveMessageInfo.
[in] msgCtxt
Pointeur vers un objet de contexte spécifique à l'application à associer au message envoyé.
Valeurs renvoyées
WEAVE_ERROR_INVALID_ARGUMENT
si un argument non valide a été transmis à cette API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
si ce 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 compatible. Par exemple, cette erreur est générée si vous tentez d'utiliser la sémantique Weave Reliable Messaging lorsque la version du protocole de message Weave est V1.
WEAVE_ERROR_NOT_CONNECTED
si le contexte était associé à une connexion désormais 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 envoyé avec succès le message à la couche réseau.

SetAckPending

void SetAckPending(
  bool inAckPending
)

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

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

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Indiquez si la clé de chiffrement associée à l'échange doit être libérée lors de la libération de 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
)

Définissez si un accusé de réception doit être demandé à chaque envoi d'un message.

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éfinissez 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 était associé à une connexion.

SetDropAck

void SetDropAck(
  bool inDropAck
)

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

Usage interne au débogage uniquement.

Détails
Paramètres
[in] inDropAck
Booléen indiquant si (vrai) ou non (faux) les accusés de réception ne doivent pas être envoyés pour l'échange.

SetInitiator

void SetInitiator(
  bool inInitiator
)

Définissez le bit d'indicateur kFlagInitiator.

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

Détails
Paramètres
[in] inInitiator
Booléen indiquant si (true) ou non (false) le contexte est l'initiateur de l'échange.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

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

Détails
Paramètres
[in] inMsgRcvdFromPeer
Booléen indiquant si (true) ou non (false) un message a été reçu du pair dans ce contexte d'échange.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Définir 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 un accusé de réception a été demandé (vrai) ou non (faux) dans le dernier message reçu.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

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

Détails
Paramètres
[in] inResponseExpected
Booléen indiquant si une réponse est attendue (vrai) ou non (faux) sur cet échange.

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

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

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

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 retransmission correspondants.

Détails
Paramètres
[in] retransInterval
Intervalle de retransmission de l'algorithme de rediffusion Trickle.
[in] threshold
Nombre maximal de fois qu'un message est rediffusé.
[in] timeout
Délai maximal d'attente avant d'annuler le minuteur de retransmission Trickle.
Renvoie
WEAVE_NO_ERROR si la configuration de Trickle a réussi, INET_ERROR est mappée à une erreur 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 de confirmation.

Usage interne au débogage uniquement.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

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

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

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

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

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

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

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 le message précédemment envoyé subirait un retard prévu avant d'être distribué au destinataire.

L'une des causes possibles du retard de distribution des messages avant leur distribution est le fait que le nœud final destinataire est en veille. Ce message est potentiellement généré par un nœud intermédiaire approprié dans le chemin d'envoi qui dispose de suffisamment de connaissances sur le destinataire pour déduire le retard de distribution. À la réception de ce message, l'expéditeur ajuste ses minuteurs de retransmission pour les messages nécessitant des accusés 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 pair auquel la distribution des messages serait retardée.
Valeurs renvoyées
WEAVE_ERROR_INVALID_ARGUMENT
si un argument non valide a été transmis à cette 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 compatible. Par exemple, cette erreur est générée si vous tentez d'utiliser la sémantique Weave Reliable Messaging lorsque la version du protocole de message Weave est V1.
WEAVE_ERROR_NOT_CONNECTED
si le contexte était associé à une connexion désormais 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 envoyé avec succès le message à la couche réseau.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Envoyer un message de flux de limitation au nœud pair pour lui demander de limiter l'envoi de messages

Détails
Paramètres
[in] pauseTimeMillis
Durée (en millisecondes) pendant laquelle le destinataire est censé limiter son envoi.
Valeurs renvoyées
WEAVE_ERROR_INVALID_ARGUMENT
Si un argument non valide a été transmis à cette API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
Si ce 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 compatible. Par exemple, cette erreur est générée si vous tentez d'utiliser la sémantique Weave Reliable Messaging 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 envoyé avec succès le message à la couche réseau.