nl::Weave::WeaveMessageLayer

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

Die Definition der WeaveMessageLayer-Klasse, die die Kommunikation mit anderen Weave-Knoten verwaltet.

Zusammenfassung

Dabei wird einer von mehreren InetLayer-Endpunkten verwendet, um einen Kommunikationskanal mit anderen Weave-Knoten einzurichten.

Konstruktoren und Zerstörer

WeaveMessageLayer(void)
Der Weave Message Layer-Konstruktor.

Öffentliche Typen

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Diese Funktion ist das Callback auf höherer Ebene, mit dem während der Verarbeitung einer eingehenden TCP-Verbindung ein Fehler gemeldet wird.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
Diese Funktion wird zum Entfernen eines Callbacks aufgerufen.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
Diese Funktion ist der Callback auf höherer Ebene für die Verarbeitung einer eingehenden TCP-Verbindung.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Diese Funktion ist der Anwendungs-Callback für die Meldung von Aktivitätsänderungen auf Nachrichtenebene.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Diese Funktion ist ein Callback auf höherer Ebene, der beim Empfang einer Weave-Nachricht über UDP aufgerufen wird.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Bei dieser Funktion handelt es sich um den Callback auf höherer Ebene, der beim Auftreten eines Fehlers aufgerufen wird.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
Der Status von WeaveMessageLayer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Diese Funktion ist ein Callback auf höherer Ebene, der beim Empfang eines getunnelten Pakets über einen lokalen UDP-Tunnel aufgerufen wird.

Öffentliche Attribute

AppState
void *
Ein Zeiger auf ein anwendungsspezifisches Statusobjekt.
ExchangeMgr
[READ ONLY] Das verknüpfte WeaveExchangeManager-Objekt.
FabricState
[READ ONLY] Das zugehörige WeaveFabricState-Objekt.
IncomingConIdleTimeout
uint32_t
Standardzeitlimit bei Inaktivität (in Millisekunden) für eingehende Verbindungen.
Inet
InetLayer *
[READ ONLY] Das verknüpfte InetLayer-Objekt.
IsListening
bool
[READ ONLY] „True“, wenn auf eingehende Verbindungen/Nachrichten überwacht wird, andernfalls „false“.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[READ ONLY] Das zugehörige WeaveSecurityManager-Objekt.
State
uint8_t
[READ ONLY] Der Status des WeaveMessageLayer-Objekts.
SystemLayer
mDropMessage
bool
Intern und nur zur Fehlerbehebung. Wenn diese Einstellung aktiviert ist, löscht WeaveMessageLayer die Nachricht und kehrt zurück.

Öffentliche Funktionen

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
Schließen Sie alle offenen TCP- und UDP-Endpunkte.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
Erstellen Sie einen WeaveConnectionTunnel, indem Sie zwei angegebene WeaveConnections koppeln.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Ebenenheader einer Weave-Nachricht aus einer empfangenen Weave-Nachricht decodieren.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Codieren Sie einen WeaveMessageLayer-Header in einen PacketBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Codieren Sie einen Weave Message-Layer-Header in einen PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Prüfen Sie, ob lokal initiierte Weave UDP-Austausche über einen sitzungsspezifischen UDP-Quellport gesendet werden sollen.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Rufen Sie die Anzahl der verwendeten WeaveConnections und die Größe des Pools ab.
IPv4ListenEnabled(void) const
bool
Überprüfen Sie, ob WeaveMessageLayer so konfiguriert ist, dass eingehende Kommunikation über IPv4 überwacht wird.
IPv6ListenEnabled(void) const
bool
Überprüfen Sie, ob WeaveMessageLayer so konfiguriert ist, dass eingehende Kommunikation über IPv4 überwacht wird.
Init(InitContext *context)
Initialisieren Sie das Weave Message Layer-Objekt.
IsBoundToLocalIPv4Address(void) const
bool
Prüfen Sie, ob WeaveMessageLayer an eine lokale IPv4-Adresse gebunden ist.
IsBoundToLocalIPv6Address(void) const
bool
Prüfen Sie, ob WeaveMessageLayer an eine lokale IPv6-Adresse gebunden ist.
IsMessageLayerActive(void)
bool
NewConnection(void)
Erstellen Sie ein neues WeaveConnection-Objekt aus einem Pool.
NewConnectionTunnel(void)
Erstellen Sie ein neues WeaveConnectionTunnel-Objekt aus einem Pool.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
Aktualisieren Sie die InetLayer-Endpunkte basierend auf dem aktuellen Status der Netzwerkschnittstellen des Systems.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt eine codierte Weave-Nachricht noch einmal senden.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt eine codierte Weave-Nachricht noch einmal senden.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt eine codierte Weave-Nachricht noch einmal senden.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt eine codierte Weave-Nachricht noch einmal senden.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Senden Sie nach der Codierung eine Weave-Nachricht mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Senden Sie nach der Codierung eine Weave-Nachricht mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Senden Sie nach der Codierung eine Weave-Nachricht mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Funktion zum Senden eines getunnelten Pakets über einen lokalen UDP-Tunnel.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Legen Sie einen Anwendungs-Handler fest, der jedes Mal aufgerufen wird, wenn sich die Aktivität der Nachrichtenschicht ändert.
SetTCPListenEnabled(bool val)
void
Aktivieren oder deaktivieren Sie die Überwachung eingehender TCP-Verbindungen in WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Aktiviert oder deaktiviert das Überwachen eingehender UDP-Nachrichten in WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
Fahren Sie WeaveMessageLayer herunter.
TCPListenEnabled(void) const
bool
Überprüfen Sie, ob WeaveMessageLayer so konfiguriert ist, dass eingehende TCP-Verbindungen überwacht werden.
UDPListenEnabled(void) const
bool
Überprüfen Sie, ob WeaveMessageLayer auf eingehende UDP-Nachrichten konfiguriert ist.
UnsecuredListenEnabled(void) const
bool
Initiieren von Weave UDP-Austauschen über einen sitzungsspezifischen UDP-Quellport aktivieren oder deaktivieren.

Öffentliche statische Funktionen

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
Ruft die maximale Weave-Nutzlastgröße für eine Nachrichtenkonfiguration und den bereitgestellten PacketBuffer ab.
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
Erstellt einen String, der einen Peer-Knoten und die zugehörigen Adress-/Verbindungsinformationen beschreibt.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Konstruiert einen String, der einen Peer-Knoten anhand der Informationen beschreibt, die mit einer vom Peer empfangenen Nachricht verknüpft sind.

Kurse

nl::Weave::WeaveMessageLayer::InitContext

Die Definition der InitContext-Klasse.

Öffentliche Typen

AcceptErrorFunct

void(* AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err)

Diese Funktion ist das Callback auf höherer Ebene, mit dem während der Verarbeitung einer eingehenden TCP-Verbindung ein Fehler gemeldet wird.

Details
Parameter
[in] msgLayer
Ein Zeiger auf das WeaveMessageLayer-Objekt.
[in] err
WEAVE_ERROR bei der Verarbeitung einer eingehenden TCP-Verbindung.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

Diese Funktion wird zum Entfernen eines Callbacks aufgerufen.

Details
Parameter
[in] listenerState
Ein Zeiger auf das Anwendungsstatusobjekt.

ConnectionReceiveFunct

void(* ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con)

Diese Funktion ist der Callback auf höherer Ebene für die Verarbeitung einer eingehenden TCP-Verbindung.

Details
Parameter
[in] msgLayer
Ein Zeiger auf das WeaveMessageLayer-Objekt.
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

Diese Funktion ist der Anwendungs-Callback für die Meldung von Aktivitätsänderungen auf Nachrichtenebene.

Die Nachrichtenebene gilt als aktiv, wenn mindestens eine offene Austauschanfrage oder eine ausstehende Synchronisierungsanfrage für einen Nachrichtenzähler vorhanden ist.

Details
Parameter
[in] messageLayerIsActive
Boolescher Wert, der angibt, ob die Nachrichtenebene aktiv ist oder nicht.

MessageReceiveFunct

void(* MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload)

Diese Funktion ist ein Callback auf höherer Ebene, der beim Empfang einer Weave-Nachricht über UDP aufgerufen wird.

Details
Parameter
[in] msgLayer
Ein Zeiger auf das WeaveMessageLayer-Objekt.
[in] msgInfo
Ein Zeiger auf das WeaveMessageInfo-Objekt.
[in] payload
Zeiger auf die PacketBuffer-Nachricht, die das empfangene getunnelte Paket enthält.

ReceiveErrorFunct

void(* ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo)

Bei dieser Funktion handelt es sich um den Callback auf höherer Ebene, der beim Auftreten eines Fehlers aufgerufen wird.

Details
Parameter
[in] msgLayer
Ein Zeiger auf das WeaveMessageLayer-Objekt.
[in] err
Beim Empfang von Daten ist der Fehler WEAVE_ERROR aufgetreten.
[in] pktInfo
Ein schreibgeschützter Zeiger auf das IPPacketInfo-Objekt.

Status

 State

Der Status von WeaveMessageLayer.

Attribute
kState_Initialized

Status, wenn WeaveMessageLayer initialisiert wird.

kState_Initializing

Status, wenn WeaveMessageLayer gerade initialisiert wird.

kState_NotInitialized

Status, wenn WeaveMessageLayer nicht initialisiert ist.

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload)

Diese Funktion ist ein Callback auf höherer Ebene, der beim Empfang eines getunnelten Pakets über einen lokalen UDP-Tunnel aufgerufen wird.

Details
Parameter
[in] msgLayer
Ein Zeiger auf das WeaveMessageLayer-Objekt.
[in] payload
Zeiger auf die PacketBuffer-Nachricht, die das empfangene getunnelte Paket enthält.

Öffentliche Attribute

AppState

void * AppState

Ein Zeiger auf ein anwendungsspezifisches Statusobjekt.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[READ ONLY] Das verknüpfte WeaveExchangeManager-Objekt.

FabricState

WeaveFabricState * FabricState

[READ ONLY] Das zugehörige WeaveFabricState-Objekt.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

Standardzeitlimit bei Inaktivität (in Millisekunden) für eingehende Verbindungen.

Inet

InetLayer * Inet

[READ ONLY] Das verknüpfte InetLayer-Objekt.

IsListening

bool IsListening

[READ ONLY] „True“, wenn auf eingehende Verbindungen/Nachrichten überwacht wird, andernfalls „false“.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[READ ONLY] Das zugehörige WeaveSecurityManager-Objekt.

Status

uint8_t State

[READ ONLY] Der Status des WeaveMessageLayer-Objekts.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Intern und nur zur Fehlerbehebung. Wenn diese Einstellung aktiviert ist, löscht WeaveMessageLayer die Nachricht und kehrt zurück.

Öffentliche Funktionen

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

Schließen Sie alle offenen TCP- und UDP-Endpunkte.

Brechen Sie dann alle offenen WeaveConnections ab und fahren Sie alle geöffneten WeaveConnectionTunnel-Objekte herunter.

Siehe auch:
Herunterfahren().

CreateTunnel

WEAVE_ERROR CreateTunnel(
  WeaveConnectionTunnel **tunPtr,
  WeaveConnection & conOne,
  WeaveConnection & conTwo,
  uint32_t inactivityTimeoutMS
)

Erstellen Sie einen WeaveConnectionTunnel, indem Sie zwei angegebene WeaveConnections koppeln.

Bei erfolgreicher Erstellung werden die TCPEndPoints, die der Komponente WeaveConnection-Objekte entsprechen, an den WeaveConnectionTunnel übergeben. Andernfalls werden die WeaveConnections geschlossen.

Details
Parameter
[out] tunPtr
Ein Zeiger auf einen Zeiger eines WeaveConnectionTunnel-Objekts.
[in] conOne
Ein Verweis auf das erste WeaveConnection-Objekt.
[in] conTwo
Ein Verweis auf das zweite WeaveConnection-Objekt.
[in] inactivityTimeoutMS
Die maximale Zeit in Millisekunden, während der der Weave-Verbindungstunnel inaktiv sein kann.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Erstellung des WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
die WeaveConnection-Objekte des WeaveConnectionTunnel-Objekts nicht den richtigen Status haben.
WEAVE_ERROR_NO_MEMORY
wenn kein neues WeaveConnectionTunnel-Objekt erstellt werden kann.

DecodeHeader

WEAVE_ERROR DecodeHeader(
  PacketBuffer *msgBuf,
  WeaveMessageInfo *msgInfo,
  uint8_t **payloadStart
)

Ebenenheader einer Weave-Nachricht aus einer empfangenen Weave-Nachricht decodieren.

Details
Parameter
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt mit der Weave-Nachricht.
[in] msgInfo
Ein Zeiger auf ein WeaveMessageInfo-Objekt, das Informationen zur Nachricht empfängt.
[out] payloadStart
Ein Zeiger auf einen Zeiger auf die Position im Nachrichtenpuffer, nachdem die Decodierung abgeschlossen ist.
Rückgabewerte
WEAVE_NO_ERROR
Bei erfolgreicher Decodierung des Nachrichtenheaders.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Wenn der weitergeleitete Nachrichtenpuffer eine ungültige Länge hat.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Wenn die Version des Weave-Nachrichten-Headers nicht unterstützt wird.

EncodeMessage

WEAVE_ERROR EncodeMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf,
  WeaveConnection *con,
  uint16_t maxLen,
  uint16_t reserve
)

Codieren Sie einen WeaveMessageLayer-Header in einen PacketBuffer.

Details
Parameter
[in] msgInfo
Ein Zeiger auf ein WeaveMessageInfo-Objekt, das Informationen über die zu codierende Nachricht enthält.
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das die Weave-Nachricht enthalten würde.
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] maxLen
Die maximale Länge der codierten Weave-Nachricht.
[in] reserve
Der reservierte Bereich vor der Nutzlast, der den Weave-Nachrichtenheader enthält.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Codierung der Nachricht.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Die Version des Weave-Nachrichten-Headers wird nicht unterstützt.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
wenn die Nutzlastlänge im Nachrichtenpuffer null ist.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
Der Verschlüsselungstyp im Nachrichtenheader wird nicht unterstützt.
WEAVE_ERROR_MESSAGE_TOO_LONG
wenn die codierte Nachricht länger als angefordert wäre.
WEAVE_ERROR_BUFFER_TOO_SMALL
wenn vor oder nach der Nachrichtennutzlast nicht genügend Platz vorhanden ist.
other
Fehler, die beim Abrufen des Sitzungsstatus vom Fabric-Statusobjekt generiert werden

EncodeMessage

WEAVE_ERROR EncodeMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *payload
)

Codieren Sie einen Weave Message-Layer-Header in einen PacketBuffer.

Details
Parameter
[in] destAddr
Die Ziel-IP-Adresse.
[in] destPort
Der Zielport.
[in] sendIntId
Die Schnittstelle, an die die Weave-Nachricht gesendet werden soll.
[in] msgInfo
Ein Zeiger auf ein WeaveMessageInfo-Objekt.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die Weave-Nachricht enthalten würde.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Codierung der Weave-Nachricht.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
wenn die Weave Message-Version nicht unterstützt wird.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
wenn die Nutzlastlänge im Nachrichtenpuffer null ist.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
Der Verschlüsselungstyp wird nicht unterstützt.
WEAVE_ERROR_MESSAGE_TOO_LONG
wenn die codierte Nachricht länger als angefordert wäre.
WEAVE_ERROR_BUFFER_TOO_SMALL
wenn vor oder nach der Nachrichtennutzlast nicht genügend Platz vorhanden ist.
other
Fehler, die beim Abrufen des Sitzungsstatus vom Fabric-Statusobjekt generiert werden

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

Prüfen Sie, ob lokal initiierte Weave UDP-Austausche über einen sitzungsspezifischen UDP-Quellport gesendet werden sollen.

GetConnectionPoolStats

void GetConnectionPoolStats(
  nl::Weave::System::Stats::count_t & aOutInUse
) const 

Rufen Sie die Anzahl der verwendeten WeaveConnections und die Größe des Pools ab.

Details
Parameter
[out] aOutInUse
Verweis auf size_t, in dem die Anzahl der verwendeten Verbindungen gespeichert wird.

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

Überprüfen Sie, ob WeaveMessageLayer so konfiguriert ist, dass eingehende Kommunikation über IPv4 überwacht wird.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Überprüfen Sie, ob WeaveMessageLayer so konfiguriert ist, dass eingehende Kommunikation über IPv4 überwacht wird.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Initialisieren Sie das Weave Message Layer-Objekt.

Details
Parameter
[in] context
Ein Zeiger auf das InitContext-Objekt.
Rückgabewerte
WEAVE_NO_ERROR
wenn die Initialisierung erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Das übergebene InitContext-Objekt ist NULL.
WEAVE_ERROR_INCORRECT_STATE
Der Status des WeaveMessageLayer-Objekts ist falsch.
other
Fehler, die während der Endpunkterstellung von der unteren Inet-Ebene verursacht wurden.

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

Prüfen Sie, ob WeaveMessageLayer an eine lokale IPv4-Adresse gebunden ist.

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

Prüfen Sie, ob WeaveMessageLayer an eine lokale IPv6-Adresse gebunden ist.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

Erstellen Sie ein neues WeaveConnection-Objekt aus einem Pool.

Details
Rückgabe
Bei Erfolg einen Zeiger auf das neu erstellte WeaveConnection-Objekt, andernfalls NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Erstellen Sie ein neues WeaveConnectionTunnel-Objekt aus einem Pool.

Details
Rückgabe
Ein Zeiger auf das neu erstellte WeaveConnectionTunnel-Objekt, falls der Vorgang erfolgreich war, andernfalls NULL.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

Aktualisieren Sie die InetLayer-Endpunkte basierend auf dem aktuellen Status der Netzwerkschnittstellen des Systems.

Details
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Aktualisierung von Endpunkten.
InetLayer
Fehler, die auf Aufrufen zum Erstellen von TCP/UDP-Endpunkten basieren.

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt eine codierte Weave-Nachricht noch einmal senden.

Details
Parameter
[in] msgInfo
Ein Zeiger auf das WeaveMessageInfo-Objekt.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die codierte Weave-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
die Nachricht erfolgreich an die Netzwerkschicht zu senden.
errors
die während des Sendens vom UDP-Endpunkt der unteren Inet-Ebene generiert werden.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt eine codierte Weave-Nachricht noch einmal senden.

Details
Parameter
[in] destAddr
Die Ziel-IP-Adresse.
[in] msgInfo
Ein Zeiger auf das WeaveMessageInfo-Objekt.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die codierte Weave-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
die Nachricht erfolgreich an die Netzwerkschicht zu senden.
errors
die während des Sendens vom UDP-Endpunkt der unteren Inet-Ebene generiert werden.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt eine codierte Weave-Nachricht noch einmal senden.

Details
Parameter
[in] destAddr
Die Ziel-IP-Adresse.
[in] destPort
Der Zielport.
[in] msgInfo
Ein Zeiger auf das WeaveMessageInfo-Objekt.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die codierte Weave-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
die Nachricht erfolgreich an die Netzwerkschicht zu senden.
errors
die während des Sendens vom UDP-Endpunkt der unteren Inet-Ebene generiert werden.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId interfaceId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt eine codierte Weave-Nachricht noch einmal senden.

Hinweis:Wenn die Zieladresse nicht angegeben wurde, versuchen Sie, sie anhand der Knotenkennung im Nachrichtenheader zu ermitteln. Wenn dies nicht möglich ist, schlagen Sie fehl. - Wenn die Zieladresse eine Fabric-Adresse für die lokale Struktur ist und der Aufrufer die ID des Zielknotens nicht angegeben hat, extrahieren Sie diese aus der Zieladresse.

Details
Parameter
[in] aDestAddr
Die Ziel-IP-Adresse.
[in] destPort
Der Zielport.
[in] interfaceId
Die Schnittstelle, an die die Weave-Nachricht gesendet werden soll.
[in] msgInfo
Ein Zeiger auf das WeaveMessageInfo-Objekt.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die codierte Weave-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
die Nachricht erfolgreich an die Netzwerkschicht zu senden.
errors
die während des Sendens vom UDP-Endpunkt der unteren Inet-Ebene generiert werden.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Senden Sie nach der Codierung eine Weave-Nachricht mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt.

Details
Parameter
[in] msgInfo
Ein Zeiger auf ein WeaveMessageInfo-Objekt, das Informationen zu der zu sendenden Nachricht enthält.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die codierte Weave-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
die Nachricht erfolgreich an die Netzwerkschicht zu senden.
errors
die während des Sendens vom UDP-Endpunkt der unteren Inet-Ebene generiert werden.

SendMessage

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Senden Sie nach der Codierung eine Weave-Nachricht mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt.

Hinweis: Der verwendete Zielport ist WEAVE_PORT. – Wenn die Zieladresse nicht angegeben wurde, versuchen Sie, sie anhand der Knotenkennung im Nachrichtenheader zu ermitteln. Wenn dies nicht möglich ist, schlagen Sie fehl.

- Wenn die Zieladresse eine Fabric-Adresse für die lokale Struktur ist und der Aufrufer die ID des Zielknotens nicht angegeben hat, extrahieren Sie diese aus der Zieladresse.

Details
Parameter
[in] destAddr
Die Ziel-IP-Adresse.
[in] msgInfo
Ein Zeiger auf ein WeaveMessageInfo-Objekt, das Informationen zu der zu sendenden Nachricht enthält.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die codierte Weave-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
die Nachricht erfolgreich an die Netzwerkschicht zu senden.
errors
die während des Sendens vom UDP-Endpunkt der unteren Inet-Ebene generiert werden.

SendMessage

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntfId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Senden Sie nach der Codierung eine Weave-Nachricht mit dem zugrunde liegenden Inetlayer-UDP-Endpunkt.

Hinweis:Wenn die Zieladresse nicht angegeben wurde, versuchen Sie, sie anhand der Knotenkennung im Nachrichtenheader zu ermitteln. Wenn dies nicht möglich ist, schlagen Sie fehl. - Wenn die Zieladresse eine Fabric-Adresse für die lokale Struktur ist und der Aufrufer die ID des Zielknotens nicht angegeben hat, extrahieren Sie diese aus der Zieladresse.

Details
Parameter
[in] aDestAddr
Die Ziel-IP-Adresse.
[in] destPort
Der Zielport.
[in] sendIntfId
Die Schnittstelle, an die die Weave-Nachricht gesendet werden soll.
[in] msgInfo
Ein Zeiger auf ein WeaveMessageInfo-Objekt, das Informationen zu der zu sendenden Nachricht enthält.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die codierte Weave-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
die Nachricht erfolgreich an die Netzwerkschicht zu senden.
WEAVE_ERROR_INVALID_ADDRESS
destAddr ist nicht angegeben oder kann nicht anhand der Zielknoten-ID ermittelt werden.
errors
die während des Sendens vom UDP-Endpunkt der unteren Inet-Ebene generiert werden.

SendUDPTunneledMessage

WEAVE_ERROR SendUDPTunneledMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Funktion zum Senden eines getunnelten Pakets über einen lokalen UDP-Tunnel.

Senden Sie eine getunnelte IPv6-Datennachricht über UDP.

Details
Parameter
[in] msgInfo
Ein Zeiger auf ein WeaveMessageInfo-Objekt.
[in] destAddr
IPAddress des UDP-Tunnelziels.
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das das zu sendende Paket enthält.
Rückgabewerte
WEAVE_NO_ERROR
die Nachricht erfolgreich an die Netzwerkschicht zu senden.
WEAVE_ERROR_INVALID_ADDRESS
destAddr ist nicht angegeben oder kann nicht anhand der Zielknoten-ID ermittelt werden.
errors
die während des Sendens vom UDP-Endpunkt der unteren Inet-Ebene generiert werden.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Legen Sie einen Anwendungs-Handler fest, der jedes Mal aufgerufen wird, wenn sich die Aktivität der Nachrichtenschicht ändert.

Die Bewerbung wird jedes Mal benachrichtigt:

  • ändert sich die Anzahl der geöffneten Anzeigenplattformen.
  • Die Anzahl der ausstehenden Synchronisierungsanfragen für Nachrichtenzähler ändert sich von null auf mindestens eins und wieder zurück auf null. Der Handler wird als allgemeines Signal verwendet, das angibt, ob laufende Weave-Unterhaltungen oder ausstehende Antworten vorliegen. Der Handler muss festgelegt werden, nachdem WeaveMessageLayer initialisiert wurde. Wenn Sie WeaveMessageLayer beenden, wird der aktuelle Handler gelöscht.

Details
Parameter
[in] messageLayerActivityChangeHandler
Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn sich die Aktivität der Nachrichtenebene ändert.
Rückgabewerte
None.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

Aktivieren oder deaktivieren Sie die Überwachung eingehender TCP-Verbindungen in WeaveMessageLayer.

HINWEIS: RefreshEndpoints() muss aufgerufen werden, nachdem der TCP-Überwachungsstatus geändert wurde.

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

Aktiviert oder deaktiviert das Überwachen eingehender UDP-Nachrichten in WeaveMessageLayer.

HINWEIS: RefreshEndpoints() muss aufgerufen werden, nachdem der UDP-Überwachungsstatus geändert wurde.

SetUnsecuredConnectionListener

WEAVE_ERROR SetUnsecuredConnectionListener(
  ConnectionReceiveFunct newOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved,
  bool force,
  void *listenerState
)

Herunterfahren

WEAVE_ERROR Shutdown(
  void
)

Fahren Sie WeaveMessageLayer herunter.

Schließen Sie alle geöffneten Inet-Ebenenendpunkte und setzen Sie alle Rückrufe auf höherer Ebene, Mitgliedervariablen und Objekte zurück. Ein Aufruf von Herunterfahren() beendet das WeaveMessageLayer-Objekt.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Überprüfen Sie, ob WeaveMessageLayer so konfiguriert ist, dass eingehende TCP-Verbindungen überwacht werden.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Überprüfen Sie, ob WeaveMessageLayer auf eingehende UDP-Nachrichten konfiguriert ist.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

Initiieren von Weave UDP-Austauschen über einen sitzungsspezifischen UDP-Quellport aktivieren oder deaktivieren.

HINWEIS: RefreshEndpoints() muss aufgerufen werden, nachdem der Status des sitzungsspezifischen Ports geändert wurde. Prüfen Sie, ob das ungesicherte Hören aktiviert ist.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Der Weave Message Layer-Konstruktor.

Öffentliche statische Funktionen

GetMaxWeavePayloadSize

uint32_t GetMaxWeavePayloadSize(
  const PacketBuffer *msgBuf,
  bool isUDP,
  uint32_t udpMTU
)

Ruft die maximale Weave-Nutzlastgröße für eine Nachrichtenkonfiguration und den bereitgestellten PacketBuffer ab.

Die zurückgegebene maximale Nutzlastgröße überschreitet nicht den verfügbaren Speicherplatz für eine Nutzlast im bereitgestellten PacketBuffer.

Wenn die Nachricht UDP ist, führt die zurückgegebene maximale Nutzlastgröße nicht zu einer Weave-Nachricht, die nicht über die angegebene UDP-MTU hinausgeht.

Schließlich führt die zurückgegebene maximale Nutzlastgröße nicht zu einer Weave-Nachricht, die die maximale Weave-Nachrichtengröße überläuft.

Details
Parameter
[in] msgBuf
Ein Zeiger auf den PacketBuffer, in den die Nachrichtennutzlast geschrieben wird.
[in] isUDP
True, wenn die Nachricht eine UDP-Nachricht ist.
[in] udpMTU
Die Größe der UDP-MTU. Wird ignoriert, wenn isUDP auf „false“ gesetzt ist.
Rückgabe
die maximale Weave-Nutzlastgröße.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  uint64_t nodeId,
  const IPAddress *addr,
  uint16_t port,
  InterfaceId interfaceId,
  const WeaveConnection *con
)

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

Der generierte String hat folgendes Format:

 ([]:%, con )

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 kWeavePeerDescription_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.
[in] nodeId
Die Knoten-ID, die ausgegeben werden soll.
[in] addr
Ein Zeiger auf eine IP-Adresse, die ausgegeben werden soll, oder NULL, wenn keine IP-Adresse gedruckt werden soll.
[in] port
Eine zu druckende IP-Portnummer. Wenn addr NULL ist, wird keine Portnummer ausgegeben.
[in] interfaceId
Eine InterfaceId, die die zu druckende Schnittstelle identifiziert. Der Ausgabestring enthält den Namen der Schnittstelle, der dem zugrunde liegenden Netzwerk-Stack bekannt ist. Wenn die InterfaceId INET_NULL_INTERFACEID ist oder addr den Wert NULL hat, wird kein Schnittstellenname ausgegeben.
[in] con
Ein Zeiger auf ein WeaveConnection-Objekt, dessen Logging-ID ausgegeben werden soll, oder NULL, wenn keine Verbindungs-ID ausgegeben werden soll.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  const WeaveMessageInfo *msgInfo
)

Konstruiert einen String, der einen Peer-Knoten anhand der Informationen beschreibt, die mit einer vom Peer empfangenen Nachricht verknüpft sind.

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 kWeavePeerDescription_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.
[in] msgInfo
Ein Zeiger auf eine WeaveMessageInfo-Struktur, die Informationen zur Nachricht enthält.