nl::Weave::WeaveMessageLayer

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

Die Definition der Klasse WeaveMessageLayer, 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 Konstruktor der Weave-Nachrichtenschicht.

Öffentliche Typen

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) Typdef
void(*
Diese Funktion ist der Callback auf höherer Ebene zum Melden eines Fehlers bei der Verarbeitung einer eingehenden TCP-Verbindung.
CallbackRemovedFunct)(void *listenerState) Typdef
void(*
Diese Funktion wird zum Entfernen eines Callbacks aufgerufen.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) Typdef
void(*
Diese Funktion ist der Callback auf höherer Ebene für die Verarbeitung einer eingehenden TCP-Verbindung.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) Typdef
void(*
Diese Funktion ist der Callback der Anwendung zum Ändern der Aktivitätsebene der Meldungsnachricht.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) Typdef
void(*
Diese Funktion ist der Callback auf der höheren Ebene, der beim Empfang einer Weave-Nachricht über UDP aufgerufen wird.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) Typdef
void(*
Diese Funktion ist der Callback auf höherer Ebene, der bei einem Fehler aufgerufen wird.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
Der Status von WeaveMessageLayer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) Typdef
void(*
Diese Funktion ist der Callback auf der höheren 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 Objekt WeaveExchangeManager
FabricState
[READ ONLY] Das zugehörige WeaveFabricState-Objekt
IncomingConIdleTimeout
uint32_t
Standardmäßiges Zeitlimit bei Inaktivität (in Millisekunden) für eingehende Verbindungen.
Inet
InetLayer *
[READ ONLY] Das verknüpfte InetLayer-Objekt
IsListening
bool
[READ ONLY] True, wenn eingehende Verbindungen/Nachrichten überwacht werden, andernfalls False.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[READ ONLY] Das verknüpfte Objekt WeaveSecurityManager
State
uint8_t
[READ ONLY] Der Status des WeaveMessageLayer-Objekts.
SystemLayer
mDropMessage
bool
Intern und nur für die Fehlerbehebung. Wenn die Richtlinie konfiguriert ist, wird die Nachricht von WeaveMessageLayer gelöscht und zurückgegeben.

Ö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 miteinander verbinden.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Decodieren Sie einen Header einer Weave-Nachrichtenebene von einer empfangenen Weave-Nachricht.
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 Header einer Weave-Nachrichtenebene in einen PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Prüfen Sie, ob lokal initiierte Weave-UDP-Anzeigenplattformen von einem 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
Prüfen Sie, ob WeaveMessageLayer für die Überwachung eingehender Nachrichten über IPv4 konfiguriert ist.
IPv6ListenEnabled(void) const
bool
Prüfen Sie, ob WeaveMessageLayer für die Überwachung eingehender Nachrichten über IPv4 konfiguriert ist.
Init(InitContext *context)
Initialisieren Sie das Ebenenobjekt der Weave-Nachricht.
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)
Neues WeaveConnection-Objekt aus einem Pool erstellen
NewConnectionTunnel(void)
Neues WeaveConnectionTunnel-Objekt aus einem Pool erstellen
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
Aktualisieren Sie die InetLayer-Endpunkte basierend auf dem aktuellen Status der Netzwerkschnittstellen des Systems.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Sende eine codierte Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt noch einmal.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Sende eine codierte Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt noch einmal.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Sende eine codierte Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt noch einmal.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Sende eine codierte Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt noch einmal.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Sende nach der Codierung eine Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Sende nach der Codierung eine Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Sende nach der Codierung eine Weave-Nachricht über den 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 Nachrichtenebene ändert.
SetTCPListenEnabled(bool val)
void
Aktivieren oder deaktivieren Sie die Überwachung für eingehende TCP-Verbindungen in der WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Aktivieren oder deaktivieren Sie die Überwachung für eingehende UDP-Nachrichten in der WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
Fahren Sie WeaveMessageLayer herunter.
TCPListenEnabled(void) const
bool
Prüfen Sie, ob WeaveMessageLayer für die Überwachung eingehender TCP-Verbindungen konfiguriert ist.
UDPListenEnabled(void) const
bool
Prüfen Sie, ob WeaveMessageLayer für die Überwachung eingehender UDP-Nachrichten konfiguriert ist.
UnsecuredListenEnabled(void) const
bool
Aktivieren oder Deaktivieren des Initiierens von Weave-UDP-Austauschen über einen sitzungsspezifischen UDP-Quellport.

Ö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 Adressen-/Verbindungsinformationen beschreibt.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Erstellt einen String, der einen Peer-Knoten auf der Grundlage der Informationen beschreibt, die mit einer vom Peer empfangenen Nachricht verknüpft sind.

Klassen

nl::Weave::WeaveMessageLayer::InitContext

Die Definition der Klasse InitContext.

Öffentliche Typen

AnnehmenFehler

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

Diese Funktion ist der Callback auf höherer Ebene zum Melden eines Fehlers bei der Verarbeitung einer eingehenden TCP-Verbindung.

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

RückrufEntfernenFunct

void(* CallbackRemovedFunct)(void *listenerState)

Diese Funktion wird zum Entfernen eines Callbacks aufgerufen.

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

VerbindungReceiveFunct

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 Objekt WeaveConnection.

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

Diese Funktion ist der Callback der Anwendung zum Ändern der Aktivitätsebene der Meldungsnachricht.

Die Nachrichtenebene gilt als aktiv, wenn es mindestens eine offene Anzeigenplattform oder eine ausstehende Synchronisierungsanfrage für Nachrichtenzähler gibt.

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

NachrichtEmpfangen

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

Diese Funktion ist der Callback auf der höheren 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 Objekt WeaveMessageInfo.
[in] payload
Zeiger auf PacketBuffer-Nachricht mit empfangenem getunneltem Paket

EmpfangenFehler

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

Diese Funktion ist der Callback auf höherer Ebene, der bei einem Fehler aufgerufen wird.

Details
Parameter
[in] msgLayer
Ein Zeiger auf das WeaveMessageLayer-Objekt.
[in] err
Beim Abrufen von Daten ist ein WEAVE_ERROR-Fehler 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 wurde.

TunneledMsgReceiveFunct

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

Diese Funktion ist der Callback auf der höheren 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 PacketBuffer-Nachricht mit empfangenem getunneltem Paket

Öffentliche Attribute

App-Status

void * AppState

Ein Zeiger auf ein anwendungsspezifisches Statusobjekt.

Exchange-mgr

WeaveExchangeManager * ExchangeMgr

[READ ONLY] Das verknüpfte Objekt WeaveExchangeManager

Stoffstatus

WeaveFabricState * FabricState

[READ ONLY] Das zugehörige WeaveFabricState-Objekt

InboundConIdleTimeout

uint32_t IncomingConIdleTimeout

Standardmäßiges Zeitlimit bei Inaktivität (in Millisekunden) für eingehende Verbindungen.

Inet

InetLayer * Inet

[READ ONLY] Das verknüpfte InetLayer-Objekt

Läuft gerade

bool IsListening

[READ ONLY] True, wenn eingehende Verbindungen/Nachrichten überwacht werden, andernfalls False.

Fehler beim Annehmen

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError (Fehler beim Empfangen)

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[READ ONLY] Das verknüpfte Objekt WeaveSecurityManager

Status

uint8_t State

[READ ONLY] Der Status des WeaveMessageLayer-Objekts.

Systemebene

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Intern und nur für die Fehlerbehebung. Wenn die Richtlinie konfiguriert ist, wird die Nachricht von WeaveMessageLayer gelöscht und zurückgegeben.

Öffentliche Funktionen

ClearUnSecureConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

Endpunkte schließen

WEAVE_ERROR CloseEndpoints(
  void
)

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

Abbrechen Sie dann alle offenen WeaveConnections und fahren Sie alle offenen WeaveConnectionTunnel-Objekte herunter.

Weitere Informationen:
Herunterfahren().

Tunnel erstellen

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

Erstellen Sie einen WeaveConnectionTunnel, indem Sie zwei angegebene WeaveConnections miteinander verbinden.

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

Details
Parameter
[out] tunPtr
Ein Zeiger auf einen WeaveConnectionTunnel-Objekt.
[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, die der Weave-Verbindungstunnel inaktiv sein kann.
Rückgabewerte
WEAVE_NO_ERROR
zum erfolgreichen Erstellen des WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
wenn die WeaveConnection-Objekte des WeaveConnectionTunnel nicht den richtigen Status haben.
WEAVE_ERROR_NO_MEMORY
Wenn kein neues WeaveConnectionTunnel-Objekt erstellt werden kann.

Header decodieren

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

Decodieren Sie einen Header einer Weave-Nachrichtenebene von einer empfangenen Weave-Nachricht.

Details
Parameter
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das die Weave-Nachricht enthält.
[in] msgInfo
Ein Zeiger auf ein WeaveMessageInfo-Objekt, das Informationen über die Nachricht erhält.
[out] payloadStart
Ein Zeiger auf eine Position im Nachrichtenpuffer, nachdem die Decodierung abgeschlossen ist.
Rückgabewerte
WEAVE_NO_ERROR
Bei erfolgreicher Decodierung des Nachrichtenheaders.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Der übergebene Zwischenspeicher hat eine ungültige Länge.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Wenn die Weave-Header-Formatversion 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 Objekt WeaveConnection.
[in] maxLen
Die maximale Länge der codierten Weave-Nachricht.
[in] reserve
Der reservierte Platz vor der Nutzlast für den Nachrichtenheader „Weave“.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Codierung der Nachricht.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
wenn die Weave Message-Header-Formatversion nicht unterstützt wird.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
wenn die Nutzlastlänge im Nachrichtenpuffer null ist.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
wenn der Verschlüsselungstyp im Nachrichtenheader nicht unterstützt wird.
WEAVE_ERROR_MESSAGE_TOO_LONG
wenn die codierte Nachricht länger als die angeforderte Höchstzahl ist.
WEAVE_ERROR_BUFFER_TOO_SMALL
wenn vor oder nach der Nutzlast der Nachricht nicht genügend Platz vorhanden ist.
other
Fehler, die durch das Fabric-Statusobjekt beim Abrufen des Sitzungsstatus generiert werden.

EncodeMessage

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

Codieren Sie einen Header einer Weave-Nachrichtenebene in einen PacketBuffer.

Details
Parameter
[in] destAddr
Die Ziel-IP-Adresse.
[in] destPort
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
zur erfolgreichen Codierung der Weave-Nachricht.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
wenn die Version der Weave-Nachricht nicht unterstützt wird.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
wenn die Nutzlastlänge im Nachrichtenpuffer null ist.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
wenn der Verschlüsselungstyp nicht unterstützt wird.
WEAVE_ERROR_MESSAGE_TOO_LONG
wenn die codierte Nachricht länger als die angeforderte Höchstzahl ist.
WEAVE_ERROR_BUFFER_TOO_SMALL
wenn vor oder nach der Nutzlast der Nachricht nicht genügend Platz vorhanden ist.
other
Fehler, die durch das Fabric-Statusobjekt beim Abrufen des Sitzungsstatus generiert werden.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

Prüfen Sie, ob lokal initiierte Weave-UDP-Anzeigenplattformen von einem sitzungsspezifischen UDP-Quellport gesendet werden sollen.

GetConnectionPoolStatistik

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 

Prüfen Sie, ob WeaveMessageLayer für die Überwachung eingehender Nachrichten über IPv4 konfiguriert ist.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Prüfen Sie, ob WeaveMessageLayer für die Überwachung eingehender Nachrichten über IPv4 konfiguriert ist.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Initialisieren Sie das Ebenenobjekt der Weave-Nachricht.

Details
Parameter
[in] context
Ein Zeiger auf das InitContext-Objekt.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initialisierung.
WEAVE_ERROR_INVALID_ARGUMENT
Das übergebene InitContext-Objekt ist NULL.
WEAVE_ERROR_INCORRECT_STATE
wenn der Status des WeaveMessageLayer-Objekts falsch ist.
other
Fehler, die während der Endpunkterstellung von der unteren Inet-Ebene generiert 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
)

Neue Verbindung

WeaveConnection * NewConnection(
  void
)

Neues WeaveConnection-Objekt aus einem Pool erstellen

Details
Rückgabe
einen Zeiger auf das neu erstellte WeaveConnection-Objekt, falls dies erfolgreich war, ansonsten NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Neues WeaveConnectionTunnel-Objekt aus einem Pool erstellen

Details
Rückgabe
einen Zeiger auf das neu erstellte WeaveConnectionTunnel-Objekt, wenn dies erfolgreich war, ansonsten NULL.

CodiererNachricht

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

Endpunkte aktualisieren

WEAVE_ERROR RefreshEndpoints(
  void
)

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

Details
Rückgabewerte
WEAVE_NO_ERROR
zum erfolgreichen Aktualisieren der Endpunkte.
InetLayer
die auf Aufrufen zum Erstellen von TCP/UDP-Endpunkten basieren.

Nachricht erneut senden

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Sende eine codierte Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt noch einmal.

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

Nachricht erneut senden

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

Sende eine codierte Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt noch einmal.

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

Nachricht erneut senden

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

Sende eine codierte Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt noch einmal.

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

Nachricht erneut senden

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

Sende eine codierte Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt noch einmal.

Hinweis:Wenn die Zieladresse nicht angegeben wurde, versuchen Sie, sie anhand der Knotenkennung im Nachrichtenheader zu ermitteln. Fehlgeschlagen, wenn dies nicht möglich ist – Wenn die Zieladresse eine Fabric-Adresse für die lokale Fabric 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
Zielport.
[in] interfaceId
Die Schnittstelle, an die die Weave-Nachricht gesendet werden soll.
[in] msgInfo
Ein Zeiger auf das Objekt WeaveMessageInfo.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die codierte Weave-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
die an die Netzwerkebene gesendet wurde.
errors
die während des Sendens vom unteren UDP-Endpunkt der Inet-Ebene generiert wurde.

Nachricht senden

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Sende nach der Codierung eine Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt.

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

Nachricht senden

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

Sende nach der Codierung eine Weave-Nachricht über den 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. Fehlgeschlagen, wenn dies nicht möglich ist

– Wenn die Zieladresse eine Fabric-Adresse für die lokale Fabric 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 über die zu sendende Nachricht enthält.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die codierte Weave-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
die an die Netzwerkebene gesendet wurde.
errors
die während des Sendens vom unteren UDP-Endpunkt der Inet-Ebene generiert wurde.

Nachricht senden

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

Sende nach der Codierung eine Weave-Nachricht über den zugrunde liegenden Inetlayer UDP-Endpunkt.

Hinweis: Wenn die Zieladresse nicht angegeben wurde, versuchen Sie, sie anhand der Knotenkennung im Nachrichtenheader zu ermitteln. Fehlgeschlagen, wenn dies nicht möglich ist – Wenn die Zieladresse eine Fabric-Adresse für die lokale Fabric 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
Zielport.
[in] sendIntfId
Die Schnittstelle, an die die Weave-Nachricht gesendet werden soll.
[in] msgInfo
Ein Zeiger auf ein WeaveMessageInfo-Objekt, das Informationen über die zu sendende Nachricht enthält.
[in] payload
Ein Zeiger auf das PacketBuffer-Objekt, das die codierte Weave-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
die an die Netzwerkebene gesendet wurde.
WEAVE_ERROR_INVALID_ADDRESS
wenn destAddr nicht angegeben ist oder nicht anhand der Zielknoten-ID ermittelt werden kann.
errors
die während des Sendens vom unteren UDP-Endpunkt der Inet-Ebene generiert wurde.

UDPTunneledMessage senden

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

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

Eine getunnelte IPv6-Datennachricht über UDP senden.

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

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

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

Insbesondere wird die App jedes Mal benachrichtigt:

  • ändert sich die Anzahl der geöffneten Anzeigenplattformen.
  • Die Anzahl der ausstehenden Anfragen zur Zählersynchronisierung für Nachrichtenzähler ändert sich von null in mindestens eins und zurück zu null. Der Handler dient als allgemeines Signal und gibt an, ob es noch laufende Weave-Unterhaltungen oder ausstehende Antworten gibt. Der Handler muss nach der Initialisierung von WeaveMessageLayer festgelegt werden. Durch das Herunterfahren von WeaveMessageLayer wird der aktuelle Handler gelöscht.

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

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

Aktivieren oder deaktivieren Sie die Überwachung für eingehende TCP-Verbindungen in der WeaveMessageLayer.

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

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

Aktivieren oder deaktivieren Sie die Überwachung für eingehende UDP-Nachrichten in der WeaveMessageLayer.

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

FestgelegteVerbindungs-Listener

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

Heruntergefahren

WEAVE_ERROR Shutdown(
  void
)

Fahren Sie WeaveMessageLayer herunter.

Schließen Sie alle offenen Inet-Layer-Endpunkte und setzen Sie alle Callbacks auf höherer Ebene, Mitgliedervariablen und Objekte zurück. Durch den Aufruf von Herunterfahren() wird das Objekt WeaveMessageLayer beendet.

TCPListen aktiviert

bool TCPListenEnabled(
  void
) const 

Prüfen Sie, ob WeaveMessageLayer für die Überwachung eingehender TCP-Verbindungen konfiguriert ist.

UDP anhören

bool UDPListenEnabled(
  void
) const 

Prüfen Sie, ob WeaveMessageLayer für die Überwachung eingehender UDP-Nachrichten konfiguriert ist.

UnsecureListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

Aktivieren oder Deaktivieren des Initiierens von Weave-UDP-Austauschen über einen sitzungsspezifischen UDP-Quellport.

HINWEIS: RefreshEndpoints() muss aufgerufen werden, nachdem der flüchtige Portstatus geändert wurde. Prüfen Sie, ob die ungeschützte Wiedergabe aktiviert ist.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Der Konstruktor der Weave-Nachrichtenschicht.

Ö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 maximale zurückgegebene Nutzlastgröße überschreitet nicht den verfügbaren Speicherplatz für eine Nutzlast im bereitgestellten PacketBuffer.

Wenn die Nachricht UDP ist, führt die maximale zurückgegebene Nutzlastgröße nicht zu einer Weave-Nachricht, die den angegebenen UDP-MTU-Wert nicht überläuft.

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

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 falsch ist.
Rückgabe
die maximale Weave-Nutzlastgröße.

Peer-Beschreibung abrufen

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 Adressen-/Verbindungsinformationen beschreibt.

Der generierte String hat das folgende Format:

 ([]:%, con )

Details
Parameter
[in] buf
Ein Zeiger auf einen Zwischenspeicher, in den der String geschrieben werden soll. Der bereitgestellte Puffer muss mindestens so groß wie „kWeavePeerDescription_MaxLength“ sein. Wenn ein kleinerer Puffer angegeben wird, wird der String abgeschnitten. Die Ausgabe enthält in allen Fällen ein NUL-Beendigungszeichen.
[in] bufSize
Die Größe des Zwischenspeichers, auf den buf verweist.
[in] nodeId
Die zu druckende Knoten-ID.
[in] addr
Ein Zeiger auf eine zu druckende IP-Adresse oder NULL, wenn keine IP-Adresse gedruckt werden soll
[in] port
Eine zu druckende IP-Portnummer. Wenn der Aussteller 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 Schnittstellen-ID INET_NULL_INTERFACEID lautet oder der Add-on NULL ist, 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.

Peer-Beschreibung abrufen

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

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

Details
Parameter
[in] buf
Ein Zeiger auf einen Zwischenspeicher, in den der String geschrieben werden soll. Der bereitgestellte Puffer muss mindestens so groß wie „kWeavePeerDescription_MaxLength“ sein. Wenn ein kleinerer Puffer angegeben wird, wird der String abgeschnitten. Die Ausgabe enthält in allen Fällen ein NUL-Beendigungszeichen.
[in] bufSize
Die Größe des Zwischenspeichers, auf den buf verweist.
[in] msgInfo
Ein Verweis auf eine WeaveMessageInfo-Struktur mit Informationen zur Nachricht.