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 destruktory

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 do obsługi przychodzącego połączenia TCP.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji służące do zgłaszania zmian aktywności warstwy wiadomości.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym wyższego poziomu, 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 wyższego poziomu wywoływanym po napotkaniu błędu.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum | typ wyliczeniowy
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Ta funkcja to wywołanie zwrotne wyższego poziomu, które jest wywoływane po otrzymaniu tunelowanego pakietu przez lokalny tunel UDP.

Atrybuty publiczne

AppState
void *
Wskaźnik do obiektu stanu konkretnej aplikacji.
ExchangeMgr
[TYLKO DO ODCZYTU] Powiązany obiekt WeaveExchangeManager.
FabricState
[TYLKO DO CZYTANIA] Powiązany obiekt WeaveFabricState.
IncomingConIdleTimeout
uint32_t
Domyślny czas bezczynności (w milisekundach) dla połączeń przychodzących.
Inet
InetLayer *
[TYLKO DO CZYTANIA] 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
[TYLKO DO CZYTANIA] Powiązany obiekt WeaveSecurityManager.
State
uint8_t
[TYLKO DO CZYTANIA] Stan obiektu WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Wewnętrzny i tylko do debugowania. Gdy jest ustawiony, WeaveMessageLayer odrzuca wiadomość i zwraca.

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 tunel WeaveConnection, łącząc 2 wybrane połączenia Weave.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Odkoduj nagłówek warstwy Weave Message z otrzymanej wiadomości Weave.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Kodowanie nagłówka WeaveMessageLayer w buforze pakietów.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Kodowanie nagłówka warstwy Weave Message w buforze pakietów.
EphemeralUDPPortEnabled(void) const
bool
Sprawdź, czy wymiany UDP Weave inicjowane lokalnie 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ń Weave i rozmiar puli.
IPv4ListenEnabled(void) const
bool
Sprawdź, czy komponent WeaveMessageLayer jest skonfigurowany tak, aby nasłuchiwać przychodzącej komunikacji przez IPv4.
IPv6ListenEnabled(void) const
bool
Sprawdź, czy komponent WeaveMessageLayer jest skonfigurowany tak, aby nasłuchiwać przychodzącej komunikacji przez IPv4.
Init(InitContext *context)
Inicjalizacja obiektu warstwy Weave Message.
IsBoundToLocalIPv4Address(void) const
bool
Sprawdź, czy WeaveMessageLayer jest powiązany 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żanie punktów końcowych InetLayer na podstawie bieżącego stanu interfejsów sieciowych systemu.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Ponowne wysłanie zakodowanej wiadomości Weave za pomocą podstawowego punktu końcowego Inetlayer UDP.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Ponowne wysłanie zakodowanego komunikatu Weave za pomocą podstawowego punktu końcowego Inetlayer UDP.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Ponowne wysłanie zakodowanego komunikatu Weave za pomocą podstawowego punktu końcowego Inetlayer UDP.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Ponowne wysłanie zakodowanego komunikatu Weave za pomocą podstawowego punktu końcowego Inetlayer UDP.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Wysyłanie wiadomości Weave za pomocą podstawowego punktu końcowego Inetlayer UDP po jej zakodowaniu.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Wysyłanie wiadomości Weave za pomocą podstawowego punktu końcowego Inetlayer UDP po jej zakodowaniu.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Wysyłanie wiadomości Weave za pomocą podstawowego punktu końcowego Inetlayer UDP po jej zakodowaniu.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Funkcja wysyłania tunelowanego pakietu przez lokalny tunel UDP.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Ustaw moduł obsługi aplikacji, który będzie wywoływany za każdym razem, gdy zmieni się aktywność warstwy komunikatu.
SetTCPListenEnabled(bool val)
void
Włącz lub wyłącz nasłuchiwanie przychodzących połączeń TCP w WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Włącz lub wyłącz nasłuchiwanie przychodzących wiadomości UDP w WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
TCPListenEnabled(void) const
bool
Sprawdź, czy komponent WeaveMessageLayer jest skonfigurowany do nasłuchiwania połączeń przychodzących TCP.
UDPListenEnabled(void) const
bool
Sprawdź, czy WeaveMessageLayer jest skonfigurowany do nasłuchiwania przychodzących wiadomości UDP.
UnsecuredListenEnabled(void) const
bool
Włączanie lub wyłączanie inicjowania wymiany danych Weave UDP z efemerycznego portu źródłowego UDP.

Public static functions

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
Pobiera maksymalny rozmiar ładunku Weave dla konfiguracji wiadomości i podawanego bufora pakietów.
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
Tworzy ciąg znaków opisujący węzeł peera na podstawie informacji powiązanych z otrzymaną od niego wiadomością.

Zajęcia

nl::Weave::WeaveMessageLayer::InitContext

Definicja klasy InitContext.

Typy publiczne

AcceptErrorFunct

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

Ta funkcja jest wywoływana z wyższego poziomu w celu zgłaszania błędów 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 do 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 służące do zgłaszania zmian 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 wiadomości jest aktywna.

MessageReceiveFunct

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

Ta funkcja to wywołanie zwrotne wyższego poziomu, które jest wywoływane po otrzymaniu wiadomości 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 wiadomości PacketBuffer zawierającej odebrany tunelowany pakiet.

ReceiveErrorFunct

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

Ta funkcja jest wywołaniem zwrotnym wyższego poziomu wywoływanym 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 WeaveMessageLayer.

Właściwości
kState_Initialized

Określa, kiedy zasada WeaveMessageLayer jest inicjowana.

kState_Initializing

Wskazuje, kiedy trwa inicjowanie WeaveMessageLayer.

kState_NotInitialized

Stan, gdy WeaveMessageLayer nie jest zainicjowany.

TunneledMsgReceiveFunct

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

Ta funkcja to wywołanie zwrotne wyższego poziomu, które jest wywoływane po otrzymaniu tunelowanego pakietu przez lokalny tunel UDP.

Szczegóły
Parametry
[in] msgLayer
Wskaźnik do obiektu WeaveMessageLayer.
[in] payload
Wskaźnik do wiadomości PacketBuffer zawierającej odebrany tunelowany pakiet.

Atrybuty publiczne

AppState

void * AppState

Wskaźnik do obiektu stanu określonej aplikacji.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[TYLKO DO CZYTANIA] Powiązany obiekt WeaveExchangeManager.

FabricState

WeaveFabricState * FabricState

[TYLKO DO CZYTANIA] Powiązany obiekt WeaveFabricState.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

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

Inet

InetLayer * Inet

[TYLKO DO CZYTANIA] Powiązany obiekt InetLayer.

IsListening

bool IsListening

[TYLKO DO CZYTANIA] Wartość „prawda”, jeśli nasłuchuje przychodzących połączeń lub wiadomości, a w przeciwnym razie – „fałsz”.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[TYLKO DO CZYTANIA] Powiązany obiekt WeaveSecurityManager.

Stan

uint8_t State

[TYLKO DO CZYTANIA] Stan obiektu WeaveMessageLayer.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Wewnętrzny i tylko do debugowania. Gdy jest ustawiony, WeaveMessageLayer odrzuca wiadomość i zwraca.

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 połączenia WeaveConnections i zamknij wszystkie otwarte obiekty WeaveConnectionTunnel.

Zobacz też:
Wyłączanie().

CreateTunnel

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

Utwórz tunel WeaveConnection, łącząc 2 wybrane połączenia Weave.

Po utworzeniu obiektów TCPEndPoints odpowiadających obiektom WeaveConnection komponentu są przekazywane do WeaveConnectionTunnel. W przeciwnym razie połączenia Weave są zamykane.

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 komponentu 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
)

Odkoduj nagłówek warstwy Weave Message z otrzymanej 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 do wskaźnika pozycji w buforze wiadomości po zakończeniu dekodowania.
Zwracane wartości
WEAVE_NO_ERROR
Po pomyślnym odkodowaniu 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, która ma zostać zakodowana.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer, który przechowuje wiadomość Weave.
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] maxLen
Maksymalna długość zakodowanego komunikatu Weave.
[in] reserve
Zarezerwowane miejsce przed ładunkiem, w którym znajduje się nagłówek wiadomości Weave.
Zwracane wartości
WEAVE_NO_ERROR
po udanym zakodowaniu wiadomości.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
jeśli format nagłówka wiadomości Weave nie jest obsługiwany.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
jeśli długość ładunku w buforze wiadomości wynosi 0.
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ść będzie dłuższa niż maksymalna dozwolona długość.
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 generowanych przez obiekt stanu usługi podczas pobierania stanu sesji.

EncodeMessage

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

Kodowanie nagłówka warstwy Weave Message w buforze pakietów.

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, który przechowuje wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym 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 0.
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 generowanych przez obiekt stanu usługi podczas pobierania stanu sesji.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

Sprawdź, czy wymiany Weave UDP inicjowane lokalnie 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ń Weave i rozmiar puli.

Szczegóły
Parametry
[out] aOutInUse
Odwołuje się do typu size_t, w którym przechowywana jest liczba połączeń.

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

Sprawdź, czy usługa WeaveMessageLayer jest skonfigurowana tak, aby nasłuchiwać przychodzącej komunikacji przez IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Sprawdź, czy komponent WeaveMessageLayer jest skonfigurowany tak, aby nasłuchiwać przychodzącej komunikacji przez IPv4.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Inicjuje obiekt warstwy Weave Message.

Szczegóły
Parametry
[in] context
Wskaźnik do obiektu InitContext.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnej inicjalizacji.
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 przez niższą warstwę 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ę powiodła, w przeciwnym razie NULL.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

Odświeżanie punktów końcowych InetLayer na podstawie bieżącego stanu interfejsów sieciowych systemu.

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

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Ponowne wysłanie zakodowanego komunikatu Weave za pomocą podstawowego punktu końcowego Inetlayer UDP.

Szczegóły
Parametry
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] payload
Wskaźnik do obiektu PacketBuffer przechowującego zakodowaną wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu komunikatu do warstwy sieci.
errors
wygenerowany podczas wysyłania z niższego punktu końcowego UDP warstwy Inet.

ResendMessage

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

Ponowne wysłanie zakodowanej wiadomości Weave za pomocą podstawowego punktu końcowego Inetlayer UDP.

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

ResendMessage

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

Ponowne wysłanie zakodowanego komunikatu Weave za pomocą podstawowego punktu końcowego Inetlayer UDP.

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
po pomyślnym wysłaniu komunikatu do warstwy sieci.
errors
wygenerowany podczas wysyłania z niższego punktu końcowego UDP warstwy Inet.

ResendMessage

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

Ponowne wysłanie zakodowanej wiadomości Weave za pomocą podstawowego punktu końcowego Inetlayer UDP.

Uwaga: jeśli adres docelowy nie został podany, spróbuj go określić na podstawie identyfikatora węzła w nagłówku wiadomości. Niepowodzenie, jeśli nie można tego zrobić. – Jeśli adres docelowy to adres sieci lokalnej, a wywołujący nie określił 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 można wysłać 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
po pomyślnym wysłaniu komunikatu do warstwy sieci.
errors
generowany podczas wysyłania z niższego punktu końcowego UDP warstwy Inet.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Wysyłanie wiadomości Weave za pomocą podstawowego punktu końcowego Inetlayer UDP po jej zakodowaniu.

Szczegóły
Parametry
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo zawierającego informacje o wysyłanej wiadomości.
[in] payload
Wskaźnik do obiektu PacketBuffer przechowującego zakodowaną wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu komunikatu do warstwy sieci.
errors
generowany podczas wysyłania z niższego punktu końcowego UDP warstwy Inet.

SendMessage

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

Wysyłanie wiadomości Weave za pomocą podstawowego punktu końcowego Inetlayer UDP po jej zakodowaniu.

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 będzie można tego zrobić, zrób błąd.

– Jeśli adres docelowy to adres sieci lokalnej, a 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 zawierającego informacje o wysyłanej wiadomości.
[in] payload
Wskaźnik do obiektu PacketBuffer przechowującego zakodowaną wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu komunikatu do warstwy sieci.
errors
generowany podczas wysyłania z niższego punktu końcowego UDP warstwy Inet.

SendMessage

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

Wysyłanie wiadomości Weave za pomocą podstawowego punktu końcowego Inetlayer UDP po jej zakodowaniu.

Uwaga: jeśli adres docelowy nie został podany, spróbuj go określić na podstawie identyfikatora węzła w nagłówku wiadomości. Niepowodzenie, jeśli nie można tego zrobić. – Jeśli adres docelowy to adres sieci lokalnej, a 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 wysyłanej wiadomości.
[in] payload
Wskaźnik do obiektu PacketBuffer przechowującego zakodowaną wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu komunikatu do warstwy sieci.
WEAVE_ERROR_INVALID_ADDRESS
jeśli adres docelowy nie jest określony lub nie można go określić na podstawie identyfikatora węzła docelowego.
errors
wygenerowany podczas wysyłania z niższego punktu końcowego UDP warstwy Inet.

SendUDPTunneledMessage

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

Funkcja wysyłania tunelowanego pakietu przez lokalny tunel UDP.

wysyłać wiadomości danych IPv6 w tunelu 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 przechowującego pakiet do wysłania.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu komunikatu do warstwy sieci.
WEAVE_ERROR_INVALID_ADDRESS
jeśli adres docelowy nie jest określony lub nie można go określić na podstawie identyfikatora węzła docelowego.
errors
generowany 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 za każdym razem, gdy zmieni się aktywność warstwy komunikatu.

Aplikacja będzie otrzymywać powiadomienia za każdym razem, gdy:

  • zmienia się liczba otwartych wymian.
  • liczba oczekujących żądań synchronizacji zlicznika wiadomości zmienia się z 0 na co najmniej 1 i z powrotem na 0. Obsługa jest wyświetlana jako sygnał ogólny wskazujący, czy są jakieś trwające rozmowy Weave lub oczekujące odpowiedzi. Moduł obsługi musi być ustawiony po zainicjowaniu WeaveMessageLayer. Wyłączenie WeaveMessageLayer spowoduje wyczyszczenie bieżącego modułu.

Szczegóły
Parametry
[in] messageLayerActivityChangeHandler
Wskaźnik do funkcji, która zostanie wywołana, gdy zmieni się aktywność 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 WeaveMessageLayer.

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

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

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

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

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() kończy działanie obiektu WeaveMessageLayer.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Sprawdź, czy komponent WeaveMessageLayer jest skonfigurowany do nasłuchiwania połączeń przychodzących 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łączanie lub wyłączanie inicjowania wymiany danych Weave UDP z efemerycznego portu źródłowego UDP.

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

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Konstruktor warstwy wiadomości Weave.

Public static functions

GetMaxWeavePayloadSize

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

Pobiera maksymalny rozmiar ładunku Weave dla konfiguracji wiadomości i podawanego bufora pakietów.

Zwrócony maksymalny rozmiar ładunku nie przekroczy dostępnej przestrzeni na ładunek w dostarczonym buforze pakietów.

Jeśli wiadomość jest w formacie UDP, zwrócony maksymalny rozmiar ładunku nie spowoduje, że wiadomość Weave przekroczy określony MTU UDP.

Wreszcie zwrócony maksymalny rozmiar ładunku nie spowoduje, że wiadomość Weave przekroczy maksymalny rozmiar wiadomości Weave.

Szczegóły
Parametry
[in] msgBuf
Wskaźnik do bufora pakietów, do którego zostanie zapisany ładunek wiadomości.
[in] isUDP
Wartość true, jeśli wiadomość jest wiadomością UDP.
[in] udpMTU
Rozmiar MTU UDP. Ta wartość jest ignorowana, jeśli isUDP ma wartość false.
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 drukowanego adresu IP lub NULL, jeśli adres IP nie ma być drukowany.
[in] port
Numer portu IP do wydrukowania. Jeśli adres jest NULL, nie zostanie wydrukowany żaden numer portu.
[in] interfaceId
Identyfikator interfejsu identyfikujący interfejs do wydrukowania. Ciąg tekstowy wyjściowy zawiera nazwę interfejsu, jaką zna podstawowy moduł sieciowy. 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 logowania ma zostać wydrukowany, lub NULL, jeśli nie ma być drukowany identyfikator 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 zmienną buf.
[in] msgInfo
Wskaźnik do struktury WeaveMessageInfo zawierającej informacje o wiadomości.