nl::Weave::WeaveMessageLayer

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

Definicja klasy WeaveMessageLayer, która zarządza komunikacją z innymi węzłami Weave.

Podsumowanie

Wykorzystuje jeden z kilku punktów końcowych InetLayer do ustanowienia kanału komunikacyjnego z innymi węzłami Weave.

Konstruktory i niszczyciele

WeaveMessageLayer(void)
Konstruktor warstwy Weave Message.

Typy publiczne

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym najwyższego poziomu służącym do zgłaszania błędu podczas obsługi przychodzącego połączenia TCP.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
Ta funkcja jest wywoływana w celu usunięcia wywołania zwrotnego.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym wyższego poziomu w zakresie obsługi przychodzącego połączenia TCP.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym aplikacji służącym do raportowania zmiany aktywności warstwy wiadomości.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Ta funkcja to wywołanie zwrotne wyższej warstwy, które jest wywoływane po otrzymaniu komunikatu Weave przez UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym z wyższej warstwy, który jest wywoływany po napotkaniu błędu.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum | typ wyliczeniowy
Stan obiektu WeaveMessageLayer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Ta funkcja to wywołanie zwrotne wyższej warstwy, które jest wywoływane po otrzymaniu pakietu z tunelu przez lokalny tunel UDP.

Atrybuty publiczne

AppState
void *
Wskaźnik do obiektu stanu określonej aplikacji.
ExchangeMgr
[TYLKO DO ODCZYTU] Powiązany obiekt WeaveExchangeManager.
FabricState
[READ ONLY] Powiązany obiekt WeaveFabricState.
IncomingConIdleTimeout
uint32_t
Domyślny limit czasu bezczynności (w milisekundach) dla połączeń przychodzących.
Inet
InetLayer *
[READ ONLY] Powiązany obiekt InetLayer.
IsListening
bool
[READ ONLY] Prawda, jeśli nasłuchuje połączeń/wiadomości przychodzących. W przeciwnym razie ma wartość false (fałsz).
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[READ ONLY] Powiązany obiekt WeaveSecurityManager.
State
uint8_t
[READ ONLY] Stan obiektu WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Tylko do użytku wewnętrznego i do debugowania; Po ustawieniu funkcja WeaveMessageLayer usuwa wiadomość i zwraca ją.

Funkcje publiczne

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
Zamknij wszystkie otwarte punkty końcowe TCP i UDP.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
Utwórz element WeaveConnectionTunnel, łącząc ze sobą 2 określone połączenia WeaveConnections.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Dekodowanie nagłówka warstwy Weave Message z odebranej wiadomości Weave.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Zakoduj nagłówek WeaveMessageLayer w PacketBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Zakoduj nagłówek warstwy Weave Message w elemencie PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Sprawdź, czy inicjowane lokalnie giełdy UDP Weave powinny być wysyłane z efemerycznego portu źródłowego UDP.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Pobierz liczbę używanych połączeń WeaveConnections i rozmiar puli.
IPv4ListenEnabled(void) const
bool
Sprawdź, czy w interfejsie WeaveMessageLayer skonfigurowano nasłuchiwanie komunikacji przychodzącej przez IPv4.
IPv6ListenEnabled(void) const
bool
Sprawdź, czy w interfejsie WeaveMessageLayer skonfigurowano nasłuchiwanie komunikacji przychodzącej przez IPv4.
Init(InitContext *context)
Zainicjuj obiekt warstwy Weave Message.
IsBoundToLocalIPv4Address(void) const
bool
Sprawdź, czy kolumna WeaveMessageLayer jest powiązana z lokalnym adresem IPv4.
IsBoundToLocalIPv6Address(void) const
bool
Sprawdź, czy kolumna WeaveMessageLayer jest powiązana z lokalnym adresem IPv6.
IsMessageLayerActive(void)
bool
NewConnection(void)
Utwórz nowy obiekt WeaveConnection z puli.
NewConnectionTunnel(void)
Utwórz nowy obiekt WeaveConnectionTunnel z puli.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
Odśwież punkty końcowe InetLayer na podstawie bieżącego stanu interfejsów sieciowych systemu.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Wyślij ponownie zakodowaną wiadomość Weave przy użyciu bazowego punktu końcowego UDP usługi Inetlayer.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Wyślij ponownie zakodowaną wiadomość Weave przy użyciu bazowego punktu końcowego UDP usługi Inetlayer.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Wyślij ponownie zakodowaną wiadomość Weave przy użyciu bazowego punktu końcowego UDP usługi Inetlayer.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Wyślij ponownie zakodowaną wiadomość Weave przy użyciu bazowego punktu końcowego UDP usługi Inetlayer.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Po zakodowaniu wiadomości weave wyślij ją, korzystając z bazowego punktu końcowego UDP Inetlayer.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Po zakodowaniu wiadomości weave wyślij ją, korzystając z bazowego punktu końcowego UDP Inetlayer.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Po zakodowaniu wiadomości weave wyślij ją, korzystając z bazowego punktu końcowego UDP Inetlayer.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Funkcja wysyłająca pakiet z tunelu przez lokalny tunel UDP.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Ustaw moduł obsługi aplikacji, który będzie wywoływany po każdej zmianie aktywności warstwy wiadomości.
SetTCPListenEnabled(bool val)
void
Włącz lub wyłącz nasłuchiwanie przychodzących połączeń TCP w panelu WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
W narzędziu WeaveMessageLayer możesz włączyć lub wyłączyć nasłuchiwanie przychodzących wiadomości UDP.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
TCPListenEnabled(void) const
bool
Sprawdź, czy w interfejsie WeaveMessageLayer skonfigurowano nasłuchiwanie przychodzących połączeń TCP.
UDPListenEnabled(void) const
bool
Sprawdź, czy w interfejsie WeaveMessageLayer skonfigurowano nasłuchiwanie przychodzących wiadomości UDP.
UnsecuredListenEnabled(void) const
bool
Włącz lub wyłącz inicjowanie wymiany UDP Weave z efemerycznego portu źródłowego UDP.

Publiczne funkcje statyczne

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
Pobierz maksymalny rozmiar ładunku Weave dla konfiguracji wiadomości i dostarczonego bufora PacketBuffer.
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
Konstruuje ciąg znaków opisujący węzeł równorzędny i powiązany z nim adres / informacje o połączeniu.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Konstruuje ciąg znaków opisujący węzeł równorzędny na podstawie informacji powiązanych z wiadomością otrzymaną od peera.

Zajęcia

nl::Weave::WeaveMessageLayer::InitContext

Definicja klasy InitContext.

Typy publiczne

AcceptErrorFunct

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

Ta funkcja jest wywołaniem zwrotnym najwyższego poziomu służącym do zgłaszania błędu podczas obsługi przychodzącego połączenia TCP.

Szczegóły
Parametry
[in] msgLayer
Wskaźnik do obiektu WeaveMessageLayer.
[in] err
Wystąpił błąd WEAVE_ERROR podczas obsługi przychodzącego połączenia TCP.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

Ta funkcja jest wywoływana w celu usunięcia wywołania zwrotnego.

Szczegóły
Parametry
[in] listenerState
Wskaźnik do obiektu stanu aplikacji.

ConnectionReceiveFunct

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

Ta funkcja jest wywołaniem zwrotnym wyższego poziomu w zakresie obsługi przychodzącego połączenia TCP.

Szczegóły
Parametry
[in] msgLayer
Wskaźnik do obiektu WeaveMessageLayer.
[in] con
Wskaźnik do obiektu WeaveConnection.

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

Ta funkcja to wywołanie zwrotne aplikacji do raportowania zmiany aktywności warstwy wiadomości.

Warstwa wiadomości jest uznawana za aktywną, jeśli istnieje co najmniej jedno otwarte żądanie wymiany lub oczekujące żądanie synchronizacji licznika wiadomości.

Szczegóły
Parametry
[in] messageLayerIsActive
Wartość logiczna wskazująca, czy warstwa komunikatów jest aktywna czy nie.

MessageReceiveFunct

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

Ta funkcja to wywołanie zwrotne wyższej warstwy, które jest wywoływane po otrzymaniu komunikatu Weave przez UDP.

Szczegóły
Parametry
[in] msgLayer
Wskaźnik do obiektu WeaveMessageLayer.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] payload
Wskaźnik do komunikatu PacketBuffer zawierającego odebrane pakiety tunelowe.

ReceiveErrorFunct

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

Ta funkcja jest wywołaniem zwrotnym z wyższej warstwy, który jest wywoływany po napotkaniu błędu.

Szczegóły
Parametry
[in] msgLayer
Wskaźnik do obiektu WeaveMessageLayer.
[in] err
Podczas odbierania danych wystąpił błąd WEAVE_ERROR.
[in] pktInfo
Wskaźnik tylko do odczytu do obiektu IPPacketInfo.

Stan

 State

Stan obiektu WeaveMessageLayer.

Właściwości
kState_Initialized

Określa, kiedy zasada WeaveMessageLayer jest inicjowana.

kState_Initializing

Wskazuje, kiedy trwa inicjowanie WeaveMessageLayer.

kState_NotInitialized

Stan, w którym nie zainicjowano WeaveMessageLayer.

TunneledMsgReceiveFunct

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

Ta funkcja to wywołanie zwrotne wyższej warstwy, które jest wywoływane po otrzymaniu pakietu z tunelu przez lokalny tunel UDP.

Szczegóły
Parametry
[in] msgLayer
Wskaźnik do obiektu WeaveMessageLayer.
[in] payload
Wskaźnik do komunikatu PacketBuffer zawierającego odebrane pakiety tunelowe.

Atrybuty publiczne

AppState

void * AppState

Wskaźnik do obiektu stanu określonej aplikacji.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[TYLKO DO ODCZYTU] Powiązany obiekt WeaveExchangeManager.

FabricState

WeaveFabricState * FabricState

[READ ONLY] Powiązany obiekt WeaveFabricState.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

Domyślny limit czasu bezczynności (w milisekundach) dla połączeń przychodzących.

Inet

InetLayer * Inet

[READ ONLY] Powiązany obiekt InetLayer.

IsListening

bool IsListening

[READ ONLY] Prawda, jeśli nasłuchuje połączeń/wiadomości przychodzących. W przeciwnym razie ma wartość false (fałsz).

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[READ ONLY] Powiązany obiekt WeaveSecurityManager.

Stan

uint8_t State

[READ ONLY] Stan obiektu WeaveMessageLayer.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Tylko do użytku wewnętrznego i debugowania; Po ustawieniu zasada WeaveMessageLayer usuwa wiadomość i zwraca ją.

Funkcje publiczne

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

Zamknij wszystkie otwarte punkty końcowe TCP i UDP.

Następnie przerwij wszystkie otwarte obiekty WeaveConnections i wyłącz wszystkie otwarte obiekty WeaveConnectionTunnel.

Zobacz też:
Wyłączanie().

CreateTunnel

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

Utwórz element WeaveConnectionTunnel, łącząc ze sobą 2 określone połączenia WeaveConnections.

Po utworzeniu połączenia punkty TCPEndPoint odpowiadające obiektom WeaveConnection komponentu są przekazywane do WeaveConnectionTunnel. W przeciwnym razie obiekt WeaveConnections jest zamknięty.

Szczegóły
Parametry
[out] tunPtr
Wskaźnik do wskaźnika obiektu WeaveConnectionTunnel.
[in] conOne
Odwołanie do pierwszego obiektu WeaveConnection.
[in] conTwo
Odwołanie do drugiego obiektu WeaveConnection.
[in] inactivityTimeoutMS
Maksymalny czas (w milisekundach), przez jaki tunel połączenia Weave może być nieaktywny.
Zwracane wartości
WEAVE_NO_ERROR
po utworzeniu WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
jeśli obiekty WeaveConnection elementu WeaveConnectionTunnel nie są w prawidłowym stanie.
WEAVE_ERROR_NO_MEMORY
jeśli nie można utworzyć nowego obiektu WeaveConnectionTunnel.

DecodeHeader

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

Dekodowanie nagłówka warstwy Weave Message z odebranej wiadomości Weave.

Szczegóły
Parametry
[in] msgBuf
Wskaźnik do obiektu PacketBuffer zawierającego wiadomość Weave.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo, który otrzyma informacje o wiadomości.
[out] payloadStart
Wskaźnik wskazujący pozycję w buforze wiadomości po zakończeniu dekodowania.
Zwracane wartości
WEAVE_NO_ERROR
Po pomyślnym zdekodowaniu nagłówka wiadomości.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Jeśli przesłany bufor wiadomości ma nieprawidłową długość.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Jeśli format nagłówka Weave Message nie jest obsługiwany.

EncodeMessage

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

Zakoduj nagłówek WeaveMessageLayer w PacketBuffer.

Szczegóły
Parametry
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo zawierającego informacje o wiadomości do zakodowania.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer, w którym znajduje się wiadomość Weave.
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] maxLen
Maksymalna długość zakodowanej wiadomości weave.
[in] reserve
Zarezerwowane miejsce przed ładunkiem na nagłówek wiadomości Weave.
Zwracane wartości
WEAVE_NO_ERROR
po udanym zakodowaniu wiadomości.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
jeśli wersja formatu nagłówka Weave Message nie jest obsługiwana.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
jeśli długość ładunku w buforze wiadomości wynosi zero.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
jeśli typ szyfrowania w nagłówku wiadomości nie jest obsługiwany.
WEAVE_ERROR_MESSAGE_TOO_LONG
jeśli zakodowana wiadomość byłaby dłuższa niż żądane maksimum.
WEAVE_ERROR_BUFFER_TOO_SMALL
jeśli przed ładunkiem wiadomości lub po nim nie ma wystarczającej ilości miejsca.
other
błędów wygenerowanych przez obiekt stanu tkaniny podczas pobierania stanu sesji.

EncodeMessage

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

Zakoduj nagłówek warstwy Weave Message w elemencie PacketBuffer.

Szczegóły
Parametry
[in] destAddr
Docelowy adres IP.
[in] destPort
Port docelowy.
[in] sendIntId
Interfejs, za pomocą którego ma zostać wysłana wiadomość Weave.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] payload
Wskaźnik do obiektu PacketBuffer, w którym znajduje się wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po udanym zakodowaniu wiadomości Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
jeśli wersja Weave Message nie jest obsługiwana.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
jeśli długość ładunku w buforze wiadomości wynosi zero.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
, jeśli dany typ szyfrowania nie jest obsługiwany.
WEAVE_ERROR_MESSAGE_TOO_LONG
jeśli zakodowana wiadomość byłaby dłuższa niż żądane maksimum.
WEAVE_ERROR_BUFFER_TOO_SMALL
jeśli przed ładunkiem wiadomości lub po nim nie ma wystarczającej ilości miejsca.
other
błędów wygenerowanych przez obiekt stanu tkaniny podczas pobierania stanu sesji.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

Sprawdź, czy inicjowane lokalnie giełdy UDP Weave powinny być wysyłane z efemerycznego portu źródłowego UDP.

GetConnectionPoolStats

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

Pobierz liczbę używanych połączeń WeaveConnections i rozmiar puli.

Szczegóły
Parametry
[out] aOutInUse
Odwołanie do atrybutu rozmiar_t, w którym zapisywana jest liczba używanych połączeń.

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

Sprawdź, czy w interfejsie WeaveMessageLayer skonfigurowano nasłuchiwanie komunikacji przychodzącej przez IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Sprawdź, czy w interfejsie WeaveMessageLayer skonfigurowano nasłuchiwanie komunikacji przychodzącej przez IPv4.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Zainicjuj obiekt warstwy Weave Message.

Szczegóły
Parametry
[in] context
Wskaźnik do obiektu InitContext.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym zainicjowaniu.
WEAVE_ERROR_INVALID_ARGUMENT
jeśli przekazany obiekt InitContext ma wartość NULL.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan obiektu WeaveMessageLayer jest nieprawidłowy.
other
błędów wygenerowanych z dolnej warstwy Inet podczas tworzenia punktu końcowego.

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

Sprawdź, czy kolumna WeaveMessageLayer jest powiązana z lokalnym adresem IPv4.

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

Sprawdź, czy kolumna WeaveMessageLayer jest powiązana z lokalnym adresem IPv6.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

Utwórz nowy obiekt WeaveConnection z puli.

Szczegóły
Zwroty
wskaźnik do nowo utworzonego obiektu WeaveConnection, jeśli operacja się uda, lub wskaż wartość NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Utwórz nowy obiekt WeaveConnectionTunnel z puli.

Szczegóły
Zwroty
wskaźnik do nowo utworzonego obiektu WeaveConnectionTunnel, jeśli operacja się uda, lub wskaż wartość NULL.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

Odśwież punkty końcowe InetLayer na podstawie bieżącego stanu interfejsów sieciowych systemu.

Szczegóły
Zwracane wartości
WEAVE_NO_ERROR
po odświeżeniu punktów końcowych.
InetLayer
na podstawie wywołań tworzenia punktów końcowych TCP/UDP.

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Wyślij ponownie zakodowaną wiadomość Weave przy użyciu bazowego punktu końcowego UDP usługi Inetlayer.

Szczegóły
Parametry
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] payload
Wskaźnik do obiektu PacketBuffer zawierającego zakodowaną wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
na wysłanie wiadomości do warstwy sieciowej.
errors
wygenerowany z punktu końcowego UDP niższego poziomu warstwy Inet podczas wysyłania.

ResendMessage

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

Wyślij ponownie zakodowaną wiadomość Weave przy użyciu bazowego punktu końcowego UDP usługi Inetlayer.

Szczegóły
Parametry
[in] destAddr
Docelowy adres IP.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] payload
Wskaźnik do obiektu PacketBuffer zawierającego zakodowaną wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
na wysłanie wiadomości do warstwy sieciowej.
errors
wygenerowany z punktu końcowego UDP niższego poziomu warstwy Inet podczas wysyłania.

ResendMessage

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

Wyślij ponownie zakodowaną wiadomość Weave przy użyciu bazowego punktu końcowego UDP usługi Inetlayer.

Szczegóły
Parametry
[in] destAddr
Docelowy adres IP.
[in] destPort
Port docelowy.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] payload
Wskaźnik do obiektu PacketBuffer zawierającego zakodowaną wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
na wysłanie wiadomości do warstwy sieciowej.
errors
wygenerowany z punktu końcowego UDP niższego poziomu warstwy Inet podczas wysyłania.

ResendMessage

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

Wyślij ponownie zakodowaną wiadomość Weave przy użyciu bazowego punktu końcowego UDP usługi Inetlayer.

Uwaga: jeśli adres docelowy nie został podany, spróbuj go określić na podstawie identyfikatora węzła w nagłówku wiadomości. Jeśli nie można tego zrobić, zrób błąd. - Jeśli adres miejsca docelowego jest adresem w tkaninie dla lokalnej tkaniny, a użytkownik wywołujący nie podał identyfikatora węzła docelowego, wyodrębnij go z adresu docelowego.

Szczegóły
Parametry
[in] aDestAddr
Docelowy adres IP.
[in] destPort
Port docelowy.
[in] interfaceId
Interfejs, za pomocą którego ma zostać wysłana wiadomość Weave.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] payload
Wskaźnik do obiektu PacketBuffer zawierającego zakodowaną wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
na wysłanie wiadomości do warstwy sieciowej.
errors
wygenerowany z punktu końcowego UDP niższego poziomu warstwy Inet podczas wysyłania.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Po zakodowaniu wiadomości weave wyślij ją, korzystając z bazowego punktu końcowego UDP Inetlayer.

Szczegóły
Parametry
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo zawierającego informacje o wiadomości do wysłania.
[in] payload
Wskaźnik do obiektu PacketBuffer zawierającego zakodowaną wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
na wysłanie wiadomości do warstwy sieciowej.
errors
wygenerowany z punktu końcowego UDP niższego poziomu warstwy Inet podczas wysyłania.

SendMessage

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

Po zakodowaniu wiadomości weave wyślij ją, korzystając z bazowego punktu końcowego UDP Inetlayer.

Uwaga: używany port docelowy to WEAVE_PORT. – Jeśli adres docelowy nie został podany, spróbuj go określić na podstawie identyfikatora węzła w nagłówku wiadomości. Jeśli nie można tego zrobić, zrób błąd.

- Jeśli adres miejsca docelowego jest adresem w tkaninie dla lokalnej tkaniny, a użytkownik wywołujący nie podał identyfikatora węzła docelowego, wyodrębnij go z adresu docelowego.

Szczegóły
Parametry
[in] destAddr
Docelowy adres IP.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo z informacjami o wiadomości do wysłania.
[in] payload
Wskaźnik do obiektu PacketBuffer zawierającego zakodowaną wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
na wysłanie wiadomości do warstwy sieciowej.
errors
wygenerowany z punktu końcowego UDP niższego poziomu warstwy Inet podczas wysyłania.

SendMessage

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

Po zakodowaniu wiadomości weave wyślij ją, korzystając z bazowego punktu końcowego UDP Inetlayer.

Uwaga: jeśli adres docelowy nie został podany, spróbuj go określić na podstawie identyfikatora węzła w nagłówku wiadomości. Jeśli nie można tego zrobić, zrób błąd. - Jeśli adres miejsca docelowego jest adresem w tkaninie dla lokalnej tkaniny, a użytkownik wywołujący nie podał identyfikatora węzła docelowego, wyodrębnij go z adresu docelowego.

Szczegóły
Parametry
[in] aDestAddr
Docelowy adres IP.
[in] destPort
Port docelowy.
[in] sendIntfId
Interfejs, za pomocą którego ma zostać wysłana wiadomość Weave.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo zawierającego informacje o wiadomości do wysłania.
[in] payload
Wskaźnik do obiektu PacketBuffer zawierającego zakodowaną wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
na wysłanie wiadomości do warstwy sieciowej.
WEAVE_ERROR_INVALID_ADDRESS
jeśli destAddr nie jest określony lub nie można go ustalić na podstawie identyfikatora węzła docelowego.
errors
wygenerowany z punktu końcowego UDP niższego poziomu warstwy Inet podczas wysyłania.

SendUDPTunneledMessage

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

Funkcja wysyłająca pakiet z tunelu przez lokalny tunel UDP.

Wyślij tunelowany komunikat danych IPv6 przez UDP.

Szczegóły
Parametry
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] destAddr
Adres IP miejsca docelowego tunelu UDP.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer zawierającego pakiet do wysłania.
Zwracane wartości
WEAVE_NO_ERROR
na wysłanie wiadomości do warstwy sieciowej.
WEAVE_ERROR_INVALID_ADDRESS
jeśli destAddr nie jest określony lub nie można go ustalić na podstawie identyfikatora węzła docelowego.
errors
wygenerowany z punktu końcowego UDP niższego poziomu warstwy Inet podczas wysyłania.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Ustaw moduł obsługi aplikacji, który będzie wywoływany po każdej zmianie aktywności warstwy wiadomości.

W szczególności aplikacja będzie powiadamiana za każdym razem:

  • liczba otwartych giełd zmienia się.
  • liczba oczekujących żądań synchronizacji licznika wiadomości zmieni się od 0 na co najmniej 1 i cofnie się do zera. Moduł obsługi służy jako ogólny sygnał wskazujący, czy są jakieś trwające rozmowy Weave lub oczekujące odpowiedzi. Moduł obsługi musi być ustawiony po zainicjowaniu WeaveMessageLayer. wyłączenie modułu WeaveMessageLayer spowoduje wyczyszczenie bieżącego modułu obsługi.

Szczegóły
Parametry
[in] messageLayerActivityChangeHandler
Wskaźnik do funkcji, która ma być wywoływana po każdej zmianie aktywności warstwy wiadomości.
Zwracane wartości
None.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

Włącz lub wyłącz nasłuchiwanie przychodzących połączeń TCP w panelu WeaveMessageLayer.

UWAGA: po zmianie stanu nasłuchiwania TCP musi zostać wywołana funkcja RefreshEndpoints().

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

W narzędziu WeaveMessageLayer możesz włączyć lub wyłączyć nasłuchiwanie przychodzących wiadomości UDP.

UWAGA: po zmianie stanu nasłuchiwania UDP należy wywołać funkcję RefreshEndpoints().

SetUnsecuredConnectionListener

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

Wyłączono

WEAVE_ERROR Shutdown(
  void
)

Wyłącz WeaveMessageLayer.

Zamknij wszystkie otwarte punkty końcowe warstwy Inet i zresetuj wszystkie wywołania zwrotne, zmienne składowe i obiekty wyższej warstwy. Wywołanie Disabledown() zamyka obiekt WeaveMessageLayer.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Sprawdź, czy w interfejsie WeaveMessageLayer skonfigurowano nasłuchiwanie przychodzących połączeń TCP.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Sprawdź, czy w interfejsie WeaveMessageLayer skonfigurowano nasłuchiwanie przychodzących wiadomości UDP.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

Włącz lub wyłącz inicjowanie wymiany UDP Weave z efemerycznego portu źródłowego UDP.

UWAGA: po zmianie stanu portu efemerycznego należy wywołać funkcję RefreshEndpoints(). Sprawdź, czy jest włączona opcja słuchania bez zabezpieczeń.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Konstruktor warstwy Weave Message.

.

Publiczne funkcje statyczne

GetMaxWeavePayloadSize

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

Pobierz maksymalny rozmiar ładunku Weave dla konfiguracji wiadomości i dostarczonego bufora PacketBuffer.

Maksymalny zwrócony ładunek nie przekroczy miejsca dostępnego dla ładunku w podanym pakiecie PacketBuffer.

Jeśli wiadomość jest UDP, maksymalny zwrócony ładunek nie spowoduje otrzymania komunikatu Weave, który nie przekroczy określonego limitu MTU UDP.

Maksymalny zwrócony ładunek nie spowoduje przesłania komunikatu Weave, który przekroczy maksymalny rozmiar wiadomości Weave.

Szczegóły
Parametry
[in] msgBuf
Wskaźnik do obiektu PacketBuffer, w którym zostanie zapisany ładunek wiadomości.
[in] isUDP
Wartość true, jeśli wiadomość jest wiadomością UDP.
[in] udpMTU
Rozmiar MTU UDP. Ignorowana, jeśli parametr isUDP ma wartość false (fałsz).
Zwroty
maksymalny rozmiar ładunku Weave.

GetPeerDescription

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

Konstruuje ciąg znaków opisujący węzeł równorzędny i powiązany z nim adres / informacje o połączeniu.

Wygenerowany ciąg ma taki format:

 ([]:%, con )

Szczegóły
Parametry
[in] buf
Wskaźnik do bufora, w którym ma zostać zapisany ciąg. Dostarczony bufor powinien być co najmniej tak duży, jak kWeavePeerDescription_MaxLength. Jeśli podasz mniejszy bufor, ciąg znaków zostanie skrócony w celu dopasowania. We wszystkich przypadkach wynik będzie zawierał znak zakończenia NUL.
[in] bufSize
Rozmiar bufora wskazywanego przez buf.
[in] nodeId
Identyfikator węzła do wydrukowania.
[in] addr
wskaźnik do adresu IP do wydrukowania; lub NULL, jeśli nie należy drukować żadnego adresu IP.
[in] port
Numer portu IP do wydrukowania. Jeśli adres ma wartość NULL, numer portu nie będzie wyświetlany.
[in] interfaceId
Identyfikator interfejsu określający interfejs do wydrukowania. Ciąg wyjściowy będzie zawierał nazwę interfejsu znaną dla bazowego stosu sieciowego. Jeśli identyfikator interfejsu ma wartość INET_NULL_INTERFACEID lub parametr addr ma wartość NULL, nazwa interfejsu nie będzie wyświetlana.
[in] con
wskaźnik do obiektu WeaveConnection, którego identyfikator rejestrowania powinien zostać wydrukowany; lub NULL, jeśli nie należy drukować żadnego identyfikatora połączenia.

GetPeerDescription

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

Konstruuje ciąg znaków opisujący węzeł równorzędny na podstawie informacji powiązanych z wiadomością otrzymaną od peera.

Szczegóły
Parametry
[in] buf
Wskaźnik do bufora, w którym ma zostać zapisany ciąg. Dostarczony bufor powinien być co najmniej tak duży, jak kWeavePeerDescription_MaxLength. Jeśli podasz mniejszy bufor, ciąg znaków zostanie skrócony w celu dopasowania. We wszystkich przypadkach wynik będzie zawierał znak zakończenia NUL.
[in] bufSize
Rozmiar bufora wskazywanego przez buf.
[in] msgInfo
Wskaźnik do struktury WeaveMessageInfo zawierającej informacje o wiadomości.