nl::Weave::ExchangeContext

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

Diese Klasse stellt eine laufende Unterhaltung (ExchangeContext) zwischen zwei oder mehr Knoten dar.

Zusammenfassung

Sie definiert Methoden zur Codierung und Kommunikation von Weave-Nachrichten in einem ExchangeContext über verschiedene Transportmechanismen, z. B. TCP, UDP oder Weave Reliable Messaging.

Öffentliche Typen

@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(*
Diese Funktion ist der Anwendungs-Callback, der aufzurufen ist, wenn eine vorhandene Weave-Verbindung geschlossen wurde.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef.
void(*
Typ der Funktion zur Verarbeitung wichtiger Fehlermeldungen.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef.
void(*
Diese Funktion ist der Anwendungs-Callback zur Verarbeitung einer empfangenen Weave-Nachricht.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef.
void(*
Diese Funktion ist der Anwendungs-Callback, der ausgelöst wird, wenn das Zeitlimit für den Empfang einer Antwortnachricht abgelaufen ist.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef.
void(*
Diese Funktion ist der Anwendungs-Callback, der ausgelöst wird, wenn das Zeitlimit für die erneute Übertragung einer zuvor gesendeten Nachricht abgelaufen ist.
Timeout typedef.
uint32_t
Typ, mit dem das Zeitlimit in diesem ExchangeContext in Millisekunden ausgedrückt wird.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef.
void(*
Diese Funktion ist der Anwendungs-Callback, der ausgelöst wird, wenn eine Bestätigung für eine Weave-Nachricht eingeht, die eine Bestätigung als Teil des Weave Reliable Messaging Protocol angefordert hat.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef.
void(*
Diese Funktion ist der Anwendungs-Callback, der ausgelöst wird, wenn eine Throttle-Nachricht oder Delayed Delivery-Nachricht als Teil des Weave Reliable Messaging Protocol eingeht.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef.
void(*
Diese Funktion ist der Anwendungs-Callback, der aufgerufen wird, wenn beim Senden einer Weave-Nachricht ein Fehler auftritt.

Öffentliche Attribute

AllowDuplicateMsgs
bool
Boolescher Indikator, der angibt, ob doppelte Nachrichten für einen bestimmten Austausch zulässig sind.
AppState
void *
Zeiger auf anwendungsspezifisches Statusobjekt.
Con
[READ ONLY] Verknüpfte Weave-Verbindung.
EncryptionType
uint8_t
Verschlüsselungstyp, der beim Senden einer Nachricht verwendet werden soll.
ExchangeId
uint16_t
[READ ONLY] ID der zugewiesenen Anzeigenplattform.
ExchangeMgr
[READ ONLY] Inhaber der Anzeigenplattform.
KeyId
uint16_t
Verschlüsselungsschlüssel zum Senden einer Nachricht.
OnAckRcvd
Anwendungs-Callback für empfangene Bestätigung.
OnConnectionClosed
OnDDRcvd
Anwendungsrückruf für empfangene Nachricht zur verzögerten Zustellung.
OnKeyError
Diese Funktion ist der Anwendungs-Callback, der aufzurufen ist, wenn vom Peer eine wichtige Fehlermeldung empfangen wurde.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Anwendungs-Callback für Fehler beim Senden.
OnThrottleRcvd
Anwendungs-Callback für empfangene Throttle-Nachricht.
PeerAddr
IPAddress
[READ ONLY] IP-Adresse des Peer-Knotens.
PeerIntf
InterfaceId
[READ ONLY] Ausgehende Schnittstelle zum Senden von Nachrichten an den Peer.
PeerNodeId
uint64_t
[READ ONLY] Knoten-ID des Peer-Knotens.
PeerPort
uint16_t
[READ ONLY] Port des Peer-Knotens.
ResponseTimeout
Maximale Wartezeit auf eine Antwort (in Millisekunden); 0 deaktiviert die Zeitüberschreitung für Antworten.
RetransInterval
uint32_t
Zeit zwischen erneuten Übertragungen (in Millisekunden); 0 deaktiviert die erneute Übertragung.
mMsgProtocolVersion
uint16_t
Message Protocol-Version für ExchangeContext.
mWRMPConfig
WRMP-Konfiguration.

Öffentliche Funktionen

Abort(void)
void
Abbrechen des Exchange-Kontexts und Freigabe aller Verweise darauf.
AddRef(void)
void
Erhöht den Referenzzähler für den Exchange-Kontext um eins.
AutoRequestAck() const
bool
Gibt zurück, ob beim Senden einer Nachricht eine Bestätigung angefordert wird.
CancelRetrans(void)
void
Den Übertragungsmechanismus von „Trickle“ abbrechen.
Close(void)
void
Exchange-Kontext ordnungsgemäß schließen
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Codieren Sie den Exchange-Header in einem Nachrichtenpuffer.
GetAutoReleaseKey() const
bool
Gibt an, ob der mit dem Exchange verknüpfte Verschlüsselungsschlüssel freigegeben werden soll, wenn der Austausch freigegeben wird.
GetCurrentRetransmitTimeout(void)
uint32_t
Ruft das aktuelle Zeitlimit für die erneute Übertragung ab.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Erstellt einen String, der den Peer-Knoten und die zugehörigen Adress-/Verbindungsinformationen beschreibt.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Verarbeiten Sie Trickle-Nachrichten im Austauschkontext.
HasPeerRequestedAck(void) const
bool
Ermitteln Sie, ob Peer für mindestens eine Nachricht in diesem Austausch eine Bestätigung angefordert hat.
HasRcvdMsgFromPeer(void) const
bool
Ermitteln Sie, ob auf diesem Austausch mindestens eine Nachricht von einem Peer empfangen wurde.
IsAckPending(void) const
bool
Prüfen Sie, ob bereits eine Bestätigung zum Senden an den Peer auf dieser Anzeigenplattform aussteht.
IsConnectionClosed(void) const
bool
Prüfen Sie, ob eine aktive WeaveConnection mit ExchangeContext verknüpft ist.
IsInitiator(void) const
bool
Ermitteln Sie, ob der Kontext der Initiator des Austauschs ist.
IsResponseExpected(void) const
bool
Hier können Sie festlegen, ob für Nachrichten, die über diesen Austausch gesendet werden, eine Antwort erwartet wird.
Release(void)
void
Releasereferenz zu diesem Austauschkontext.
SendCommonNullMessage(void)
Eine Common::Null-Nachricht senden.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Senden Sie in diesem Austausch eine Weave-Nachricht.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Senden Sie in diesem Austausch eine Weave-Nachricht.
SetAckPending(bool inAckPending)
void
Legt fest, ob eine Bestätigung an den Peer auf dieser Anzeigenplattform zurückgesendet werden muss.
SetAutoReleaseKey(bool autoReleaseKey)
void
Legen Sie fest, ob der mit dem Exchange verknüpfte Verschlüsselungsschlüssel freigegeben werden soll, wenn der Datenpool freigegeben wird.
SetAutoRequestAck(bool autoReqAck)
void
Legen Sie fest, ob beim Senden einer Nachricht eine Bestätigung angefordert werden soll.
SetConnectionClosed(bool inConnectionClosed)
void
Legen Sie das Bit für das Flag kFlagConnectionClosed fest.
SetDropAck(bool inDropAck)
void
Legen Sie fest, ob WeaveExchangeManager für diesen Kontext keine Bestätigungen senden soll.
SetInitiator(bool inInitiator)
void
Legen Sie das kFlagInitiator-Flag-Bit fest.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Legt fest, ob eine Nachricht vom Peer auf dieser Anzeigenplattform empfangen wurde.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Legt fest, ob in der letzten Nachricht, die in diesem Austausch empfangen wurde, eine Bestätigung angefordert wurde.
SetResponseExpected(bool inResponseExpected)
void
Legen Sie fest, ob in diesem Austausch eine Antwort erwartet wird.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Legen Sie fest, ob die mit der Anzeigenplattform verknüpfte Weave-Verbindung getrennt werden soll, wenn die Börse freigegeben wird.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Richten Sie den Mechanismus für die erneute Übertragung ein, indem Sie das entsprechende Wiederholungsintervall und den Grenzwert für die erneute Übertragung festlegen.
ShouldAutoReleaseConnection() const
bool
Gibt zurück, ob die mit dem Exchange verknüpfte Weave-Verbindung getrennt werden soll, wenn der Austausch freigegeben wird.
ShouldDropAck(void) const
bool
Legen Sie fest, ob WeaveExchangeManager keine Bestätigung senden soll.
StartTimerT(void)
Starten Sie den Timer-Mechanismus des Trickle-Rebroadcast-Algorithmus für eine erneute Übertragung.
TeardownTrickleRetransmit(void)
void
Löschen Sie den Übertragungsmechanismus von Trickle, indem Sie die regelmäßigen Timer in Trickle abbrechen und den Nachrichtenpuffer mit der Weave-Nachricht freigeben.
UseEphemeralUDPPort(void) const
bool
Gibt zurück, ob ausgehende Nachrichten, die über den Exchange gesendet wurden, über den lokalen sitzungsspezifischen UDP-Port gesendet werden sollen.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Senden Sie eine Nachricht mit verzögerter Zustellung, um einen Absenderknoten darüber zu informieren, dass es bei der zuvor gesendeten Nachricht zu einer erwarteten Verzögerung kommen würde, bevor sie an den Empfänger zugestellt wird.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Senden Sie eine Throttle Flow-Nachricht an den Peer-Knoten und fordern Sie ihn auf, das Senden von Nachrichten zu drosseln.

Öffentliche Typen

@34

 @34
Attribute
kSendFlag_AlreadyEncoded

Wird verwendet, um anzuzeigen, dass die Nachricht bereits codiert ist.

kSendFlag_AutoRetrans

Wird verwendet, um anzuzeigen, dass die automatische erneute Übertragung aktiviert ist.

kSendFlag_DefaultMulticastSourceAddress

Gibt an, dass beim Senden von IPv6-Multicast-Nachrichten die standardmäßige IPv6-Quelladresse ausgewählt werden soll.

kSendFlag_DelaySend

Wird verwendet, um anzuzeigen, dass das Senden der aktuellen Nachricht verzögert werden muss.

kSendFlag_ExpectResponse

Wird verwendet, um anzuzeigen, dass eine Antwort innerhalb eines bestimmten Zeitlimits erwartet wird.

kSendFlag_FromInitiator

Wird verwendet, um anzugeben, dass die aktuelle Nachricht der Initiator des Austauschs ist.

kSendFlag_MulticastFromLinkLocal

Eingestellter Alias für kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Unterdrücken Sie beim Senden einer Nachricht die Funktion zur automatischen Bestätigung von Anfragen.

kSendFlag_RequestAck

Wird zum Senden einer WRM-Nachricht verwendet, die eine Bestätigung anfordert.

kSendFlag_RetainBuffer

Wird verwendet, um anzugeben, dass der Nachrichtenpuffer nach dem Senden nicht freigegeben werden soll.

kSendFlag_RetransmissionTrickle

Wird verwendet, um anzugeben, dass eine erneute Übertragung für Trickle erforderlich ist.

kSendFlag_ReuseMessageId

Wird verwendet, um anzuzeigen, dass die Nachrichten-ID im Nachrichtenheader wiederverwendet werden kann.

kSendFlag_ReuseSourceId

Wird verwendet, um anzugeben, dass die Quellknoten-ID im Nachrichtenheader wiederverwendet werden kann.

@35

 @35
Attribute
kGetPeerDescription_MaxLength

Maximale Länge des Strings (einschließlich NUL-Zeichen), die von GetPeerDescription() zurückgegeben wird.

ConnectionClosedFunct

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

Diese Funktion ist der Anwendungs-Callback, der aufzurufen ist, wenn eine vorhandene Weave-Verbindung geschlossen wurde.

Details
Parameter
[in] ec
Ein Zeiger auf das Objekt ExchangeContext.
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] conErr
Der Typ WEAVE_ERROR, der beim Trennen der Verbindung gemeldet wurde.

KeyErrorFunct

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

Typ der Funktion zur Verarbeitung wichtiger Fehlermeldungen.

Details
Parameter
[in] ec
Ein Zeiger auf das Objekt ExchangeContext.
[in] keyErr
Der Typ WEAVE_ERROR, der in der Schlüsselfehlermeldung gemeldet wurde.

MessageReceiveFunct

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

Diese Funktion ist der Anwendungs-Callback zur Verarbeitung einer empfangenen Weave-Nachricht.

Details
Parameter
[in] ec
Ein Zeiger auf das Objekt ExchangeContext.
[in] pktInfo
Ein Zeiger auf das IPPacketInfo-Objekt.
[in] msgInfo
Ein Zeiger auf das Objekt WeaveMessageInfo.
[in] profileId
Die Profil-ID der empfangenen Nachricht.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die Nachrichtennutzlast enthält.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Diese Funktion ist der Anwendungs-Callback, der ausgelöst wird, wenn das Zeitlimit für den Empfang einer Antwortnachricht abgelaufen ist.

Details
Parameter
[in] ec
Ein Zeiger auf das Objekt ExchangeContext.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Diese Funktion ist der Anwendungs-Callback, der ausgelöst wird, wenn das Zeitlimit für die erneute Übertragung einer zuvor gesendeten Nachricht abgelaufen ist.

Details
Parameter
[in] ec
Ein Zeiger auf das Objekt ExchangeContext.

Zeitüberschreitung

uint32_t Timeout

Typ, mit dem das Zeitlimit in diesem ExchangeContext in Millisekunden ausgedrückt wird.

WRMPAckRcvdFunct

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

Diese Funktion ist der Anwendungs-Callback, der ausgelöst wird, wenn eine Bestätigung für eine Weave-Nachricht eingeht, die eine Bestätigung als Teil des Weave Reliable Messaging Protocol angefordert hat.

Details
Parameter
[in] ec
Ein Zeiger auf das Objekt ExchangeContext.
[in] msgCtxt
Ein Zeiger auf ein bestimmtes Kontextobjekt, das der ursprünglichen Nachricht zugeordnet ist, die bestätigt wird.

WRMPPauseRcvdFunct

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

Diese Funktion ist der Anwendungs-Callback, der ausgelöst wird, wenn eine Throttle-Nachricht oder Delayed Delivery-Nachricht als Teil des Weave Reliable Messaging Protocol eingeht.

Für jede dieser Nachrichten ist ein Zeitwert in Millisekunden angegeben, der angibt, wann das Senden von Weave-Nachrichten in diesem ExchangeContext pausiert werden soll.

Details
Parameter
[in] ec
Ein Zeiger auf das Objekt ExchangeContext.
[in] pauseTime
Zeit zum Anhalten der Übertragung (in Millisekunden).

WRMPSendErrorFunct

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

Diese Funktion ist der Anwendungs-Callback, der aufgerufen wird, wenn beim Senden einer Weave-Nachricht ein Fehler auftritt.

Details
Parameter
[in] ec
Ein Zeiger auf das Objekt ExchangeContext.
[in] err
Der Typ WEAVE_ERROR, der beim Senden der Nachricht aufgetreten ist.
[in] msgCtxt
Ein Zeiger auf ein bestimmtes Kontextobjekt, das mit der ursprünglichen Nachricht verknüpft ist, über die berichtet wird.

Öffentliche Attribute

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Boolescher Indikator, der angibt, ob doppelte Nachrichten für einen bestimmten Austausch zulässig sind.

AppState

void * AppState

Zeiger auf anwendungsspezifisches Statusobjekt.

Nachteil

WeaveConnection * Con

[READ ONLY] Verknüpfte Weave-Verbindung.

EncryptionType

uint8_t EncryptionType

Verschlüsselungstyp, der beim Senden einer Nachricht verwendet werden soll.

ExchangeId

uint16_t ExchangeId

[READ ONLY] ID der zugewiesenen Anzeigenplattform.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[READ ONLY] Inhaber der Anzeigenplattform.

KeyId

uint16_t KeyId

Verschlüsselungsschlüssel zum Senden einer Nachricht.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Anwendungs-Callback für empfangene Bestätigung.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Anwendungsrückruf für empfangene Nachricht zur verzögerten Zustellung.

OnKeyError

KeyErrorFunct OnKeyError

Diese Funktion ist der Anwendungs-Callback, der aufzurufen ist, wenn vom Peer eine wichtige Fehlermeldung empfangen wurde.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Anwendungs-Callback für Fehler beim Senden.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Anwendungs-Callback für empfangene Throttle-Nachricht.

PeerAddr

IPAddress PeerAddr

[READ ONLY] IP-Adresse des Peer-Knotens.

PeerIntf

InterfaceId PeerIntf

[READ ONLY] Ausgehende Schnittstelle zum Senden von Nachrichten an den Peer.

(Nur sinnvoll für UDP.)

PeerNodeId

uint64_t PeerNodeId

[READ ONLY] Knoten-ID des Peer-Knotens.

PeerPort

uint16_t PeerPort

[READ ONLY] Port des Peer-Knotens.

ResponseTimeout

Timeout ResponseTimeout

Maximale Wartezeit auf eine Antwort (in Millisekunden); 0 deaktiviert die Zeitüberschreitung für Antworten.

RetransInterval

uint32_t RetransInterval

Zeit zwischen erneuten Übertragungen (in Millisekunden); 0 deaktiviert die erneute Übertragung.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Message Protocol-Version für ExchangeContext.

mWRMPConfig

WRMPConfig mWRMPConfig

WRMP-Konfiguration.

Öffentliche Funktionen

Abbrechen

void Abort(
  void
)

Abbrechen des Exchange-Kontexts und Freigabe aller Verweise darauf.

AddRef

void AddRef(
  void
)

Erhöht den Referenzzähler für den Exchange-Kontext um eins.

AutoRequestAck

bool AutoRequestAck() const 

Gibt zurück, ob beim Senden einer Nachricht eine Bestätigung angefordert wird.

CancelRetrans

void CancelRetrans(
  void
)

Den Übertragungsmechanismus von „Trickle“ abbrechen.

Schließen

void Close(
  void
)

Exchange-Kontext ordnungsgemäß schließen

Durch diesen Aufruf wird die Anzahl der Referenzen verringert und der Austausch wird freigegeben, wenn die Referenzanzahl auf null sinkt.

EncodeExchHeader

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

Codieren Sie den Exchange-Header in einem Nachrichtenpuffer.

Details
Parameter
[in] exchangeHeader
Ein Zeiger auf das Weave Exchange-Headerobjekt.
[in] profileId
Die Profil-ID der Weave-Nachricht, die gesendet werden soll.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
[in] msgBuf
Ein Zeiger auf den PacketBuffer, der für die Weave-Nachricht erforderlich ist.
[in] sendFlags
Von der Anwendung für die zu sendende Weave-Nachricht festgelegte Flags.
Rückgabewerte
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn im Nachrichtenpuffer nicht genügend Platz für die Codierung des Exchange-Headers vorhanden ist.
WEAVE_NO_ERROR
Ob die Codierung der Nachricht erfolgreich war.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

Gibt an, ob der mit dem Exchange verknüpfte Verschlüsselungsschlüssel freigegeben werden soll, wenn der Austausch freigegeben wird.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Ruft das aktuelle Zeitlimit für die erneute Übertragung ab.

Es wäre entweder das anfängliche oder das aktive Zeitlimit für die erneute Übertragung, je nachdem, ob ExchangeContext einen aktiven Nachrichtenaustausch mit seinem Peer hat.

Details
Rückgabe
den aktuellen Zeitpunkt der erneuten Übertragung.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Erstellt einen String, der den Peer-Knoten und die zugehörigen Adress-/Verbindungsinformationen beschreibt.

Details
Parameter
[in] buf
Ein Zeiger auf einen Puffer, in den die Zeichenfolge geschrieben werden soll. Der bereitgestellte Puffer sollte mindestens so groß sein wie kGetPeerDescription_MaxLength. Wenn ein kleinerer Puffer angegeben wird, wird die Zeichenfolge abgeschnitten. Die Ausgabe enthält in allen Fällen ein NUL-Beendigungszeichen.
[in] bufSize
Die Größe des Zwischenspeichers, auf den der Puffer verweist.

HandleTrickleMessage

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

Verarbeiten Sie Trickle-Nachrichten im Austauschkontext.

Details
Parameter
[in] pktInfo
Ein Zeiger auf das IPPacketInfo-Objekt.
[in] msgInfo
Ein Zeiger auf die Informationsstruktur der Weave-Nachricht.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Ermitteln Sie, ob Peer für mindestens eine Nachricht in diesem Austausch eine Bestätigung angefordert hat.

Details
Rückgabe
Gibt „true“ zurück falls Bestätigung angefordert, sonst „false“.

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Ermitteln Sie, ob auf diesem Austausch mindestens eine Nachricht von einem Peer empfangen wurde.

Details
Rückgabe
Gibt „true“ zurück bei Eingang der Nachricht, andernfalls „false“.

IsAckPending

bool IsAckPending(
  void
) const 

Prüfen Sie, ob bereits eine Bestätigung zum Senden an den Peer auf dieser Anzeigenplattform aussteht.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Prüfen Sie, ob eine aktive WeaveConnection mit ExchangeContext verknüpft ist.

Details
Rückgabe
Gibt „true“ zurück wenn Verbindung getrennt, andernfalls „false“.

IsInitiator

bool IsInitiator(
  void
) const 

Ermitteln Sie, ob der Kontext der Initiator des Austauschs ist.

Details
Rückgabe
Gibt „true“ zurück wenn es der Initiator ist, andernfalls „false“.

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Hier können Sie festlegen, ob für Nachrichten, die über diesen Austausch gesendet werden, eine Antwort erwartet wird.

Details
Rückgabe
Gibt „true“ zurück wenn Antwort erwartet, sonst „false“.

Release

void Release(
  void
)

Releasereferenz zu diesem Austauschkontext.

Wenn die Anzahl auf eins gesunken ist, schließen Sie den Kontext, setzen alle Anwendungs-Callbacks zurück und stoppen alle Timer.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Eine Common::Null-Nachricht senden.

Details
Rückgabewerte
WEAVE_ERROR_NO_MEMORY
Wenn keine PacketBuffers verfügbar sind.
WEAVE_NO_ERROR
Ob die Methode erfolgreich war oder der Fehler nicht kritisch war.
other
Ein weiterer kritischer Fehler, der von SendMessage() zurückgegeben wird.

SendMessage

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

Senden Sie in diesem Austausch eine Weave-Nachricht.

Details
Parameter
[in] profileId
Die Profil-ID der Weave-Nachricht, die gesendet werden soll.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das die Weave-Nachricht enthält.
[in] sendFlags
Von der Anwendung für die zu sendende Weave-Nachricht festgelegte Flags.
[in] msgCtxt
Ein Zeiger auf ein anwendungsspezifisches Kontextobjekt, das der gesendeten Nachricht zugeordnet werden soll.
Rückgabewerte
WEAVE_ERROR_INVALID_ARGUMENT
wenn ein ungültiges Argument an diese SendMessage API übergeben wurde.
WEAVE_ERROR_SEND_THROTTLED
ob dieser Austauschkontext bei Verwendung des zuverlässigen Weave-Messaging-Protokolls gedrosselt wurde.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
wenn es eine Abweichung zwischen dem spezifischen Sendevorgang und der unterstützten Version des Weave-Nachrichtenprotokolls gibt. Dieser Fehler tritt beispielsweise auf, wenn versucht wird, die Semantik von Weave Reliable Messaging zu testen und die Version des Weave-Nachrichtenprotokolls V1 ist.
WEAVE_ERROR_NOT_CONNECTED
Der Kontext wurde mit einer Verbindung verknüpft, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
wenn der Status des Exchange-Kontexts falsch ist.
WEAVE_NO_ERROR
ob die Weave-Schicht die Nachricht erfolgreich an die Netzwerkschicht gesendet hat.

SendMessage

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

Senden Sie in diesem Austausch eine Weave-Nachricht.

Details
Parameter
[in] profileId
Die Profil-ID der Weave-Nachricht, die gesendet werden soll.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das die Weave-Nachricht enthält.
[in] sendFlags
Von der Anwendung für die zu sendende Weave-Nachricht festgelegte Flags.
[in] msgInfo
Ein Zeiger auf das Objekt WeaveMessageInfo.
[in] msgCtxt
Ein Zeiger auf ein anwendungsspezifisches Kontextobjekt, das der gesendeten Nachricht zugeordnet werden soll.
Rückgabewerte
WEAVE_ERROR_INVALID_ARGUMENT
wenn ein ungültiges Argument an diese SendMessage API übergeben wurde.
WEAVE_ERROR_SEND_THROTTLED
ob dieser Austauschkontext bei Verwendung des zuverlässigen Weave-Messaging-Protokolls gedrosselt wurde.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
wenn es eine Abweichung zwischen dem spezifischen Sendevorgang und der unterstützten Version des Weave-Nachrichtenprotokolls gibt. Dieser Fehler tritt beispielsweise auf, wenn versucht wird, die Semantik von Weave Reliable Messaging zu testen und die Version des Weave-Nachrichtenprotokolls V1 ist.
WEAVE_ERROR_NOT_CONNECTED
Der Kontext wurde mit einer Verbindung verknüpft, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
wenn der Status des Exchange-Kontexts falsch ist.
WEAVE_NO_ERROR
ob die Weave-Schicht die Nachricht erfolgreich an die Netzwerkschicht gesendet hat.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Legt fest, ob eine Bestätigung an den Peer auf dieser Anzeigenplattform zurückgesendet werden muss.

Details
Parameter
[in] inAckPending
Ein boolescher Wert, der angibt, ob als Antwort auf eine empfangene Nachricht eine Bestätigung (true) oder nicht (false) zurückgegeben werden soll.

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Legen Sie fest, ob der mit dem Exchange verknüpfte Verschlüsselungsschlüssel freigegeben werden soll, wenn der Datenpool freigegeben wird.

Details
Parameter
[in] autoReleaseKey
„True“, wenn der Nachrichtenverschlüsselungsschlüssel automatisch freigegeben werden soll.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Legen Sie fest, ob beim Senden einer Nachricht eine Bestätigung angefordert werden soll.

Details
Parameter
[in] autoReqAck
Ein boolescher Wert, der angibt, ob beim Senden einer Nachricht eine Bestätigung angefordert werden soll.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Legen Sie das Bit für das Flag kFlagConnectionClosed fest.

Dieses Flag wird gesetzt, wenn eine WeaveConnection, die mit einem ExchangeContext verknüpft ist, geschlossen wird.

Details
Parameter
[in] inConnectionClosed
Ein boolescher Wert, der angibt, ob der Kontext einer Verbindung (true) oder nicht (false) zugeordnet wurde.

SetDropAck

void SetDropAck(
  bool inDropAck
)

Legen Sie fest, ob WeaveExchangeManager für diesen Kontext keine Bestätigungen senden soll.

Nur zur internen Fehlerbehebung.

Details
Parameter
[in] inDropAck
Ein boolescher Wert, der angibt, ob (true) oder nicht (false) die Bestätigungen für den Austausch gesendet werden sollen.

SetInitiator

void SetInitiator(
  bool inInitiator
)

Legen Sie das kFlagInitiator-Flag-Bit fest.

Dieses Flag wird von dem Knoten gesetzt, der einen Austausch initiiert.

Details
Parameter
[in] inInitiator
Boolescher Wert, der angibt, ob der Kontext der Initiator der Börse ist (true) oder nicht (false).

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Legt fest, ob eine Nachricht vom Peer auf dieser Anzeigenplattform empfangen wurde.

Details
Parameter
[in] inMsgRcvdFromPeer
Ein boolescher Wert, der angibt, ob (true) oder nicht (false) eine Nachricht vom Peer in diesem Austauschkontext empfangen wurde.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Legt fest, ob in der letzten Nachricht, die in diesem Austausch empfangen wurde, eine Bestätigung angefordert wurde.

Details
Parameter
[in] inPeerRequestedAck
Ein boolescher Wert, der angibt, ob in der zuletzt empfangenen Nachricht eine Bestätigung angefordert wurde (true) oder nicht (false).

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Legen Sie fest, ob in diesem Austausch eine Antwort erwartet wird.

Details
Parameter
[in] inResponseExpected
Ein boolescher Wert, der angibt, ob bei diesem Austausch eine Antwort erwartet wird (true) oder nicht (false).

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Legen Sie fest, ob die mit der Anzeigenplattform verknüpfte Weave-Verbindung getrennt werden soll, wenn die Börse freigegeben wird.

Details
Parameter
[in] autoReleaseCon
Dieser Wert ist auf „True“ gesetzt, wenn die Weave-Verbindung automatisch getrennt werden soll.

SetupTrickleRetransmit

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

Richten Sie den Mechanismus für die erneute Übertragung ein, indem Sie das entsprechende Wiederholungsintervall und den Grenzwert für die erneute Übertragung festlegen.

Details
Parameter
[in] retransInterval
Das Intervall für die erneute Übertragung des Trickle-Rebroadcast-Algorithmus.
[in] threshold
Die maximale Häufigkeit, mit der eine Nachricht erneut gesendet wird.
[in] timeout
Die maximale Wartezeit, bevor der Timer für die erneute Übertragung von Trickle abgebrochen wird.
Rückgabe
WEAVE_NO_ERROR, wenn die Trickle-Einrichtung erfolgreich war. Andernfalls wird ein INET_ERROR einem WEAVE_ERROR zugeordnet.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Gibt zurück, ob die mit dem Exchange verknüpfte Weave-Verbindung getrennt werden soll, wenn der Austausch freigegeben wird.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

Legen Sie fest, ob WeaveExchangeManager keine Bestätigung senden soll.

Nur zur internen Fehlerbehebung.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Starten Sie den Timer-Mechanismus des Trickle-Rebroadcast-Algorithmus für eine erneute Übertragung.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg; sonst wird ein INET_ERROR einem WEAVE_ERROR zugeordnet.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Löschen Sie den Übertragungsmechanismus von Trickle, indem Sie die regelmäßigen Timer in Trickle abbrechen und den Nachrichtenpuffer mit der Weave-Nachricht freigeben.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Gibt zurück, ob ausgehende Nachrichten, die über den Exchange gesendet wurden, über den lokalen sitzungsspezifischen UDP-Port gesendet werden sollen.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Senden Sie eine Nachricht mit verzögerter Zustellung, um einen Absenderknoten darüber zu informieren, dass es bei der zuvor gesendeten Nachricht zu einer erwarteten Verzögerung kommen würde, bevor sie an den Empfänger zugestellt wird.

Eine der möglichen Ursachen für Verzögerungen bei der Zustellung von Nachrichten ist, dass der Endknoten des Empfängers inaktiv ist. Diese Nachricht wird möglicherweise von einem geeigneten Zwischenknoten im Sendepfad generiert, der über ausreichend Wissen über den Empfänger verfügt, um auf die verzögerte Zustellung zurückzuleiten. Nach Erhalt dieser Nachricht hat der Absender die Timer für die erneute Übertragung für Nachrichten angepasst, die Bestätigungen zurückfordern.

Details
Parameter
[in] pauseTimeMillis
Die Zeit (in Millisekunden), um die die zuvor gesendete Nachricht voraussichtlich verzögert wird, bevor sie zugestellt wird.
[in] delayedNodeId
Die Knoten-ID des Peer-Knotens, an den die Nachrichtenübermittlung verzögert würde.
Rückgabewerte
WEAVE_ERROR_INVALID_ARGUMENT
wenn ein ungültiges Argument an diese SendMessage API übergeben wurde.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
wenn es eine Abweichung zwischen dem spezifischen Sendevorgang und der unterstützten Version des Weave-Nachrichtenprotokolls gibt. Dieser Fehler tritt beispielsweise auf, wenn versucht wird, die Semantik von Weave Reliable Messaging zu testen und die Version des Weave-Nachrichtenprotokolls V1 ist.
WEAVE_ERROR_NOT_CONNECTED
Der Kontext wurde mit einer Verbindung verknüpft, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
wenn der Status des Exchange-Kontexts falsch ist.
WEAVE_NO_ERROR
ob die Weave-Schicht die Nachricht erfolgreich an die Netzwerkschicht gesendet hat.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Senden Sie eine Throttle Flow-Nachricht an den Peer-Knoten und fordern Sie ihn auf, das Senden von Nachrichten zu drosseln.

Details
Parameter
[in] pauseTimeMillis
Die Zeit (in Millisekunden), während der der Empfänger das Senden drosselt.
Rückgabewerte
WEAVE_ERROR_INVALID_ARGUMENT
Wenn ein ungültiges Argument an diese SendMessage API übergeben wurde.
WEAVE_ERROR_SEND_THROTTLED
Ob dieser Austauschkontext bei Verwendung des zuverlässigen Weave-Messaging-Protokolls gedrosselt wurde.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Bei einer Abweichung zwischen dem spezifischen Sendevorgang und der unterstützten Version des Weave-Nachrichtenprotokolls. Dieser Fehler tritt beispielsweise auf, wenn versucht wird, die Semantik von Weave Reliable Messaging zu testen und die Version des Weave-Nachrichtenprotokolls V1 ist.
WEAVE_ERROR_NOT_CONNECTED
Ob der Kontext mit einer Verbindung verknüpft wurde, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
Wenn der Status des Anzeigenplattformkontexts falsch ist.
WEAVE_NO_ERROR
Ob die Weave-Schicht die Nachricht erfolgreich an die Netzwerkschicht gesendet hat.