nl::Weave::ExchangeContext

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

Questo corso rappresenta una conversazione in corso (ExchangeContext) tra due o più nodi.

Riepilogo

Definisce i metodi per la codifica e la comunicazione dei messaggi Weave all'interno di ExchangeContext su vari meccanismi di trasporto, ad esempio TCP, UDP o Messaggistica affidabile.

Tipi pubblici

@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(*
Questa funzione è il callback dell'applicazione da attivare quando una connessione Weave esistente è stata chiusa.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Tipo di funzione di gestione dei messaggi di errore chiave.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
Questa funzione è il callback dell'applicazione per la gestione di un messaggio Weave ricevuto.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Questa funzione è il callback dell'applicazione da attivare quando il timeout per la ricezione di un messaggio di risposta è scaduto.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Questa funzione è il callback dell'applicazione da richiamare quando è scaduto il timeout per la ritrasmissione di un messaggio inviato in precedenza.
Timeout typedef
uint32_t
Tipo utilizzato per esprimere il timeout in questo ExchangeContext, in millisecondi.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Questa funzione è il callback dell'applicazione da richiamare quando si riceve una conferma per un messaggio Weave che ne ha richiesto una come parte del protocollo di messaggistica Weave Reliable.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Questa funzione è il callback dell'applicazione da richiamare quando un messaggio di limitazione o consegna ritardata viene ricevuto come parte del protocollo di messaggistica affidabile di Weave.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Questa funzione è il callback dell'applicazione da richiamare quando si verifica un errore durante l'invio di un messaggio Weave.

Attributi pubblici

AllowDuplicateMsgs
bool
Indicatore booleano che indica se i messaggi duplicati sono consentiti per un determinato scambio.
AppState
void *
Puntatore all'oggetto di stato specifico dell'applicazione.
Con
[SOLO LETTURA] Connessione Weave associata.
EncryptionType
uint8_t
Tipo di crittografia da utilizzare per l'invio di un messaggio.
ExchangeId
uint16_t
[SOLO LETTURA] ID piattaforma di scambio assegnata.
ExchangeMgr
[SOLO LETTURA] Possedere il gestore della piattaforma di scambio pubblicitario.
KeyId
uint16_t
Chiave di crittografia da utilizzare per l'invio di un messaggio.
OnAckRcvd
Callback dell'applicazione per conferma ricevuta.
OnConnectionClosed
OnDDRcvd
Callback dell'applicazione per il messaggio di consegna ritardata ricevuto.
OnKeyError
Questa funzione è il callback dell'applicazione da richiamare quando viene ricevuto un messaggio di errore chiave dal peer.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Callback dell'applicazione per errore durante l'invio.
OnThrottleRcvd
Callback dell'applicazione per il messaggio della limitazione ricevuto.
PeerAddr
IPAddress
[SOLO LETTURA] Indirizzo IP del nodo peer.
PeerIntf
InterfaceId
[SOLO LETTURA] Interfaccia in uscita da utilizzare per l'invio di messaggi al peer.
PeerNodeId
uint64_t
[SOLO LETTURA] ID nodo del nodo peer.
PeerPort
uint16_t
[SOLO LETTURA] Porta del nodo peer.
ResponseTimeout
Tempo massimo di attesa di una risposta (in millisecondi); 0 disabilita il timeout della risposta.
RetransInterval
uint32_t
Tempo tra una ritrasmissione (in millisecondi); 0 disabilita le ritrasmissioni.
mMsgProtocolVersion
uint16_t
Versione di Message Protocol per ExchangeContext.
mWRMPConfig
configurazione WRMP.

Funzioni pubbliche

Abort(void)
void
Interrompi immediatamente il contesto di Exchange e rilascia tutti i riferimenti a quel contesto.
AddRef(void)
void
Aumenta il contatore di riferimento per il contesto dello scambio di uno.
AutoRequestAck() const
bool
Indica se verrà richiesta una conferma ogni volta che viene inviato un messaggio.
CancelRetrans(void)
void
Annulla il meccanismo di ritrasmissione "trickle".
Close(void)
void
Chiudi con cura il contesto di uno scambio.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Codifica l'intestazione dello scambio in un buffer dei messaggi.
GetAutoReleaseKey() const
bool
Indica se la chiave di crittografia associata alla piattaforma di scambio deve essere rilasciata quando la piattaforma di scambio viene liberata.
GetCurrentRetransmitTimeout(void)
uint32_t
Recupera il timeout attuale per la ritrasmissione.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Crea una stringa che descrive il nodo peer e le informazioni relative a indirizzo / connessione associate.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Gestire il messaggio di inganno all'interno del contesto dello scambio.
HasPeerRequestedAck(void) const
bool
Determina se il peer ha richiesto la conferma per almeno un messaggio in questo scambio.
HasRcvdMsgFromPeer(void) const
bool
Determina se almeno un messaggio è stato ricevuto da questo scambio da un peer.
IsAckPending(void) const
bool
Determina se esiste già una conferma in attesa da inviare al peer in questa piattaforma di scambio pubblicitario.
IsConnectionClosed(void) const
bool
Determina se per ExchangeContext è associata una WeaveConnection attiva associata.
IsInitiator(void) const
bool
Determina se il contesto è l'iniziatore dello scambio.
IsResponseExpected(void) const
bool
Determina se è prevista una risposta per i messaggi inviati su questo scambio.
Release(void)
void
Rilascia il riferimento a questo contesto dello scambio.
SendCommonNullMessage(void)
Invia un messaggio Common::Null.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Invia un messaggio Weave su questo scambio.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Invia un messaggio Weave su questo scambio.
SetAckPending(bool inAckPending)
void
Specifica se una conferma deve essere inviata al peer in questa piattaforma di scambio pubblicitario.
SetAutoReleaseKey(bool autoReleaseKey)
void
Specifica se la chiave di crittografia associata alla piattaforma di scambio deve essere rilasciata quando la piattaforma di scambio viene liberata.
SetAutoRequestAck(bool autoReqAck)
void
Consente di impostare se una conferma deve essere richiesta ogni volta che viene inviato un messaggio.
SetConnectionClosed(bool inConnectionClosed)
void
Imposta il bit del flag kFlagConnectionClosed.
SetDropAck(bool inDropAck)
void
Stabilisci se WeaveExchangeManager non deve inviare conferme per questo contesto.
SetInitiator(bool inInitiator)
void
Imposta il bit del flag kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Imposta questa opzione se è stato ricevuto un messaggio dal peer in questa piattaforma di scambio pubblicitario.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Indica se è stata richiesta una conferma nell'ultimo messaggio ricevuto su questo scambio.
SetResponseExpected(bool inResponseExpected)
void
Imposta se è prevista una risposta su questo scambio.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Imposta se la connessione Weave associata alla piattaforma di scambio deve essere rilasciata quando questa viene liberata.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Configura il meccanismo di ritrasmissione di corrente impostando l'intervallo di ritrasmissione e la soglia di ritrasmissione corrispondenti.
ShouldAutoReleaseConnection() const
bool
Indica se la connessione Weave associata alla piattaforma di scambio deve essere rilasciata quando questa viene liberata.
ShouldDropAck(void) const
bool
Determina se WeaveExchangeManager non deve inviare una conferma.
StartTimerT(void)
Avvia il meccanismo del timer di ritrasmissione periodica dell'algoritmo di ritrasmissione di Trickle.
TeardownTrickleRetransmit(void)
void
Elimina il meccanismo di ritrasmissione "Trickle" annullando i timer periodici all'interno di Trickle e liberando il buffer dei messaggi contenente il messaggio Weave.
UseEphemeralUDPPort(void) const
bool
Indica se i messaggi in uscita inviati tramite lo scambio devono essere inviati dalla porta UDP temporanea locale.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Invia un messaggio di consegna ritardata per informare un nodo mittente che il messaggio inviato in precedenza avrebbe subito un ritardo previsto prima di essere recapitato al destinatario.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Invia un messaggio di flusso di limitazione al nodo peer chiedendo di limitare l'invio di messaggi.

Tipi pubblici

@34

 @34
Proprietà
kSendFlag_AlreadyEncoded

Utilizzato per indicare che il messaggio è già codificato.

kSendFlag_AutoRetrans

Utilizzato per indicare che la ritrasmissione automatica è abilitata.

kSendFlag_DefaultMulticastSourceAddress

Utilizzato per indicare che deve essere utilizzata la selezione predefinita dell'indirizzo di origine IPv6 per inviare messaggi multicast IPv6.

kSendFlag_DelaySend

Utilizzato per indicare che l'invio del messaggio corrente deve subire un ritardo.

kSendFlag_ExpectResponse

Utilizzato per indicare che è prevista una risposta entro un timeout specificato.

kSendFlag_FromInitiator

Utilizzato per indicare che il messaggio corrente è l'iniziatore dello scambio.

kSendFlag_MulticastFromLinkLocal

Alias obsoleto per kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Elimina la funzionalità di conferma della richiesta automatica durante l'invio di un messaggio.

kSendFlag_RequestAck

Utilizzato per inviare un messaggio WRM che richiede una conferma.

kSendFlag_RetainBuffer

Utilizzato per indicare che il buffer dei messaggi non deve essere liberato dopo l'invio.

kSendFlag_RetransmissionTrickle

Utilizzato per indicare il requisito di ritrasmissioni per Trickle.

kSendFlag_ReuseMessageId

Utilizzato per indicare che l'ID messaggio nell'intestazione può essere riutilizzato.

kSendFlag_ReuseSourceId

Utilizzato per indicare che l'ID del nodo di origine nell'intestazione del messaggio può essere riutilizzato.

@35

 @35
Proprietà
kGetPeerDescription_MaxLength

Lunghezza massima della stringa (incluso il carattere NUL) restituita da GetPeerDescription().

ConnectionClosedFunct

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

Questa funzione è il callback dell'applicazione da attivare quando una connessione Weave esistente è stata chiusa.

Dettagli
Parametri
[in] ec
Un puntatore all'oggetto ExchangeContext.
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] conErr
Il tipo WEAVE_ERROR segnalato quando la connessione è stata chiusa.

KeyErrorFunct

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

Tipo di funzione di gestione dei messaggi di errore chiave.

Dettagli
Parametri
[in] ec
Un puntatore all'oggetto ExchangeContext.
[in] keyErr
Il tipo di WEAVE_ERROR segnalato nel messaggio di errore della chiave.

MessageReceiveFunct

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

Questa funzione è il callback dell'applicazione per la gestione di un messaggio Weave ricevuto.

Dettagli
Parametri
[in] ec
Un puntatore all'oggetto ExchangeContext.
[in] pktInfo
Un puntatore all'oggetto IPPacketInfo.
[in] msgInfo
Un puntatore all'oggetto WeaveMessageInfo.
[in] profileId
L'identificatore del profilo del messaggio ricevuto.
[in] msgType
Il tipo di messaggio del profilo corrispondente.
[in] payload
Un puntatore all'oggetto PacketBuffer che contiene il payload del messaggio.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Questa funzione è il callback dell'applicazione da attivare quando il timeout per la ricezione di un messaggio di risposta è scaduto.

Dettagli
Parametri
[in] ec
Un puntatore all'oggetto ExchangeContext.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Questa funzione è il callback dell'applicazione da richiamare quando è scaduto il timeout per la ritrasmissione di un messaggio inviato in precedenza.

Dettagli
Parametri
[in] ec
Un puntatore all'oggetto ExchangeContext.

Timeout

uint32_t Timeout

Tipo utilizzato per esprimere il timeout in questo ExchangeContext, in millisecondi.

WRMPAckRcvdFunct

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

Questa funzione è il callback dell'applicazione da richiamare quando si riceve una conferma per un messaggio Weave che ne ha richiesto una come parte del protocollo di messaggistica Weave Reliable.

Dettagli
Parametri
[in] ec
Un puntatore all'oggetto ExchangeContext.
[in] msgCtxt
Un puntatore a un oggetto di contesto specifico associato al messaggio originale che viene confermato.

WRMPPauseRcvdFunct

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

Questa funzione è il callback dell'applicazione da richiamare quando un messaggio di limitazione o consegna ritardata viene ricevuto come parte del protocollo di messaggistica affidabile di Weave.

Ciascuno di questi messaggi è accompagnato da un valore di tempo (in millisecondi) che indica il momento in cui mettere in pausa l'invio dei messaggi Weave in ExchangeContext.

Dettagli
Parametri
[in] ec
Un puntatore all'oggetto ExchangeContext.
[in] pauseTime
Tempo per mettere in pausa la trasmissione (in millisecondi).

WRMPSendErrorFunct

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

Questa funzione è il callback dell'applicazione da richiamare quando si verifica un errore durante l'invio di un messaggio Weave.

Dettagli
Parametri
[in] ec
Un puntatore all'oggetto ExchangeContext.
[in] err
Il tipo WEAVE_ERROR rilevato durante l'invio del messaggio.
[in] msgCtxt
Un puntatore a un oggetto di contesto specifico associato al messaggio originale a cui si riferisce il report.

Attributi pubblici

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Indicatore booleano che indica se i messaggi duplicati sono consentiti per un determinato scambio.

AppState

void * AppState

Puntatore all'oggetto di stato specifico dell'applicazione.

Contro

WeaveConnection * Con

[SOLO LETTURA] Connessione Weave associata.

EncryptionType

uint8_t EncryptionType

Tipo di crittografia da utilizzare per l'invio di un messaggio.

ExchangeId

uint16_t ExchangeId

[SOLO LETTURA] ID piattaforma di scambio assegnata.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[SOLO LETTURA] Possedere il gestore della piattaforma di scambio pubblicitario.

KeyId

uint16_t KeyId

Chiave di crittografia da utilizzare per l'invio di un messaggio.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Callback dell'applicazione per conferma ricevuta.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Callback dell'applicazione per il messaggio di consegna ritardata ricevuto.

OnKeyError

KeyErrorFunct OnKeyError

Questa funzione è il callback dell'applicazione da richiamare quando viene ricevuto un messaggio di errore chiave dal peer.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Callback dell'applicazione per errore durante l'invio.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Callback dell'applicazione per il messaggio della limitazione ricevuto.

PeerAddr

IPAddress PeerAddr

[SOLO LETTURA] Indirizzo IP del nodo peer.

PeerIntf

InterfaceId PeerIntf

[SOLO LETTURA] Interfaccia in uscita da utilizzare per l'invio di messaggi al peer.

(significato solo per UDP).

PeerNodeId

uint64_t PeerNodeId

[SOLO LETTURA] ID nodo del nodo peer.

PeerPort

uint16_t PeerPort

[SOLO LETTURA] Porta del nodo peer.

ResponseTimeout

Timeout ResponseTimeout

Tempo massimo di attesa di una risposta (in millisecondi); 0 disabilita il timeout della risposta.

RetransInterval

uint32_t RetransInterval

Tempo tra una ritrasmissione (in millisecondi); 0 disabilita le ritrasmissioni.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Versione di Message Protocol per ExchangeContext.

mWRMPConfig

WRMPConfig mWRMPConfig

configurazione WRMP.

Funzioni pubbliche

Interrompi

void Abort(
  void
)

Interrompi immediatamente il contesto di Exchange e rilascia tutti i riferimenti a quel contesto.

AddRef

void AddRef(
  void
)

Aumenta il contatore di riferimento per il contesto dello scambio di uno.

AutoRequestAck

bool AutoRequestAck() const 

Indica se verrà richiesta una conferma ogni volta che viene inviato un messaggio.

CancelRetrans

void CancelRetrans(
  void
)

Annulla il meccanismo di ritrasmissione "trickle".

Chiudi

void Close(
  void
)

Chiudi con cura il contesto di uno scambio.

Questa chiamata diminuisce il conteggio dei riferimenti e rilascia lo scambio quando il conteggio dei riferimenti diventa zero.

EncodeExchHeader

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

Codifica l'intestazione dello scambio in un buffer dei messaggi.

Dettagli
Parametri
[in] exchangeHeader
Un puntatore all'oggetto intestazione Weave Exchange.
[in] profileId
L'identificatore del profilo del messaggio Weave da inviare.
[in] msgType
Il tipo di messaggio del profilo corrispondente.
[in] msgBuf
Un puntatore al PacketBuffer necessario per il messaggio Weave.
[in] sendFlags
Contrassegni impostati dall'applicazione per il messaggio Weave inviato.
Valori restituiti
WEAVE_ERROR_BUFFER_TOO_SMALL
Se il buffer non dispone di spazio sufficiente per codificare l'intestazione di scambio.
WEAVE_NO_ERROR
Se la codifica del messaggio è riuscita.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

Indica se la chiave di crittografia associata alla piattaforma di scambio deve essere rilasciata quando la piattaforma di scambio viene liberata.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Recupera il timeout attuale per la ritrasmissione.

Corrisponde al timeout iniziale o a quello attivo per la ritrasmissione, a seconda che per ExchangeContext sia in corso uno scambio di messaggi con il peer.

Dettagli
Restituisce
l'ora attuale della ritrasmissione.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Crea una stringa che descrive il nodo peer e le informazioni relative a indirizzo / connessione associate.

Dettagli
Parametri
[in] buf
Un puntatore a un buffer in cui deve essere scritta la stringa. La dimensione del buffer fornito deve essere almeno pari a kGetPeerDescription_MaxLength. Se viene fornito un buffer più piccolo, la stringa verrà troncata per adattarla. L'output includerà in tutti i casi un carattere di terminazione NUL.
[in] bufSize
La dimensione del buffer puntata dal buf.

HandleTrickleMessage

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

Gestire il messaggio di inganno all'interno del contesto dello scambio.

Dettagli
Parametri
[in] pktInfo
Un puntatore all'oggetto IPPacketInfo.
[in] msgInfo
Un puntatore alla struttura delle informazioni del messaggio Weave.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Determina se il peer ha richiesto la conferma per almeno un messaggio in questo scambio.

Dettagli
Restituisce
Restituisce "true" se la conferma viene richiesta, altrimenti è "false".

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Determina se almeno un messaggio è stato ricevuto da questo scambio da un peer.

Dettagli
Restituisce
Restituisce "true" se il messaggio viene ricevuto, altrimenti è "false".

IsAckPending

bool IsAckPending(
  void
) const 

Determina se esiste già una conferma in attesa da inviare al peer in questa piattaforma di scambio pubblicitario.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Determina se per ExchangeContext è associata una WeaveConnection attiva associata.

Dettagli
Restituisce
Restituisce "true" se la connessione è chiusa, altrimenti è "false".

IsInitiator

bool IsInitiator(
  void
) const 

Determina se il contesto è l'iniziatore dello scambio.

Dettagli
Restituisce
Restituisce "true" se è l'iniziatore, altrimenti "false".

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Determina se è prevista una risposta per i messaggi inviati su questo scambio.

Dettagli
Restituisce
Restituisce "true" se è prevista una risposta, altrimenti è "false".

Rilascia

void Release(
  void
)

Rilascia il riferimento a questo contesto dello scambio.

Se il conteggio è alla rovescia a uno, chiudi il contesto, reimposta tutti i callback delle applicazioni e interrompi tutti i timer.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Invia un messaggio Common::Null.

Dettagli
Valori restituiti
WEAVE_ERROR_NO_MEMORY
Se non sono disponibili PacketBuffers.
WEAVE_NO_ERROR
Se il metodo ha esito positivo o l'errore non era critico.
other
Un altro errore critico restituito da SendMessage().

SendMessage

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

Invia un messaggio Weave su questo scambio.

Dettagli
Parametri
[in] profileId
L'identificatore del profilo del messaggio Weave da inviare.
[in] msgType
Il tipo di messaggio del profilo corrispondente.
[in] msgBuf
Un puntatore all'oggetto PacketBuffer che contiene il messaggio Weave.
[in] sendFlags
Contrassegni impostati dall'applicazione per il messaggio Weave inviato.
[in] msgCtxt
Un puntatore a un oggetto di contesto specifico dell'applicazione da associare al messaggio inviato.
Valori restituiti
WEAVE_ERROR_INVALID_ARGUMENT
se è stato passato un argomento non valido a questa API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
se questo contesto di scambio è stato limitato durante l'utilizzo del protocollo di messaggistica affidabile Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
in caso di mancata corrispondenza tra l'operazione di invio specifica e la versione del protocollo dei messaggi Weave supportata. Ad esempio, questo errore viene generato se si cerca di utilizzare la semantica di Weave Reliable Messaging quando la versione del protocollo dei messaggi Weave è V1.
WEAVE_ERROR_NOT_CONNECTED
se il contesto era associato a una connessione che ora è chiusa.
WEAVE_ERROR_INCORRECT_STATE
se lo stato del contesto dello scambio non è corretto.
WEAVE_NO_ERROR
se il livello Weave ha inviato correttamente il messaggio al livello della rete.

SendMessage

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

Invia un messaggio Weave su questo scambio.

Dettagli
Parametri
[in] profileId
L'identificatore del profilo del messaggio Weave da inviare.
[in] msgType
Il tipo di messaggio del profilo corrispondente.
[in] msgBuf
Un puntatore all'oggetto PacketBuffer che contiene il messaggio Weave.
[in] sendFlags
Contrassegni impostati dall'applicazione per il messaggio Weave inviato.
[in] msgInfo
Un puntatore all'oggetto WeaveMessageInfo.
[in] msgCtxt
Un puntatore a un oggetto di contesto specifico dell'applicazione da associare al messaggio inviato.
Valori restituiti
WEAVE_ERROR_INVALID_ARGUMENT
se è stato passato un argomento non valido a questa API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
se questo contesto di scambio è stato limitato durante l'utilizzo del protocollo di messaggistica affidabile Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
in caso di mancata corrispondenza tra l'operazione di invio specifica e la versione del protocollo dei messaggi Weave supportata. Ad esempio, questo errore viene generato se si cerca di utilizzare la semantica di Weave Reliable Messaging quando la versione del protocollo dei messaggi Weave è V1.
WEAVE_ERROR_NOT_CONNECTED
se il contesto era associato a una connessione che ora è chiusa.
WEAVE_ERROR_INCORRECT_STATE
se lo stato del contesto dello scambio non è corretto.
WEAVE_NO_ERROR
se il livello Weave ha inviato correttamente il messaggio al livello della rete.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Specifica se una conferma deve essere inviata al peer in questa piattaforma di scambio pubblicitario.

Dettagli
Parametri
[in] inAckPending
Un valore booleano che indica se (true) o meno (false) una conferma deve essere rinviata in risposta a un messaggio ricevuto.

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Specifica se la chiave di crittografia associata alla piattaforma di scambio deve essere rilasciata quando la piattaforma di scambio viene liberata.

Dettagli
Parametri
[in] autoReleaseKey
True se la chiave di crittografia del messaggio deve essere rilasciata automaticamente.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Consente di impostare se una conferma deve essere richiesta ogni volta che viene inviato un messaggio.

Dettagli
Parametri
[in] autoReqAck
Un valore booleano che indica se deve essere richiesto o meno un riconoscimento ogni volta che viene inviato un messaggio.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Imposta il bit del flag kFlagConnectionClosed.

Questo flag viene impostato quando viene chiusa una WeaveConnection associata a un valore ExchangeContext.

Dettagli
Parametri
[in] inConnectionClosed
Un valore booleano che indica se (true) o meno (false) il contesto è stato associato a una connessione.

SetDropAck

void SetDropAck(
  bool inDropAck
)

Stabilisci se WeaveExchangeManager non deve inviare conferme per questo contesto.

Solo per uso interno, debug.

Dettagli
Parametri
[in] inDropAck
Un valore booleano che indica se (true) o meno (false) i riconoscimenti non devono essere inviati per lo scambio.

SetInitiator

void SetInitiator(
  bool inInitiator
)

Imposta il bit del flag kFlagInitiator.

Questo flag è impostato dal nodo che avvia uno scambio.

Dettagli
Parametri
[in] inInitiator
Un valore booleano che indica se (true) o meno (false) il contesto è l'iniziatore dello scambio.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Imposta questa opzione se è stato ricevuto un messaggio dal peer in questa piattaforma di scambio pubblicitario.

Dettagli
Parametri
[in] inMsgRcvdFromPeer
Un valore booleano che indica se (true) o meno (false) un messaggio è stato ricevuto dal peer in questo contesto di scambio.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Indica se è stata richiesta una conferma nell'ultimo messaggio ricevuto su questo scambio.

Dettagli
Parametri
[in] inPeerRequestedAck
Un valore booleano che indica se (true) o meno (false) è stata richiesta una conferma nell'ultimo messaggio ricevuto.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Imposta se è prevista una risposta su questo scambio.

Dettagli
Parametri
[in] inResponseExpected
Un valore booleano che indica se è prevista una risposta (true) o meno (false) su questo scambio.

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Imposta se la connessione Weave associata alla piattaforma di scambio deve essere rilasciata quando questa viene liberata.

Dettagli
Parametri
[in] autoReleaseCon
True se la connessione Weave deve essere rilasciata automaticamente.

SetupTrickleRetransmit

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

Configura il meccanismo di ritrasmissione di corrente impostando l'intervallo di ritrasmissione e la soglia di ritrasmissione corrispondenti.

Dettagli
Parametri
[in] retransInterval
L'intervallo di ritrasmissione dell'algoritmo di ritrasmissione di Trickle.
[in] threshold
Il numero massimo di volte in cui un messaggio viene ritrasmesso.
[in] timeout
Il tempo massimo di attesa prima di annullare il timer per la ritrasmissione "trickle".
Restituisce
WEAVE_NO_ERROR se la configurazione in modalità Trickle è riuscita, altrimenti viene mappato un INET_ERROR in un WEAVE_ERROR.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Indica se la connessione Weave associata alla piattaforma di scambio deve essere rilasciata quando questa viene liberata.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

Determina se WeaveExchangeManager non deve inviare una conferma.

Solo per uso interno, debug.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Avvia il meccanismo del timer di ritrasmissione periodica dell'algoritmo di ritrasmissione di Trickle.

Dettagli
Restituisce
WEAVE_NO_ERROR in caso di esito positivo, altrimenti viene associato un INET_ERROR a un WEAVE_ERROR.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Elimina il meccanismo di ritrasmissione "Trickle" annullando i timer periodici all'interno di Trickle e liberando il buffer dei messaggi contenente il messaggio Weave.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Indica se i messaggi in uscita inviati tramite lo scambio devono essere inviati dalla porta UDP temporanea locale.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Invia un messaggio di consegna ritardata per informare un nodo mittente che il messaggio inviato in precedenza avrebbe subito un ritardo previsto prima di essere recapitato al destinatario.

Una delle cause possibili del ritardo dei messaggi prima della consegna è quando il nodo finale del destinatario ha un sonno assonnato. Questo messaggio è potenzialmente generato da un nodo intermedio adatto nel percorso di invio che dispone di una conoscenza sufficiente del destinatario per dedurre il ritardo della consegna. Alla ricezione di questo messaggio, il mittente regolava nuovamente i timer per la ritrasmissione per i messaggi che cercano di ricevere conferma.

Dettagli
Parametri
[in] pauseTimeMillis
Il tempo (in millisecondi) del ritardo previsto per il messaggio inviato in precedenza prima di essere recapitato.
[in] delayedNodeId
L'identificatore del nodo peer del quale verrebbe ritardato la consegna del messaggio.
Valori restituiti
WEAVE_ERROR_INVALID_ARGUMENT
se è stato passato un argomento non valido a questa API SendMessage.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
in caso di mancata corrispondenza tra l'operazione di invio specifica e la versione del protocollo dei messaggi Weave supportata. Ad esempio, questo errore viene generato se si cerca di utilizzare la semantica di Weave Reliable Messaging quando la versione del protocollo dei messaggi Weave è V1.
WEAVE_ERROR_NOT_CONNECTED
se il contesto era associato a una connessione che ora è chiusa.
WEAVE_ERROR_INCORRECT_STATE
se lo stato del contesto dello scambio non è corretto.
WEAVE_NO_ERROR
se il livello Weave ha inviato correttamente il messaggio al livello della rete.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Invia un messaggio di flusso di limitazione al nodo peer chiedendo di limitare l'invio di messaggi.

Dettagli
Parametri
[in] pauseTimeMillis
Il tempo (in millisecondi) previsto dal destinatario per limitare l'invio.
Valori restituiti
WEAVE_ERROR_INVALID_ARGUMENT
Se è stato passato un argomento non valido a questa API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
Se il contesto di scambio è stato limitato durante l'utilizzo del protocollo di messaggistica affidabile Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
In caso di mancata corrispondenza tra l'operazione di invio specifica e la versione del protocollo dei messaggi di Weave supportata. Ad esempio, questo errore viene generato se si cerca di utilizzare la semantica di Weave Reliable Messaging quando la versione del protocollo dei messaggi Weave è V1.
WEAVE_ERROR_NOT_CONNECTED
Se il contesto era associato a una connessione che ora è chiusa.
WEAVE_ERROR_INCORRECT_STATE
Se lo stato del contesto dello scambio non è corretto.
WEAVE_NO_ERROR
Se il livello Weave ha inviato correttamente il messaggio al livello della rete.