nl::Weave::ExchangeKontext

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

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

Fazit

Es werden Methoden für die Codierung und Kommunikation von Weave-Nachrichten in einem ExchangeContext über verschiedene Transportmechanismen wie TCP, UDP oder Weave Trusted Messaging definiert.

Ö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) Typdef
void(*
Diese Funktion ist der Callback der Anwendung, der aufgerufen wird, wenn eine vorhandene Weave-Verbindung geschlossen wurde.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) Typdef
void(*
Typ der Funktion zur Umgang mit Fehlermeldungen.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) Typdef
void(*
Diese Funktion ist der Anwendungs-Callback für die Verarbeitung einer empfangenen Weave-Nachricht.
ResponseTimeoutFunct)(ExchangeContext *ec) Typdef
void(*
Diese Funktion ist der Callback der Anwendung, der ausgelöst wird, wenn das Zeitlimit für den Empfang einer Antwortnachricht abgelaufen ist.
RetransmissionTimeoutFunct)(ExchangeContext *ec) Typdef
void(*
Diese Funktion ist der Callback der Anwendung, der abläuft, wenn das Zeitlimit für die erneute Übertragung einer zuvor gesendeten Nachricht abgelaufen ist.
Timeout Typdef
uint32_t
Typ für die Zeitüberschreitung in ExchangeContext in Millisekunden.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) Typdef
void(*
Diese Funktion ist der Anwendungsrückruf, der aufgerufen wird, wenn eine Bestätigung für eine Weave-Nachricht empfangen wird, die eine als Teil des Weave Trusted Messaging Protocol angefordert hat.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) Typdef
void(*
Diese Funktion ist der Callback der Anwendung, der aufgerufen wird, wenn eine Nachricht vom Typ „Drosselung“ oder „Verzögerte Zustellung“ im Rahmen des Weave Trusted Messaging Protocol empfangen wird.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) Typdef
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, ob doppelte Nachrichten für einen bestimmten Exchange zulässig sind.
AppState
void *
Mauszeiger auf anwendungsspezifisches Statusobjekt.
Con
[NUR LESEN] Verknüpfte Weave-Verbindung.
EncryptionType
uint8_t
Verschlüsselungstyp zum Senden einer Nachricht
ExchangeId
uint16_t
[NUR LESEN] ID der zugewiesenen Anzeigenplattform.
ExchangeMgr
[NUR LESEN] Exchange-Manager ist Inhaber.
KeyId
uint16_t
Verschlüsselungsschlüssel zum Senden einer Nachricht
OnAckRcvd
Rückruf der Anwendung für die erhaltene Bestätigung.
OnConnectionClosed
OnDDRcvd
Rückruf einer verzögerten Zustellung für die Anwendung.
OnKeyError
Diese Funktion ist der Callback der Anwendung, der aufgerufen wird, wenn eine wichtige Fehlermeldung vom Peer empfangen wurde.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Anwendungsrückruf für Fehler beim Senden.
OnThrottleRcvd
Callback der Anwendung für empfangene Drosselung.
PeerAddr
IPAddress
[NUR LESEN] IP-Adresse des Peer-Knotens.
PeerIntf
InterfaceId
[NUR LESEN] Schnittstelle für ausgehenden Traffic, der beim Senden von Nachrichten an den Peer verwendet wird.
PeerNodeId
uint64_t
[NUR LESEN] Knoten-ID des Peer-Knotens.
PeerPort
uint16_t
[NUR LESEN] Port des Peer-Knotens.
ResponseTimeout
Maximale Wartezeit bis zur Antwort in Millisekunden; 0 deaktiviert das Zeitlimit für Antworten.
RetransInterval
uint32_t
Zeit zwischen den Übertragungen (in Millisekunden); 0 deaktiviert die Übertragung.
mMsgProtocolVersion
uint16_t
Version des Nachrichtenprotokolls für ExchangeContext
mWRMPConfig
WRMP-Konfiguration.

Öffentliche Funktionen

Abort(void)
void
Den Exchange-Kontext sofort abbrechen und alle Verweise darauf freigeben
AddRef(void)
void
Erhöhen Sie den Referenzzähler für den Exchange-Kontext um eins.
AutoRequestAck() const
bool
Gibt an, ob eine Bestätigung angefordert werden soll, wenn eine Nachricht gesendet wird.
CancelRetrans(void)
void
Brechen Sie den Trickle-Übertragungsmechanismus ab.
Close(void)
void
Exchange-Kontext wurde korrekt geschlossen.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Codieren Sie den Exchange-Header in einen Nachrichtenzwischenspeicher.
GetAutoReleaseKey() const
bool
Gibt zurück, ob der mit der Anzeigenplattform verknüpfte Verschlüsselungsschlüssel freigegeben werden soll, wenn der Datenpool freigegeben wird.
GetCurrentRetransmitTimeout(void)
uint32_t
Aktuelle Zeitüberschreitung für erneute Übertragung abrufen.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Erstellt einen String, der den Peer-Knoten und die zugehörigen Adressen-/Verbindungsinformationen beschreibt.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Verarbeiten Sie Mitteilung zugunsten von Anzeigenplattformen.
HasPeerRequestedAck(void) const
bool
Finden Sie heraus, ob ein Peer die Bestätigung für mindestens eine Nachricht auf dieser Anzeigenplattform angefordert hat.
HasRcvdMsgFromPeer(void) const
bool
Legen Sie fest, ob mindestens eine Nachricht von dieser Peer-Gruppe an dieser Anzeigenplattform empfangen wurde.
IsAckPending(void) const
bool
Stellen Sie fest, ob bereits eine Bestätigung ausstehend ist, die an den Peer dieser Exchange gesendet wird.
IsConnectionClosed(void) const
bool
Bestimmen Sie, ob dem ExchangeContext eine aktive WeaveConnection zugeordnet ist.
IsInitiator(void) const
bool
Legen Sie fest, ob der Kontext Initiator der Anzeigenplattform ist.
IsResponseExpected(void) const
bool
Legt fest, ob eine Antwort für Nachrichten gesendet wird, die über diese Anzeigenplattform gesendet werden.
Release(void)
void
Verweis auf diesen Kontext der Anzeigenplattform veröffentlichen
SendCommonNullMessage(void)
Sende eine Common::Null-Nachricht.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Sende eine Weave-Nachricht auf dieser Anzeigenplattform.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Sende eine Weave-Nachricht auf dieser Anzeigenplattform.
SetAckPending(bool inAckPending)
void
Legen Sie fest, ob eine Bestätigung an den Peer der Anzeigenplattform gesendet werden soll.
SetAutoReleaseKey(bool autoReleaseKey)
void
Legen Sie fest, ob der mit der Anzeigenplattform verknüpfte Verschlüsselungsschlüssel freigegeben werden soll, wenn der Datenpool freigegeben wird.
SetAutoRequestAck(bool autoReqAck)
void
Legt fest, ob eine Bestätigung beim Senden einer Nachricht angefordert werden soll.
SetConnectionClosed(bool inConnectionClosed)
void
Legen Sie das Flag „kFlagConnectionClosed“ fest.
SetDropAck(bool inDropAck)
void
Legt fest, ob WeaveExchangeManager keine Bestätigungen für diesen Kontext senden soll.
SetInitiator(bool inInitiator)
void
Legt das kFlagInitiator-Flag-Bit fest.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Legen Sie fest, ob eine Nachricht vom Peer auf dieser Anzeigenplattform empfangen wurde.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Damit legen Sie fest, ob für die letzte auf dieser Anzeigenplattform eingegangene Nachricht eine Bestätigung angefordert wurde.
SetResponseExpected(bool inResponseExpected)
void
Legt fest, ob auf dieser Anzeigenplattform eine Antwort erwartet wird.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Legen Sie fest, ob die mit der Anzeigenplattform verknüpfte Weave-Verbindung freigegeben werden soll, wenn der Austausch freigegeben wird.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Richten Sie den Trick-Mechanismus für die erneute Übertragung ein, indem Sie das entsprechende Übertragungsintervall und den Grenzwert für die erneute Übertragung festlegen.
ShouldAutoReleaseConnection() const
bool
Geben Sie an, ob die mit der Anzeigenplattform verknüpfte Weave-Verbindung freigegeben werden soll, wenn der Austausch beendet ist.
ShouldDropAck(void) const
bool
Legen Sie fest, ob WeaveExchangeManager keine Bestätigung senden soll.
StartTimerT(void)
Starten Sie den Trickle-Algorithmus für die erneute Übertragung des Timers.
TeardownTrickleRetransmit(void)
void
Reißen Sie den Trickle-Transmission-Mechanismus ab, indem Sie die regelmäßigen Timer innerhalb von Trickle abbrechen und den Nachrichtenpuffer freigeben, der die Weave-Nachricht enthält.
UseEphemeralUDPPort(void) const
bool
Gibt an, ob ausgehende Nachrichten, die über die Anzeigenplattform gesendet werden, vom lokalen flüchtigen UDP-Port gesendet werden dürfen.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Verspäteten Sie eine Nachricht für die verzögerte Zustellung, um einen Absenderknoten darüber zu informieren, dass es bei der zuvor gesendeten Nachricht zu einer erwarteten Verzögerung kommt, bevor sie an den Empfänger zugestellt wird.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Senden Sie eine Drosselungsmeldung an den Peer-Knoten, um dessen Drohung von Nachrichten zu drosseln.

Öffentliche Typen

@34

 @34
Attribute
kSendFlag_AlreadyEncoded

Gibt an, dass die Nachricht bereits codiert ist

kSendFlag_AutoRetrans

Gibt an, 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

Gibt an, dass das Senden der aktuellen Nachricht verzögert werden muss.

kSendFlag_ExpectResponse

Gibt an, dass eine Antwort innerhalb eines bestimmten Zeitlimits erwartet wird.

kSendFlag_FromInitiator

Gibt an, dass die aktuelle Nachricht der Initiator der Anzeigenplattform ist.

kSendFlag_MulticastFromLinkLocal

Eingestellter Alias für kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Funktion zur Bestätigung der automatischen Anfrage beim Senden einer Nachricht unterdrücken

kSendFlag_RequestAck

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

kSendFlag_RetainBuffer

Gibt an, dass der Nachrichtenpuffer nach dem Senden nicht freigegeben werden soll

kSendFlag_RetransmissionTrickle

Hiermit wird angegeben, ob ein erneutes Übertragen von Trickle erforderlich ist.

kSendFlag_ReuseMessageId

Gibt an, dass die Nachrichten-ID im Nachrichtenheader wiederverwendet werden kann.

kSendFlag_ReuseSourceId

Gibt an, 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

Verbindung geschlossen

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

Diese Funktion ist der Callback der Anwendung, der aufgerufen wird, wenn eine vorhandene Weave-Verbindung geschlossen wurde.

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

KeyErrorFunct

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

Typ der Funktion zur Umgang mit Fehlermeldungen.

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

Nachricht empfangen

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

Diese Funktion ist der Anwendungs-Callback für die Verarbeitung einer empfangenen Weave-Nachricht.

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

Antwortzeitüberschreitung

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

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

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

Zeit bis zur erneuten Übertragung

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Diese Funktion ist der Callback der Anwendung, der abläuft, wenn das Zeitlimit für die erneute Übertragung einer zuvor gesendeten Nachricht abgelaufen ist.

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

Zeitlimit

uint32_t Timeout

Typ für die Zeitüberschreitung in ExchangeContext in Millisekunden.

WRMPAckRcvd

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

Diese Funktion ist der Anwendungsrückruf, der aufgerufen wird, wenn eine Bestätigung für eine Weave-Nachricht empfangen wird, die eine als Teil des Weave Trusted Messaging Protocol angefordert hat.

Details
Parameter
[in] ec
Ein Zeiger auf das ExchangeContext-Objekt.
[in] msgCtxt
Der Mauszeiger auf ein bestimmtes Kontextobjekt, das der ursprünglichen Nachricht zugeordnet ist.

WRMPPauseRcvdFunct

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

Diese Funktion ist der Callback der Anwendung, der aufgerufen wird, wenn eine Nachricht vom Typ „Drosselung“ oder „Verzögerte Zustellung“ im Rahmen des Weave Trusted Messaging Protocol empfangen wird.

Jede dieser Nachrichten ist mit einem Zeitwert (in Millisekunden) verknüpft, der angibt, wie lange das Senden von Weave-Nachrichten in diesem ExchangeContext pausiert wird.

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

WRMPSendenFehler

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 ExchangeContext-Objekt.
[in] err
Der WEAVE_ERROR-Typ, der beim Senden der Nachricht aufgetreten ist.
[in] msgCtxt
Der Mauszeiger auf ein bestimmtes Kontextobjekt, das mit der ursprünglichen Nachricht verknüpft ist, zu der ein Bericht erstellt wird

Öffentliche Attribute

Duplizierte Nachrichten zulassen

bool AllowDuplicateMsgs

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

App-Status

void * AppState

Mauszeiger auf anwendungsspezifisches Statusobjekt.

Nachteile

WeaveConnection * Con

[NUR LESEN] Verknüpfte Weave-Verbindung.

EncryptionType

uint8_t EncryptionType

Verschlüsselungstyp zum Senden einer Nachricht

Anzeigenplattform-ID

uint16_t ExchangeId

[NUR LESEN] ID der zugewiesenen Anzeigenplattform.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[NUR LESEN] Exchange-Manager ist Inhaber.

KeyId

uint16_t KeyId

Verschlüsselungsschlüssel zum Senden einer Nachricht

OnAccr

WRMPAckRcvdFunct OnAckRcvd

Rückruf der Anwendung für die erhaltene Bestätigung.

OnConnectionGeschlossen

ConnectionClosedFunct OnConnectionClosed

DRDRVD

WRMPPauseRcvdFunct OnDDRcvd

Rückruf einer verzögerten Zustellung für die Anwendung.

OnKeyFehler

KeyErrorFunct OnKeyError

Diese Funktion ist der Callback der Anwendung, der aufgerufen wird, wenn eine wichtige Fehlermeldung vom Peer empfangen wurde.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

Zeitlimit für OnResponse

ResponseTimeoutFunct OnResponseTimeout

Zeitlimit für erneute Übertragung

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Anwendungsrückruf für Fehler beim Senden.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Callback der Anwendung für empfangene Drosselung.

Peer-Add-in

IPAddress PeerAddr

[NUR LESEN] IP-Adresse des Peer-Knotens.

Peer-Intf

InterfaceId PeerIntf

[NUR LESEN] Schnittstelle für ausgehenden Traffic, der beim Senden von Nachrichten an den Peer verwendet wird.

Dies ist nur für UDP sinnvoll.

PeerNode-ID

uint64_t PeerNodeId

[NUR LESEN] Knoten-ID des Peer-Knotens.

Peer-Port

uint16_t PeerPort

[NUR LESEN] Port des Peer-Knotens.

Zeitüberschreitung der Antwort

Timeout ResponseTimeout

Maximale Wartezeit bis zur Antwort in Millisekunden; 0 deaktiviert das Zeitlimit für Antworten.

TransIntervall

uint32_t RetransInterval

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

mMsgProtokollVersion

uint16_t mMsgProtocolVersion

Version des Nachrichtenprotokolls für ExchangeContext

mWRMPConfig

WRMPConfig mWRMPConfig

WRMP-Konfiguration.

Öffentliche Funktionen

Abbrechen

void Abort(
  void
)

Den Exchange-Kontext sofort abbrechen und alle Verweise darauf freigeben

Hinzufügen Ref

void AddRef(
  void
)

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

AutoRequestAck

bool AutoRequestAck() const 

Gibt an, ob eine Bestätigung angefordert werden soll, wenn eine Nachricht gesendet wird.

Abbrechen

void CancelRetrans(
  void
)

Brechen Sie den Trickle-Übertragungsmechanismus ab.

Schließen

void Close(
  void
)

Exchange-Kontext wurde korrekt geschlossen.

Durch diesen Aufruf wird die Referenzanzahl verringert und die Anzeigenplattform freigegeben, sobald die Referenzanzahl auf null fällt.

CodiererExchHeader

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

Codieren Sie den Exchange-Header in einen Nachrichtenzwischenspeicher.

Details
Parameter
[in] exchangeHeader
Ein Zeiger auf das Weave Exchange-Header-Objekt.
[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 benötigt wird.
[in] sendFlags
Flags, die von der Anwendung für die gesendete Weave-Nachricht festgelegt wurden.
Rückgabewerte
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn der Nachrichtenpuffer nicht genügend Speicherplatz für die Codierung des Exchange-Headers hat
WEAVE_NO_ERROR
Wenn die Codierung der Nachricht erfolgreich war.

Automatisch abrufen

bool GetAutoReleaseKey() const 

Gibt zurück, ob der mit der Anzeigenplattform verknüpfte Verschlüsselungsschlüssel freigegeben werden soll, wenn der Datenpool freigegeben wird.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Aktuelle Zeitüberschreitung für erneute Übertragung abrufen.

Es wäre entweder die anfängliche oder die Zeitüberschreitung beim erneuten Senden, je nachdem, ob ExchangeContext einen aktiven Nachrichtenaustausch mit seinem Peer hat.

Details
Rückgabe
aktuelle Sendezeit.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

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

Details
Parameter
[in] buf
Ein Zeiger auf einen Zwischenspeicher, in den der String geschrieben werden soll. Der zur Verfügung gestellte Puffer sollte mindestens so groß sein wie „kGetPeerDescription_MaxLength“. Bei Angabe eines kleineren Puffers wird der String abgeschnitten. Die Ausgabe enthält in allen Fällen ein NUL-Endzeichen.
[in] bufSize
Die Größe des Zwischenspeichers, auf den buf verweist.

HandleTrickleMessage (HandleTrickleMessage)

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

Verarbeiten Sie Mitteilung zugunsten von Anzeigenplattformen.

Details
Parameter
[in] pktInfo
Ein Zeiger auf das IPPacketInfo-Objekt.
[in] msgInfo
Ein Hinweis auf die Weave-Nachrichtenstruktur.

HasPeerRequest Ack

bool HasPeerRequestedAck(
  void
) const 

Finden Sie heraus, ob ein Peer die Bestätigung für mindestens eine Nachricht auf dieser Anzeigenplattform angefordert hat.

Details
Rückgabe
Gibt 'true' zurück, wenn Bestätigung angefordert wird, andernfalls 'false'

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Legen Sie fest, ob mindestens eine Nachricht von dieser Peer-Gruppe an dieser Anzeigenplattform empfangen wurde.

Details
Rückgabe
Gibt 'true' zurück, wenn die Nachricht empfangen wurde, andernfalls 'false'

IsAckAusstehend

bool IsAckPending(
  void
) const 

Stellen Sie fest, ob bereits eine Bestätigung ausstehend ist, die an den Peer dieser Exchange gesendet wird.

IsConnectionClosed (IsConnectionClosed)

bool IsConnectionClosed(
  void
) const 

Bestimmen Sie, ob dem ExchangeContext eine aktive WeaveConnection zugeordnet ist.

Details
Rückgabe
Gibt 'true' zurück, wenn die Verbindung beendet ist, andernfalls 'false'.

Initiator

bool IsInitiator(
  void
) const 

Legen Sie fest, ob der Kontext Initiator der Anzeigenplattform ist.

Details
Rückgabe
Gibt 'true' zurück, wenn es der Initiator ist, andernfalls ##9;false'

Antwort erwartet

bool IsResponseExpected(
  void
) const 

Legt fest, ob eine Antwort für Nachrichten gesendet wird, die über diese Anzeigenplattform gesendet werden.

Details
Rückgabe
Gibt 'true' zurück, wenn eine Antwort erwartet wird, andernfalls 'false'

Release

void Release(
  void
)

Verweis auf diesen Kontext der Anzeigenplattform veröffentlichen

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

Nachricht CommonCommonMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Sende eine Common::Null-Nachricht.

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

Nachricht senden

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

Sende eine Weave-Nachricht auf dieser Anzeigenplattform.

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
Flags, die von der Anwendung für die gesendete Weave-Nachricht festgelegt wurden.
[in] msgCtxt
Ein Zeiger auf ein anwendungsspezifisches Kontextobjekt, das der zu sendenden Nachricht zugeordnet werden soll.
Rückgabewerte
WEAVE_ERROR_INVALID_ARGUMENT
Ein ungültiges Argument wurde an die SendMessage API übergeben.
WEAVE_ERROR_SEND_THROTTLED
wenn dieser Exchange-Kontext gedrosselt wurde, wenn das zuverlässige Weave-Messaging-Protokoll verwendet wird.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Es gibt eine Abweichung beim spezifischen Sendevorgang und der unterstützten Weave-Nachrichtenprotokollversion. Dieser Fehler würde beispielsweise auftreten, wenn die Weave-Zuverlässigkeits-Messaging-Semantik versucht wird, wenn die Weave-Nachricht-Protokollversion V1 ist.
WEAVE_ERROR_NOT_CONNECTED
wenn der Kontext mit einer Verbindung verknüpft war, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
wenn der Status des Exchange-Kontexts falsch ist.
WEAVE_NO_ERROR
wenn die Weave-Ebene die Nachricht erfolgreich an die Netzwerkebene gesendet hat.

Nachricht senden

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

Sende eine Weave-Nachricht auf dieser Anzeigenplattform.

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
Flags, die von der Anwendung für die gesendete Weave-Nachricht festgelegt wurden.
[in] msgInfo
Ein Zeiger auf das WeaveMessageInfo-Objekt.
[in] msgCtxt
Ein Zeiger auf ein anwendungsspezifisches Kontextobjekt, das der zu sendenden Nachricht zugeordnet werden soll.
Rückgabewerte
WEAVE_ERROR_INVALID_ARGUMENT
Ein ungültiges Argument wurde an die SendMessage API übergeben.
WEAVE_ERROR_SEND_THROTTLED
wenn dieser Exchange-Kontext gedrosselt wurde, wenn das zuverlässige Weave-Messaging-Protokoll verwendet wird.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Es gibt eine Abweichung beim spezifischen Sendevorgang und der unterstützten Weave-Nachrichtenprotokollversion. Dieser Fehler würde beispielsweise auftreten, wenn die Weave-Zuverlässigkeits-Messaging-Semantik versucht wird, wenn die Weave-Nachricht-Protokollversion V1 ist.
WEAVE_ERROR_NOT_CONNECTED
wenn der Kontext mit einer Verbindung verknüpft war, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
wenn der Status des Exchange-Kontexts falsch ist.
WEAVE_NO_ERROR
wenn die Weave-Ebene die Nachricht erfolgreich an die Netzwerkebene gesendet hat.

SetAck ausstehend

void SetAckPending(
  bool inAckPending
)

Legen Sie fest, ob eine Bestätigung an den Peer der Anzeigenplattform gesendet werden soll.

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

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

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

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

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

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

Details
Parameter
[in] autoReqAck
Ein boolescher Wert, der angibt, ob eine Bestätigung angefordert werden soll, wenn eine Nachricht gesendet wird.

SetConnectionGeschlossen

void SetConnectionClosed(
  bool inConnectionClosed
)

Legen Sie das Flag „kFlagConnectionClosed“ fest.

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

Details
Parameter
[in] inConnectionClosed
Ein boolescher Wert, der angibt, ob der Kontext (wahr) oder nicht (falsch) einer Verbindung zugeordnet ist.

SetDrop-Angriffe

void SetDropAck(
  bool inDropAck
)

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

Nur für die interne Fehlerbehebung.

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

Initiator festlegen

void SetInitiator(
  bool inInitiator
)

Legt das kFlagInitiator-Flag-Bit fest.

Dieses Flag wird von dem Knoten festgelegt, der eine Anzeigenplattform initiiert.

Details
Parameter
[in] inInitiator
Ein boolescher Wert, der angibt, ob der Kontext (wahr) oder nicht (falsch) der Initiator der Anzeigenplattform ist.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

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

Details
Parameter
[in] inMsgRcvdFromPeer
Ein boolescher Wert, der angibt, ob eine Nachricht vom Peer in diesem Exchange-Kontext empfangen wurde (wahr) oder nicht (falsch).

SetPeerAngefragt

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Damit legen Sie fest, ob für die letzte auf dieser Anzeigenplattform eingegangene Nachricht eine Bestätigung angefordert wurde.

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

Erwartete Antwort

void SetResponseExpected(
  bool inResponseExpected
)

Legt fest, ob auf dieser Anzeigenplattform eine Antwort erwartet wird.

Details
Parameter
[in] inResponseExpected
Ein boolescher Wert, der angibt, ob auf dieser Anzeigenplattform eine Antwort erwartet wird (wahr) oder nicht (falsch).

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

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

Details
Parameter
[in] autoReleaseCon
Wahr, wenn die Weave-Verbindung automatisch freigegeben werden soll.

EinrichtenTrickleRetransmit

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

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

Details
Parameter
[in] retransInterval
Das Wiederholungsintervall des Trickle-Algorithmus für die erneute Übertragung.
[in] threshold
Die maximale Häufigkeit, mit der eine Nachricht erneut gesendet wird.
[in] timeout
Die maximale Wartezeit bis zum Abbrechen des Timers für die erneute Übertragung.
Rückgabe
WEAVE_NO_ERROR, wenn die Trickle-Einrichtung erfolgreich war. Andernfalls wurde ein INET_ERROR zu einem WEAVE_ERROR zugeordnet.

Sollte AutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Geben Sie an, ob die mit der Anzeigenplattform verknüpfte Weave-Verbindung freigegeben werden soll, wenn der Austausch beendet ist.

Schulterfall

bool ShouldDropAck(
  void
) const 

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

Nur für die interne Fehlerbehebung.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Starten Sie den Trickle-Algorithmus für die erneute Übertragung des Timers.

Details
Rückgabe
WEAVE_NO_ERROR, wenn erfolgreich, andernfalls ein INET_ERROR, der einem WEAVE_ERROR zugeordnet ist.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Reißen Sie den Trickle-Transmission-Mechanismus ab, indem Sie die regelmäßigen Timer innerhalb von Trickle abbrechen und den Nachrichtenpuffer freigeben, der die Weave-Nachricht enthält.

EphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Gibt an, ob ausgehende Nachrichten, die über die Anzeigenplattform gesendet werden, vom lokalen flüchtigen UDP-Port gesendet werden dürfen.

WRMP-Flush-Geräte

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedAuslieferung

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Verspäteten Sie eine Nachricht für die verzögerte Zustellung, um einen Absenderknoten darüber zu informieren, dass es bei der zuvor gesendeten Nachricht zu einer erwarteten Verzögerung kommt, bevor sie an den Empfänger zugestellt wird.

Einer der möglichen Gründe dafür, dass Nachrichten vor der Zustellung verzögert werden, ist der Ruhemodus-Endpunkt des Empfängers. Diese Nachricht wird möglicherweise von einem geeigneten Zwischenknoten im Sendepfad generiert, der genügend Informationen zum Empfänger hat, um Rückschlüsse auf die verzögerte Zustellung zu ziehen. Wenn sie diese Nachricht erhalten, wird der Absender ihre Timer für Nachrichten, die eine Bestätigung zurücksenden sollen, entsprechend angepasst.

Details
Parameter
[in] pauseTimeMillis
Die Zeit (in Millisekunden), nach der die zuvor gesendete Nachricht möglicherweise verzögert wird, bevor sie zugestellt wird.
[in] delayedNodeId
Die Knoten-ID des Peer-Knotens, an den die Nachrichtenübermittlung verzögert wird.
Rückgabewerte
WEAVE_ERROR_INVALID_ARGUMENT
Ein ungültiges Argument wurde an die SendMessage API übergeben.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Es gibt eine Abweichung beim spezifischen Sendevorgang und der unterstützten Weave-Nachrichtenprotokollversion. Dieser Fehler würde beispielsweise auftreten, wenn die Weave-Zuverlässigkeits-Messaging-Semantik versucht wird, wenn die Weave-Nachricht-Protokollversion V1 ist.
WEAVE_ERROR_NOT_CONNECTED
wenn der Kontext mit einer Verbindung verknüpft war, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
wenn der Status des Exchange-Kontexts falsch ist.
WEAVE_NO_ERROR
wenn die Weave-Ebene die Nachricht erfolgreich an die Netzwerkebene gesendet hat.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Senden Sie eine Drosselungsmeldung an den Peer-Knoten, um dessen Drohung von Nachrichten zu drosseln.

Details
Parameter
[in] pauseTimeMillis
Die Zeit (in Millisekunden), die der Empfänger voraussichtlich verlangsamt.
Rückgabewerte
WEAVE_ERROR_INVALID_ARGUMENT
Wenn ein ungültiges Argument an diese SendMessage API übergeben wurde.
WEAVE_ERROR_SEND_THROTTLED
Wenn dieser Exchange-Kontext gedrosselt wurde, wenn das Weave-zuverlässige Messaging-Protokoll verwendet wird
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Wenn der spezifische Sendevorgang nicht übereinstimmt und die unterstützte Weave-Nachrichtprotokollversion unterstützt wird. Dieser Fehler würde beispielsweise auftreten, wenn die Weave-Zuverlässigkeits-Messaging-Semantik versucht wird, wenn die Weave-Nachricht-Protokollversion V1 ist.
WEAVE_ERROR_NOT_CONNECTED
Wenn der Kontext mit einer Verbindung verknüpft war, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
Der Status des Anzeigenplattform-Kontexts ist falsch.
WEAVE_NO_ERROR
Wenn die Weave-Ebene die Nachricht erfolgreich an die Netzwerkebene gesendet hat.