nl::Weave::ExchangeContext

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

Diese Klasse repräsentiert eine laufende Unterhaltung (ExchangeContext) zwischen zwei oder mehr Knoten.

Zusammenfassung

Sie definiert Methoden für die Codierung und Kommunikation von Weave-Nachrichten innerhalb eines ExchangeContext über verschiedene Transportmechanismen, z. B. TCP, UDP oder Weave Zuverlässiges 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 Anwendungsrückruf, der ausgelöst wird, 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 Anwendungsrückruf, der ausgelöst wird, wenn das Zeitlimit für die erneute Übertragung einer zuvor gesendeten Nachricht abgelaufen ist.
Timeout typedef
uint32_t
Der Typ, mit dem das Zeitlimit in diesem ExchangeContext in Millisekunden angegeben wird.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Diese Funktion ist der Callback der Anwendung, der ausgelöst wird, wenn eine Bestätigung für eine Weave-Nachricht eingeht, die eine Anfrage als Teil des Weave Zuverlässig-Messaging-Protokolls 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 eine Delayed Delivery-Nachricht als Teil des Weave Zuverlässig Messaging Protocol empfangen wird.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Diese Funktion ist der Anwendungsrückruf, der ausgelöst wird, wenn beim Senden einer Weave-Nachricht ein Fehler auftritt.

Öffentliche Attribute

AllowDuplicateMsgs
bool
Boolescher Indikator, der angibt, ob doppelte Nachrichten für eine bestimmte Anzeigenplattform zulässig sind.
AppState
void *
Zeiger auf ein anwendungsspezifisches Statusobjekt.
Con
[READ ONLY] Zugeordnete Weave-Verbindung
EncryptionType
uint8_t
Verschlüsselungstyp, der beim Senden einer Nachricht verwendet werden soll.
ExchangeId
uint16_t
[READ ONLY] Zugewiesene Anzeigenplattform-ID
ExchangeMgr
[READ ONLY] Inhaber der Anzeigenplattform-Verwaltung
KeyId
uint16_t
Verschlüsselungsschlüssel, der beim Senden einer Nachricht verwendet werden soll.
OnAckRcvd
Anwendungs-Callback für empfangene Bestätigung.
OnConnectionClosed
OnDDRcvd
Anwendungs-Callback für empfangene Nachricht verzögerter Zustellung.
OnKeyError
Diese Funktion ist der Anwendungsrückruf, der ausgelöst wird, wenn eine Schlüsselfehlermeldung vom Peer 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 die Antwort (in Millisekunden); bei „0“ wird das Zeitlimit für Antworten deaktiviert.
RetransInterval
uint32_t
Zeit zwischen erneuten Übertragungen (in Millisekunden); bei „0“ sind erneute Übertragungen deaktiviert.
mMsgProtocolVersion
uint16_t
Message Protocol-Version für ExchangeContext.
mWRMPConfig
WRMP-Konfiguration.

Öffentliche Funktionen

Abort(void)
void
Brechen Sie den Exchange-Kontext sofort ab und geben Sie alle Verweise darauf frei.
AddRef(void)
void
Erhöhen Sie den Referenzzähler für den Austauschkontext um eins.
AutoRequestAck() const
bool
Gibt zurück, ob beim Senden einer Nachricht eine Bestätigung angefordert wird.
CancelRetrans(void)
void
Brechen Sie den Wiederholungsmechanismus ab.
Close(void)
void
Ordnungsgemäß schließen Sie einen Austauschkontext.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Codieren Sie den Austausch-Header in einen Nachrichtenpuffer.
GetAutoReleaseKey() const
bool
Gibt zurück, ob der mit dem Datenaustausch verknüpfte Verschlüsselungsschlüssel freigegeben werden soll, wenn der Datenaustausch 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
Verarbeitet „Trickle Message“ im Austauschkontext.
HasPeerRequestedAck(void) const
bool
Ermitteln Sie, ob ein Peer die Bestätigung für mindestens eine Nachricht auf diesem Austausch angefordert hat.
HasRcvdMsgFromPeer(void) const
bool
Ermitteln Sie, ob auf diesem Austausch mindestens eine Nachricht vom Peer empfangen wurde.
IsAckPending(void) const
bool
Prüfen Sie, ob bereits eine Bestätigung zum Senden an den Peer auf dieser Plattform aussteht.
IsConnectionClosed(void) const
bool
Ermitteln Sie, ob dem ExchangeContext eine aktive WeaveConnection zugeordnet ist.
IsInitiator(void) const
bool
Bestimmen Sie, ob der Kontext der Initiator des Austauschs ist.
IsResponseExpected(void) const
bool
Ermitteln Sie, ob auf Nachrichten, die über diesen Austausch gesendet wurden, eine Antwort erwartet wird.
Release(void)
void
Gib hier den Verweis auf diesen Anzeigenplattform-Kontext frei.
SendCommonNullMessage(void)
Eine Common::Null-Nachricht senden.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Weave-Nachricht zu diesem Austausch senden.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Weave-Nachricht zu diesem Austausch senden.
SetAckPending(bool inAckPending)
void
Legen Sie fest, ob eine Bestätigung an den Peer auf diesem Austausch zurückgeschickt werden muss.
SetAutoReleaseKey(bool autoReleaseKey)
void
Legen Sie fest, ob der mit dem Datenpool verknüpfte Verschlüsselungsschlüssel freigegeben werden soll, wenn der Datenaustausch freigegeben wird.
SetAutoRequestAck(bool autoReqAck)
void
Legt fest, ob beim Senden einer Nachricht eine Bestätigung angefordert werden soll.
SetConnectionClosed(bool inConnectionClosed)
void
Setzen Sie das Flag kFlagConnectionClosed.
SetDropAck(bool inDropAck)
void
Legen Sie fest, ob WeaveExchangeManager für diesen Kontext keine Bestätigungen senden soll.
SetInitiator(bool inInitiator)
void
Setzt das kFlagInitiator-Flag-Bit.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Legt fest, ob eine Nachricht vom Peer auf diesem Austausch empfangen wurde.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Wird festgelegt, wenn in der letzten über diesen Austausch erhaltenen Nachricht eine Bestätigung angefordert wurde.
SetResponseExpected(bool inResponseExpected)
void
Legen Sie fest, ob auf dieser Anzeigenplattform eine Antwort erwartet wird.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Legen Sie fest, ob die mit dem Anzeigenplattform verknüpfte Weave-Verbindung freigegeben werden soll, wenn der Anzeigenplattform freigegeben wird.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Richten Sie den Mechanismus für die erneute Übertragung (Trile-Retransmission) ein, indem Sie das entsprechende Wiederholungsintervall und den entsprechenden Grenzwert für die erneute Übertragung festlegen.
ShouldAutoReleaseConnection() const
bool
Gibt zurück, ob die mit dem Anzeigenplattform verknüpfte Weave-Verbindung freigegeben 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 für die regelmäßige Wiederübertragung des Trickle-Wiederbreitungs-Algorithmus.
TeardownTrickleRetransmit(void)
void
Fahre den Wiederübertragungsmechanismus des Trickle herunter, indem du die periodischen Timer innerhalb des Trickle-Vorgangs abbrichst und den Nachrichtenpuffer mit der Weave-Nachricht freigibst.
UseEphemeralUDPPort(void) const
bool
Gibt an, ob ausgehende Nachrichten, die über den Austausch 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 „Drosselung“-Nachricht an den Peer-Knoten, in dem Sie ihn auffordern, 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

Wird verwendet, um anzugeben, dass beim Senden von IPv6-Multicast-Nachrichten die Standardauswahl für IPv6-Quelladresse verwendet 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 innerhalb eines bestimmten Zeitlimits eine Antwort 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

Funktion zur Bestätigung von automatischen Anfragen beim Senden einer Nachricht unterdrücken.

kSendFlag_RequestAck

Wird zum Senden einer WRM-Nachricht verwendet, um eine Bestätigung anzufordern.

kSendFlag_RetainBuffer

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

kSendFlag_RetransmissionTrickle

Wird verwendet, um die Anforderung einer erneuten Übertragung für Trickle anzugeben.

kSendFlag_ReuseMessageId

Damit wird angegeben, 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, der von GetPeerDescription() zurückgegeben wird.

ConnectionClosedFunct

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

Diese Funktion ist der Anwendungsrückruf, der ausgelöst 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 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 ExchangeContext-Objekt.
[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 ExchangeContext-Objekt.
[in] pktInfo
Ein Zeiger auf das IPPacketInfo-Objekt.
[in] msgInfo
Ein Zeiger auf das WeaveMessageInfo-Objekt.
[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 ExchangeContext-Objekt.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Diese Funktion ist der Anwendungsrückruf, 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 ExchangeContext-Objekt.

Zeitlimit

uint32_t Timeout

Der Typ, mit dem das Zeitlimit in diesem ExchangeContext in Millisekunden angegeben wird.

WRMPAckRcvdFunct

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

Diese Funktion ist der Callback der Anwendung, der ausgelöst wird, wenn eine Bestätigung für eine Weave-Nachricht eingeht, die eine Anfrage als Teil des Weave Zuverlässig-Messaging-Protokolls angefordert hat.

Details
Parameter
[in] ec
Ein Zeiger auf das ExchangeContext-Objekt.
[in] msgCtxt
Ein Zeiger auf ein bestimmtes Kontextobjekt, das mit der ursprünglichen Nachricht verknüpft 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 eine Delayed Delivery-Nachricht als Teil des Weave Zuverlässig Messaging Protocol empfangen wird.

Zu jeder dieser Nachrichten ist ein Zeitwert (in Millisekunden) angegeben, der den Zeitraum angibt, für den das Senden von Weave-Nachrichten in diesem ExchangeContext pausiert werden soll.

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

WRMPSendErrorFunct

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

Diese Funktion ist der Anwendungsrückruf, der ausgelöst 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
Ein Zeiger auf ein bestimmtes Kontextobjekt, das mit der ursprünglichen Nachricht verknüpft ist, für die gemeldet wird.

Öffentliche Attribute

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Boolescher Indikator, der angibt, ob doppelte Nachrichten für eine bestimmte Anzeigenplattform zulässig sind.

AppState

void * AppState

Zeiger auf ein anwendungsspezifisches Statusobjekt.

Nachteile

WeaveConnection * Con

[READ ONLY] Zugeordnete Weave-Verbindung

EncryptionType

uint8_t EncryptionType

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

ExchangeId

uint16_t ExchangeId

[READ ONLY] Zugewiesene Anzeigenplattform-ID

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[READ ONLY] Inhaber der Anzeigenplattform-Verwaltung

KeyId

uint16_t KeyId

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

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Anwendungs-Callback für empfangene Bestätigung.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Anwendungs-Callback für empfangene Nachricht verzögerter Zustellung.

OnKeyError

KeyErrorFunct OnKeyError

Diese Funktion ist der Anwendungsrückruf, der ausgelöst wird, wenn eine Schlüsselfehlermeldung vom Peer 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 für UDP relevant.)

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 die Antwort (in Millisekunden); bei „0“ wird das Zeitlimit für Antworten deaktiviert.

RetransInterval

uint32_t RetransInterval

Zeit zwischen erneuten Übertragungen (in Millisekunden); bei „0“ sind erneute Übertragungen deaktiviert.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Message Protocol-Version für ExchangeContext.

mWRMPConfig

WRMPConfig mWRMPConfig

WRMP-Konfiguration.

Öffentliche Funktionen

Abbrechen

void Abort(
  void
)

Brechen Sie den Exchange-Kontext sofort ab und geben Sie alle Verweise darauf frei.

AddRef

void AddRef(
  void
)

Erhöhen Sie den Referenzzähler für den Austauschkontext um eins.

AutoRequestAck

bool AutoRequestAck() const 

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

CancelRetrans

void CancelRetrans(
  void
)

Brechen Sie den Wiederholungsmechanismus ab.

Schließen

void Close(
  void
)

Ordnungsgemäß schließen Sie einen Austauschkontext.

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

EncodeExchHeader

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

Codieren Sie den Austausch-Header in einen Nachrichtenpuffer.

Details
Parameter
[in] exchangeHeader
Ein Zeiger auf das Weave Exchange-Header-Objekt.
[in] profileId
Die Profil-ID der zu sendenden Weave-Nachricht.
[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
Von der Anwendung für die gesendete Weave-Nachricht festgelegte Flags.
Rückgabewerte
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn im Nachrichtenpuffer nicht genügend Speicherplatz für die Codierung des Austausch-Headers vorhanden ist.
WEAVE_NO_ERROR
Wenn die Codierung der Nachricht erfolgreich war.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

Gibt zurück, ob der mit dem Datenaustausch verknüpfte Verschlüsselungsschlüssel freigegeben werden soll, wenn der Datenaustausch 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 der Peer von ExchangeContext einen aktiven Nachrichtenaustausch hat.

Details
Rückgabe
die aktuelle Zeit für erneute Übertragungen.

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. Bei einem kleineren Puffer wird die Zeichenfolge entsprechend gekürzt. Die Ausgabe enthält in allen Fällen ein NUL-Beendigungszeichen.
[in] bufSize
Die Größe des Puffers, auf den durch "buf" gezeigt wird.

HandleTrickleMessage

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

Verarbeitet „Trickle Message“ im Austauschkontext.

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

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

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

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

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

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

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

IsAckPending

bool IsAckPending(
  void
) const 

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

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

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

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

IsInitiator

bool IsInitiator(
  void
) const 

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

Details
Rückgabe
Gibt "true" zurück, wenn dies der Initiator ist, andernfalls "false".

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Ermitteln Sie, ob auf Nachrichten, die über diesen Austausch gesendet wurden, eine Antwort erwartet wird.

Details
Rückgabe
Gibt "true" zurück, wenn die Antwort erwartet wird, andernfalls "false".

Release

void Release(
  void
)

Gib hier den Verweis auf diesen Anzeigenplattform-Kontext frei.

Wenn der Zähler auf eins gesunken ist, schließen Sie den Kontext, setzen alle Anwendungsrückrufe 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
)

Weave-Nachricht zu diesem Austausch senden.

Details
Parameter
[in] profileId
Die Profil-ID der zu sendenden Weave-Nachricht.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt mit der Weave-Nachricht.
[in] sendFlags
Von der Anwendung für die gesendete 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
Ein ungültiges Argument wurde an diese SendMessage API übergeben.
WEAVE_ERROR_SEND_THROTTLED
dieser Austauschkontext bei Verwendung des zuverlässigen Weave-Messaging-Protokolls gedrosselt wurde.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
wenn zwischen dem spezifischen Sendevorgang und der unterstützten Version des Weave-Nachrichtenprotokolls eine Diskrepanz besteht. Dieser Fehler wird beispielsweise generiert, wenn versucht wird, eine Weave-Zuverlässige-Messaging-Semantik zu verwenden, wenn Version 1 des Weave-Nachrichtenprotokolls verwendet wird.
WEAVE_ERROR_NOT_CONNECTED
wenn der Kontext mit einer Verbindung verknüpft war, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
Status des Anzeigenplattformkontexts ist falsch.
WEAVE_NO_ERROR
wenn die Weave-Ebene 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
)

Weave-Nachricht zu diesem Austausch senden.

Details
Parameter
[in] profileId
Die Profil-ID der zu sendenden Weave-Nachricht.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt mit der Weave-Nachricht.
[in] sendFlags
Von der Anwendung für die gesendete Weave-Nachricht festgelegte Flags.
[in] msgInfo
Ein Zeiger auf das WeaveMessageInfo-Objekt.
[in] msgCtxt
Ein Zeiger auf ein anwendungsspezifisches Kontextobjekt, das der gesendeten Nachricht zugeordnet werden soll.
Rückgabewerte
WEAVE_ERROR_INVALID_ARGUMENT
Ein ungültiges Argument wurde an diese SendMessage API übergeben.
WEAVE_ERROR_SEND_THROTTLED
dieser Austauschkontext bei Verwendung des zuverlässigen Weave-Messaging-Protokolls gedrosselt wurde.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
wenn zwischen dem spezifischen Sendevorgang und der unterstützten Version des Weave-Nachrichtenprotokolls eine Diskrepanz besteht. Dieser Fehler wird beispielsweise generiert, wenn versucht wird, eine Weave-Zuverlässige-Messaging-Semantik zu verwenden, wenn Version 1 des Weave-Nachrichtenprotokolls verwendet wird.
WEAVE_ERROR_NOT_CONNECTED
wenn der Kontext mit einer Verbindung verknüpft war, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
Status des Anzeigenplattformkontexts ist falsch.
WEAVE_NO_ERROR
wenn die Weave-Ebene die Nachricht erfolgreich an die Netzwerkschicht gesendet hat.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Legen Sie fest, ob eine Bestätigung an den Peer auf diesem Austausch zurückgeschickt werden muss.

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

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

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

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

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

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

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

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Setzen Sie das Flag kFlagConnectionClosed.

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

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

SetDropAck

void SetDropAck(
  bool inDropAck
)

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

Nur zur internen Verwendung.

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

SetInitiator

void SetInitiator(
  bool inInitiator
)

Setzt das kFlagInitiator-Flag-Bit.

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

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

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Legt fest, ob eine Nachricht vom Peer auf diesem Austausch empfangen wurde.

Details
Parameter
[in] inMsgRcvdFromPeer
Boolescher Wert, der angibt, ob (wahr) oder nicht (falsch) eine Nachricht vom Peer in diesem Austauschkontext empfangen wurde.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Wird festgelegt, wenn in der letzten über diesen Austausch erhaltenen Nachricht eine Bestätigung angefordert wurde.

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

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Legen Sie fest, ob auf dieser Anzeigenplattform eine Antwort erwartet wird.

Details
Parameter
[in] inResponseExpected
Boolescher Wert, der angibt, ob bei diesem Austausch eine Antwort (wahr) oder nicht (falsch) erwartet wird.

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

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

Details
Parameter
[in] autoReleaseCon
„True“, 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 (Trile-Retransmission) ein, indem Sie das entsprechende Wiederholungsintervall und den entsprechenden Grenzwert für die erneute Übertragung festlegen.

Details
Parameter
[in] retransInterval
Das Neuübertragungsintervall 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 (Trickle) abgebrochen wird.
Rückgabe
WEAVE_NO_ERROR, wenn das Trickle-Setup erfolgreich war, andernfalls wird ein INET_ERROR einem WEAVE_ERROR zugeordnet.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Gibt zurück, ob die mit dem Anzeigenplattform verknüpfte Weave-Verbindung freigegeben 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 Verwendung.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Starten Sie den Timer-Mechanismus für die regelmäßige Wiederübertragung des Trickle-Wiederbreitungs-Algorithmus.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg, andernfalls INET_ERROR, das einem WEAVE_ERROR zugeordnet ist.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Fahre den Wiederübertragungsmechanismus des Trickle herunter, indem du die periodischen Timer innerhalb des Trickle-Vorgangs abbrichst und den Nachrichtenpuffer mit der Weave-Nachricht freigibst.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Gibt an, ob ausgehende Nachrichten, die über den Austausch 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.

Einer der möglichen Gründe für die Verzögerung von Nachrichten vor der Zustellung ist, wenn der Endknoten des Empfängers müde ist. Diese Nachricht wird möglicherweise von einem geeigneten Zwischenknoten im Sendepfad generiert, der genügend Wissen über den Empfänger hat, um Rückschlüsse auf die verzögerte Zustellung zu ziehen. Nach dem Empfang dieser Nachricht stellt der Absender die Timer für die erneute Übertragung von Nachrichten neu ein, für die eine Bestätigung angefordert wird.

Details
Parameter
[in] pauseTimeMillis
Die Zeit (in Millisekunden), um die sich die zuvor gesendete Nachricht voraussichtlich verzögert, bevor sie zugestellt wird.
[in] delayedNodeId
Die Knoten-ID des Peer-Knotens, an den die Nachrichtenzustellung verzögert werden würde.
Rückgabewerte
WEAVE_ERROR_INVALID_ARGUMENT
Ein ungültiges Argument wurde an diese SendMessage API übergeben.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
wenn zwischen dem spezifischen Sendevorgang und der unterstützten Version des Weave-Nachrichtenprotokolls eine Diskrepanz besteht. Dieser Fehler wird beispielsweise generiert, wenn versucht wird, eine Weave-Zuverlässige-Messaging-Semantik zu verwenden, wenn Version 1 des Weave-Nachrichtenprotokolls verwendet wird.
WEAVE_ERROR_NOT_CONNECTED
wenn der Kontext mit einer Verbindung verknüpft war, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
Status des Anzeigenplattformkontexts ist falsch.
WEAVE_NO_ERROR
wenn die Weave-Ebene die Nachricht erfolgreich an die Netzwerkschicht gesendet hat.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Senden Sie eine „Drosselung“-Nachricht an den Peer-Knoten, in dem Sie ihn auffordern, das Senden von Nachrichten zu drosseln.

Details
Parameter
[in] pauseTimeMillis
Die Zeit (in Millisekunden), während der der Empfänger das Senden voraussichtlich drosseln wird.
Rückgabewerte
WEAVE_ERROR_INVALID_ARGUMENT
Wenn ein ungültiges Argument an diese SendMessage API übergeben wurde.
WEAVE_ERROR_SEND_THROTTLED
Wenn dieser Austauschkontext bei Verwendung des zuverlässigen Weave-Messaging-Protokolls gedrosselt wurde.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Wenn zwischen dem spezifischen Sendevorgang und der unterstützten Version des Weave-Nachrichtenprotokolls eine Diskrepanz besteht. Dieser Fehler wird beispielsweise generiert, wenn versucht wird, eine Weave-Zuverlässige-Messaging-Semantik zu verwenden, wenn Version 1 des Weave-Nachrichtenprotokolls verwendet wird.
WEAVE_ERROR_NOT_CONNECTED
Ob der Kontext mit einer Verbindung verknüpft war, die jetzt geschlossen ist.
WEAVE_ERROR_INCORRECT_STATE
Status des Anzeigenplattformkontexts ist falsch.
WEAVE_NO_ERROR
Wenn die Weave-Ebene die Nachricht erfolgreich an die Netzwerkschicht gesendet hat.