nl::Weave::ExchangeContext

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

Questa classe 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 Weave Reliable Messaging.

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 richiamare quando è stata chiusa una connessione Weave esistente.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Tipo di funzione principale per la gestione dei messaggi di errore.
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 attivare quando è scaduto il timeout per la ritrasmissione di un messaggio inviato in precedenza.
Timeout typedef
uint32_t
Tipo utilizzato per esprimere il timeout in ExchangeContext, in millisecondi.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Questa funzione è il callback dell'applicazione da richiamare quando viene ricevuta una conferma per un messaggio Weave che ne ha richiesto uno nell'ambito del Weave Reliable Messaging Protocol.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Questa funzione è il callback dell'applicazione da richiamare quando viene ricevuto un messaggio di limitazione o un messaggio di consegna ritardata nell'ambito del protocollo Weave Reliable Messaging.
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 specifica se i messaggi duplicati sono consentiti per uno specifico 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 quando si invia un messaggio.
ExchangeId
uint16_t
[SOLO LETTURA] ID piattaforma di scambio assegnato.
ExchangeMgr
[SOLO LETTURA] Proprietà di Exchange Manager.
KeyId
uint16_t
Chiave di crittografia da utilizzare per inviare un messaggio.
OnAckRcvd
Callback della richiesta per conferma ricevuta.
OnConnectionClosed
OnDDRcvd
Callback della richiesta per il messaggio di consegna ritardata ricevuto.
OnKeyError
Questa funzione è il callback dell'applicazione da richiamare quando il peer riceve un messaggio di errore chiave.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Callback dell'applicazione per errore durante l'invio.
OnThrottleRcvd
Callback dell'applicazione per il messaggio Throttle 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
[SOLA LETTURA] ID nodo del nodo peer.
PeerPort
uint16_t
[SOLO LETTURA] Porta del nodo peer.
ResponseTimeout
Tempo massimo di attesa della risposta (in millisecondi); 0 disabilita il timeout della risposta.
RetransInterval
uint32_t
Tempo tra le ritrasmissioni (in millisecondi); 0 disabilita le ritrasmissioni.
mMsgProtocolVersion
uint16_t
La versione del protocollo dei messaggi per ExchangeContext.
mWRMPConfig
Configurazione WRMP.

Funzioni pubbliche

Abort(void)
void
Interrompi immediatamente il contesto di Exchange e rilascia tutti i riferimenti.
AddRef(void)
void
Aumenta di uno il contatore di riferimento per il contesto di scambio.
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 automaticamente un contesto di scambio.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Codifica l'intestazione della piattaforma di scambio pubblicitario nel buffer dei messaggi.
GetAutoReleaseKey() const
bool
Indica se la chiave di crittografia associata alla piattaforma di scambio deve essere rilasciata quando lo scambio viene liberato.
GetCurrentRetransmitTimeout(void)
uint32_t
Visualizza il timeout di ritrasmissione corrente.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Crea una stringa che descrive il nodo peer e l'indirizzo / le informazioni di connessione associati.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Gestire i messaggi di ripetizione nel contesto di Exchange.
HasPeerRequestedAck(void) const
bool
Determina se il peer ha richiesto un riconoscimento per almeno un messaggio su questa piattaforma di scambio pubblicitario.
HasRcvdMsgFromPeer(void) const
bool
Determina se su questo scambio è stato ricevuto almeno un messaggio dal peer.
IsAckPending(void) const
bool
Determina se è già presente una conferma in attesa di invio al peer su questa piattaforma di scambio pubblicitario.
IsConnectionClosed(void) const
bool
Determina se a ExchangeContext è associata una WeaveConnection attiva.
IsInitiator(void) const
bool
Determinare se il contesto è l'autore dello scambio.
IsResponseExpected(void) const
bool
Determina se è prevista una risposta per i messaggi inviati tramite questo scambio.
Release(void)
void
Riferimento per la release a questo contesto della piattaforma di scambio pubblicitario.
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 questa piattaforma di scambio pubblicitario.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Invia un messaggio Weave su questa piattaforma di scambio pubblicitario.
SetAckPending(bool inAckPending)
void
Imposta se è necessario inviare una conferma al peer su questa piattaforma di scambio pubblicitario.
SetAutoReleaseKey(bool autoReleaseKey)
void
Consente di stabilire se la chiave di crittografia associata alla piattaforma di scambio deve essere rilasciata quando la piattaforma viene liberata.
SetAutoRequestAck(bool autoReqAck)
void
Consente di stabilire se richiedere una conferma 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 di lettura per questo contesto.
SetInitiator(bool inInitiator)
void
Imposta il bit del flag kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Imposta se un messaggio è stato ricevuto dal peer in questa piattaforma di scambio pubblicitario.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Consente di impostare se è stata richiesta una conferma nell'ultimo messaggio ricevuto su questa piattaforma di scambio pubblicitario.
SetResponseExpected(bool inResponseExpected)
void
Specifica se è prevista una risposta su questo scambio.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Consente di impostare se la connessione Weave associata allo scambio deve essere rilasciata quando la piattaforma viene liberata.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Configura il meccanismo di ritrasmissione di flusso impostando l'intervallo di ritrasmissione corrispondente e la soglia di ritrasmissione.
ShouldAutoReleaseConnection() const
bool
Indica se la connessione Weave associata allo scambio deve essere rilasciata quando lo scambio viene liberato.
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 Trickle.
TeardownTrickleRetransmit(void)
void
Abbattere il meccanismo di ritrasmissione Trickle annullando i timer periodici all'interno di Trickle e liberando il buffer dei messaggi che contiene 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 per la consegna ritardata per notificare un nodo mittente che il messaggio inviato in precedenza subirebbe un ritardo previsto prima che venga recapitato al destinatario.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Invia un messaggio di limitazione del flusso al nodo peer per richiedere 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 la selezione dell'indirizzo di origine IPv6 predefinito deve essere utilizzata per l'invio di messaggi multicast IPv6.

kSendFlag_DelaySend

Utilizzato per indicare che l'invio del messaggio corrente deve essere ritardato.

kSendFlag_ExpectResponse

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

kSendFlag_FromInitiator

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

kSendFlag_MulticastFromLinkLocal

Alias deprecato per kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Elimina la funzionalità di conferma della richiesta automatica quando invii un messaggio.

kSendFlag_RequestAck

Utilizzato per inviare un messaggio WRM per richiedere 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 delle ritrasmissioni per Trickle.

kSendFlag_ReuseMessageId

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

kSendFlag_ReuseSourceId

Utilizzato per indicare che l'ID 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 richiamare quando è stata chiusa una connessione Weave esistente.

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

KeyErrorFunct

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

Tipo di funzione principale per la gestione dei messaggi di errore.

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

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 attivare 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 ExchangeContext, in millisecondi.

WRMPAckRcvdFunct

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

Questa funzione è il callback dell'applicazione da richiamare quando viene ricevuta una conferma per un messaggio Weave che ne ha richiesto uno nell'ambito del Weave Reliable Messaging Protocol.

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 viene ricevuto un messaggio di limitazione o un messaggio di consegna ritardata nell'ambito del protocollo Weave Reliable Messaging.

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

Dettagli
Parametri
[in] ec
Un puntatore all'oggetto ExchangeContext.
[in] pauseTime
Tempo per sospendere 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 in cui viene generato il report.

Attributi pubblici

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Indicatore booleano che specifica se i messaggi duplicati sono consentiti per uno specifico scambio.

AppState

void * AppState

Puntatore all'oggetto di stato specifico dell'applicazione.

Svantaggi

WeaveConnection * Con

[SOLO LETTURA] Connessione Weave associata.

EncryptionType

uint8_t EncryptionType

Tipo di crittografia da utilizzare quando si invia un messaggio.

ExchangeId

uint16_t ExchangeId

[SOLO LETTURA] ID piattaforma di scambio assegnato.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[SOLO LETTURA] Proprietà di Exchange Manager.

KeyId

uint16_t KeyId

Chiave di crittografia da utilizzare per inviare un messaggio.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Callback della richiesta per conferma ricevuta.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Callback della richiesta per il messaggio di consegna ritardata ricevuto.

OnKeyError

KeyErrorFunct OnKeyError

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

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 Throttle 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.

(Significativo solo per UDP.)

PeerNodeId

uint64_t PeerNodeId

[SOLA LETTURA] ID nodo del nodo peer.

PeerPort

uint16_t PeerPort

[SOLO LETTURA] Porta del nodo peer.

ResponseTimeout

Timeout ResponseTimeout

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

RetransInterval

uint32_t RetransInterval

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

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

La versione del protocollo dei messaggi per ExchangeContext.

mWRMPConfig

WRMPConfig mWRMPConfig

Configurazione WRMP.

Funzioni pubbliche

Interrompi

void Abort(
  void
)

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

AddRef

void AddRef(
  void
)

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

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 automaticamente un contesto di scambio.

Questa chiamata diminuisce il conteggio dei riferimenti e rilascia la piattaforma di scambio pubblicitario quando il conteggio dei riferimenti scende a zero.

EncodeExchHeader

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

Codifica l'intestazione della piattaforma di scambio pubblicitario nel buffer dei messaggi.

Dettagli
Parametri
[in] exchangeHeader
Un puntatore all'oggetto di 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
Flag impostati dall'applicazione per il messaggio Weave inviato.
Valori restituiti
WEAVE_ERROR_BUFFER_TOO_SMALL
Se il buffer dei messaggi non dispone di spazio sufficiente per la codifica dell'intestazione della piattaforma di scambio pubblicitario.
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 lo scambio viene liberato.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Visualizza il timeout di ritrasmissione corrente.

Può essere il timeout iniziale o quello attivo per la ritrasmissione a seconda che ExchangeContext abbia uno scambio di messaggi attivo con il relativo peer.

Dettagli
Restituisce
l'ora di ritrasmissione corrente.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Crea una stringa che descrive il nodo peer e l'indirizzo / le informazioni di connessione associati.

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

HandleTrickleMessage

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

Gestire i messaggi di ripetizione nel contesto di Exchange.

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 un riconoscimento per almeno un messaggio su questa piattaforma di scambio pubblicitario.

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

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

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

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

IsAckPending

bool IsAckPending(
  void
) const 

Determina se è già presente una conferma in attesa di invio al peer su questa piattaforma di scambio pubblicitario.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Determina se a ExchangeContext è associata una WeaveConnection attiva.

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

IsInitiator

bool IsInitiator(
  void
) const 

Determinare se il contesto è l'autore 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 tramite questo scambio.

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

Release

void Release(
  void
)

Riferimento per la release a questo contesto della piattaforma di scambio pubblicitario.

Se il conto alla rovescia è fino a uno, chiudi il contesto, reimposta tutti i callback dell'applicazione e interrompi tutti i timer.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Invia un messaggio Common::Null.

Dettagli
Valori restituiti
WEAVE_ERROR_NO_MEMORY
Se nessun PacketBuffer disponibile è disponibile.
WEAVE_NO_ERROR
Se il metodo ha avuto esito positivo o l'errore non è stato 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 questa piattaforma di scambio pubblicitario.

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
Flag 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 tenta di eseguire la semantica di Weave Reliable Messaging quando la versione del protocollo del messaggio 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 di scambio non è corretto.
WEAVE_NO_ERROR
se il livello Weave ha inviato correttamente il messaggio al livello di 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 questa piattaforma di scambio pubblicitario.

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
Flag 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 tenta di eseguire la semantica di Weave Reliable Messaging quando la versione del protocollo del messaggio 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 di scambio non è corretto.
WEAVE_NO_ERROR
se il livello Weave ha inviato correttamente il messaggio al livello di rete.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Imposta se è necessario inviare una conferma al peer su 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
)

Consente di stabilire se la chiave di crittografia associata alla piattaforma di scambio deve essere rilasciata quando la piattaforma 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 stabilire se richiedere una conferma ogni volta che viene inviato un messaggio.

Dettagli
Parametri
[in] autoReqAck
Un valore booleano che indica se è necessario richiedere o meno una conferma 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 connessione WeaveConnection associata a 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 di lettura per questo contesto.

Solo per uso interno, per il 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 se un messaggio è stato ricevuto dal peer in questa piattaforma di scambio pubblicitario.

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

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Consente di impostare se è stata richiesta una conferma nell'ultimo messaggio ricevuto su questa piattaforma di scambio pubblicitario.

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
)

Specifica se è prevista una risposta su questo scambio.

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

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Consente di impostare se la connessione Weave associata allo scambio deve essere rilasciata quando la piattaforma 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 flusso impostando l'intervallo di ritrasmissione corrispondente e la soglia di ritrasmissione.

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

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Indica se la connessione Weave associata allo scambio deve essere rilasciata quando lo scambio viene liberato.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

Determina se WeaveExchangeManager non deve inviare una conferma.

Solo per uso interno, per il debug.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

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

Dettagli
Restituisce
WEAVE_NO_ERROR in caso di esito positivo, altrimenti un INET_ERROR è stato mappato a WEAVE_ERROR.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Abbattere il meccanismo di ritrasmissione Trickle annullando i timer periodici all'interno di Trickle e liberando il buffer dei messaggi che contiene 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 per la consegna ritardata per notificare un nodo mittente che il messaggio inviato in precedenza subirebbe un ritardo previsto prima che venga recapitato al destinatario.

Una delle possibili cause di ritardo dei messaggi prima di essere recapitati è quando il nodo finale del destinatario è assonnato. Questo messaggio è potenzialmente generato da un nodo intermedio adatto nel percorso di invio che dispone di una conoscenza sufficiente del destinatario per poter dedurre la consegna ritardata. Alla ricezione di questo messaggio, il mittente modifica di nuovo i timer di ritrasmissione per i messaggi che cercano conferme.

Dettagli
Parametri
[in] pauseTimeMillis
Il tempo (in millisecondi) per cui è previsto il ritardo del messaggio inviato in precedenza prima della consegna.
[in] delayedNodeId
L'identificatore del nodo del nodo peer a cui verrà ritardata 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 tenta di eseguire la semantica di Weave Reliable Messaging quando la versione del protocollo del messaggio 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 di scambio non è corretto.
WEAVE_NO_ERROR
se il livello Weave ha inviato correttamente il messaggio al livello di rete.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Invia un messaggio di limitazione del flusso al nodo peer per richiedere di limitare l'invio di messaggi.

Dettagli
Parametri
[in] pauseTimeMillis
Il tempo (in millisecondi) per cui il destinatario dovrebbe 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 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 tenta di eseguire la semantica di Weave Reliable Messaging quando la versione del protocollo del messaggio Weave è V1.
WEAVE_ERROR_NOT_CONNECTED
Indica se il contesto era associato a una connessione che ora è chiusa.
WEAVE_ERROR_INCORRECT_STATE
Se lo stato del contesto della piattaforma di scambio non è corretto.
WEAVE_NO_ERROR
Se il livello Weave ha inviato correttamente il messaggio al livello di rete.