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 komunikacji z innymi węzłami Weave.

Konstruktorzy i niszczyciele

WeaveMessageLayer(void)
Konstruktor warstwy wiadomości Weave.

Typy publiczne

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym wyż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 to wywołanie zwrotne wyższego poziomu do obsługi przychodzącego połączenia TCP.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji do raportowania zmiany aktywności w warstwie wiadomości.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Jest to wywołanie zwrotne wyższego poziomu, które jest wywoływane po odebraniu wiadomości Weave przez UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Jest to wywołanie zwrotne wyższego poziomu, wywoływane w przypadku wystąpienia 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(*
Jest to wywołanie zwrotne wyższego poziomu, które jest wywoływane po odebraniu pakietu przez tunel UDP.

Atrybuty publiczne

AppState
void *
Wskaźnik do obiektu stanu specyficznego dla aplikacji.
ExchangeMgr
[TYLKO DO ODCZYTU] Powiązany obiekt WeaveExchangeManager.
FabricState
[TYLKO DO ODCZYTU] Powiązany obiekt WeaveFabricState.
IncomingConIdleTimeout
uint32_t
Domyślny limit czasu bezczynności (w milisekundach) dla połączeń przychodzących.
Inet
InetLayer *
[TYLKO DO ODCZYTU] Powiązany obiekt InetLayer.
IsListening
bool
[TYLKO DO ODCZYTU] Prawda, jeśli nasłuchiwanie połączeń/wiadomości przychodzących. W przeciwnym razie ma wartość false.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[TYLKO DO ODCZYTU] Powiązany obiekt WeaveSecurityManager.
State
uint8_t
[TYLKO DO ODCZYTU] Stan obiektu WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Dane wewnętrzne i tylko do debugowania. Gdy jest ustawione, funkcja WeaveMessageLayer odrzuca komunikat 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 obiekt WeaveConnectionTunnel, łącząc ze sobą 2 określone połączenia WeaveConnections.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Zdekoduj nagłówek warstwy Wiadomości Weave z odebranej wiadomości Weave.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Zakoduj nagłówek WeaveMessageLayer do bufora pakietów.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Zakoduj nagłówek warstwy Weave Message w 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
Uzyskaj liczbę używanych połączeń WeaveConnections i rozmiar puli.
IPv4ListenEnabled(void) const
bool
Sprawdź, czy element WeaveMessageLayer jest skonfigurowany pod kątem nasłuchiwania komunikacji przychodzącej przez IPv4.
IPv6ListenEnabled(void) const
bool
Sprawdź, czy element WeaveMessageLayer jest skonfigurowany pod kątem nasłuchiwania komunikacji przychodzącej przez IPv4.
Init(InitContext *context)
Zainicjuj obiekt warstwy Weave Message.
IsBoundToLocalIPv4Address(void) const
bool
Sprawdź, czy element WeaveMessageLayer jest powiązany z lokalnym adresem IPv4.
IsBoundToLocalIPv6Address(void) const
bool
Sprawdź, czy element WeaveMessageLayer jest powiązany 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 za pomocą bazowego punktu końcowego UDP Inetlayer.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Wyślij ponownie zakodowaną wiadomość Weave za pomocą bazowego punktu końcowego UDP Inetlayer.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Wyślij ponownie zakodowaną wiadomość Weave za pomocą bazowego punktu końcowego UDP Inetlayer.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Wyślij ponownie zakodowaną wiadomość Weave za pomocą bazowego punktu końcowego UDP Inetlayer.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Po zakodowaniu wiadomości Weave wyślij wiadomość za pomocą bazowego punktu końcowego UDP Inetlayer.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Po zakodowaniu wiadomości Weave wyślij wiadomość za pomocą 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 wiadomość za pomocą bazowego punktu końcowego UDP Inetlayer.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Funkcja wysyłająca pakiet przez tunel UDP.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Ustaw moduł obsługi aplikacji, który będzie wywoływany za każdym razem, gdy zmieni się działanie warstwy wiadomości.
SetTCPListenEnabled(bool val)
void
Włącz lub wyłącz nasłuchiwanie przychodzących połączeń TCP w obrębie WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Włącz lub wyłącz nasłuchiwanie przychodzących wiadomości UDP w elemencie WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
TCPListenEnabled(void) const
bool
Sprawdź, czy element WeaveMessageLayer jest skonfigurowany pod kątem nasłuchiwania przychodzących połączeń TCP.
UDPListenEnabled(void) const
bool
Sprawdź, czy element WeaveMessageLayer jest skonfigurowany pod kątem nasłuchiwania 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
Uzyskaj maksymalny rozmiar ładunku Weave dla konfiguracji wiadomości i dostarczonego 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 lub informacje o połączeniu.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Tworzy 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 wyż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
Podczas obsługi przychodzącego połączenia TCP wystąpił błąd WEAVE_ERROR.

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 to wywołanie zwrotne 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 do raportowania zmiany aktywności w warstwie wiadomości.

Warstwa wiadomości jest uznawana za aktywną, jeśli istnieje co najmniej 1 otwarta wymiana 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)

Jest to wywołanie zwrotne wyższego poziomu, które jest wywoływane po odebraniu 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 komunikatu PacketBuffer zawierającego odebrany pakiet poddany tunelowaniu.

ReceiveErrorFunct

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

Jest to wywołanie zwrotne wyższego poziomu, wywoływane w przypadku wystąpienia 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 obiektu IPPacketInfo.

Stan

 State

Stan obiektu WeaveMessageLayer.

Właściwości
kState_Initialized

Stan zainicjowania obiektu WeaveMessageLayer.

kState_Initializing

Stan, w którym trwa inicjowanie obiektu WeaveMessageLayer.

kState_NotInitialized

Stan, gdy obiekt WeaveMessageLayer nie jest zainicjowany.

TunneledMsgReceiveFunct

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

Jest to wywołanie zwrotne wyższego poziomu, które jest wywoływane po odebraniu pakietu przez tunel UDP.

Szczegóły
Parametry
[in] msgLayer
Wskaźnik do obiektu WeaveMessageLayer.
[in] payload
Wskaźnik do komunikatu PacketBuffer zawierającego odebrany pakiet poddany tunelowaniu.

Atrybuty publiczne

AppState

void * AppState

Wskaźnik do obiektu stanu specyficznego dla aplikacji.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[TYLKO DO ODCZYTU] Powiązany obiekt WeaveExchangeManager.

FabricState

WeaveFabricState * FabricState

[TYLKO DO ODCZYTU] 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 ODCZYTU] Powiązany obiekt InetLayer.

IsListening

bool IsListening

[TYLKO DO ODCZYTU] Prawda, jeśli nasłuchiwanie połączeń/wiadomości przychodzących. W przeciwnym razie ma wartość false.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[TYLKO DO ODCZYTU] Powiązany obiekt WeaveSecurityManager.

Stan

uint8_t State

[TYLKO DO ODCZYTU] Stan obiektu WeaveMessageLayer.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Dane wewnętrzne i tylko do debugowania. Gdy jest ustawione, funkcja WeaveMessageLayer odrzuca komunikat 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 wyłącz wszystkie otwarte obiekty WeaveConnectionTunnel.

Zobacz też:
Shutdown().

CreateTunnel

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

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

Po udanym utworzeniu punkty TCPEndPoints odpowiadające obiektom WeaveConnection są przekazywane do WeaveConnectionTunnel. W przeciwnym razie obiekty WeaveConnections są zamykane.

Szczegóły
Parametry
[out] tunPtr
Wskaźnik obiektu WeaveConnectionTunnel.
[in] conOne
Odwołanie do pierwszego obiektu WeaveConnection.
[in] conTwo
Odwołanie do drugiego obiektu WeaveConnection.
[in] inactivityTimeoutMS
Maksymalny czas (w milisekundach) bezczynności tunelu połączenia Weave.
Zwracane wartości
WEAVE_NO_ERROR
dotyczące udanego utworzenia modułu WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
jeśli obiekty komponentu WeaveConnection WeaveConnectionTunnel są w nieprawidł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
)

Zdekoduj nagłówek warstwy Wiadomości Weave z odebranej wiadomości Weave.

Szczegóły
Parametry
[in] msgBuf
Wskaźnik do obiektu PacketBuffer, w którym znajduje się wiadomość Weave.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo, który otrzyma informacje o wiadomości.
[out] payloadStart
Wskaźnik do pozycji w buforze wiadomości po zakończeniu dekodowania.
Zwracane wartości
WEAVE_NO_ERROR
Po udanym zdekodowaniu nagłówka wiadomości.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Jeśli przekazany bufor wiadomości ma nieprawidłową długość.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Jeśli wersja formatu nagłówka wiadomości Weave nie jest obsługiwana.

EncodeMessage

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

Zakoduj nagłówek WeaveMessageLayer do bufora pakietów.

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 będzie przechowywana wiadomość Weave.
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] maxLen
Maksymalna długość zakodowanej wiadomości Weave.
[in] reserve
Zarezerwowana przestrzeń przed ładunkiem, w której znajduje się nagłówek wiadomości Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym zakodowaniu wiadomości.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
jeśli wersja formatu nagłówka wiadomości Weave 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 jest za mało miejsca przed ładunkiem wiadomości lub po nim.
other
generowane 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 PacketBuffer.

Szczegóły
Parametry
[in] destAddr
Docelowy adres IP.
[in] destPort
Port docelowy.
[in] sendIntId
Interfejs, do którego należy wysłać wiadomość Weave.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] payload
Wskaźnik do obiektu PacketBuffer, w którym będzie przechowywana 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 jest za mało miejsca przed ładunkiem wiadomości lub po nim.
other
generowane 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 

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

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

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

Sprawdź, czy element WeaveMessageLayer jest skonfigurowany pod kątem nasłuchiwania komunikacji przychodzącej przez IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Sprawdź, czy element WeaveMessageLayer jest skonfigurowany pod kątem nasłuchiwania komunikacji przychodzącej przez IPv4.

Zainicjuj

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
przy udanym 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
generowane przez dolną warstwę inet podczas tworzenia punktu końcowego.

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

Sprawdź, czy element WeaveMessageLayer jest powiązany z lokalnym adresem IPv4.

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

Sprawdź, czy element WeaveMessageLayer jest powiązany 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. W przeciwnym razie ma 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. W przeciwnym razie ma 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
pomyślnego odświeżania punktów końcowych.
InetLayer
oparte na wywołaniach tworzenia punktów końcowych TCP/UDP.

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Wyślij ponownie zakodowaną wiadomość Weave za pomocą bazowego punktu końcowego UDP Inetlayer.

Szczegóły
Parametry
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] payload
Wskaźnik do obiektu PacketBuffer, w którym znajduje się zakodowana wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu wiadomości do warstwy sieciowej.
errors
generowanego z punktu końcowego UDP dolnej warstwy w trakcie wysyłania.

ResendMessage

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

Wyślij ponownie zakodowaną wiadomość Weave za pomocą bazowego punktu końcowego UDP Inetlayer.

Szczegóły
Parametry
[in] destAddr
Docelowy adres IP.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] payload
Wskaźnik do obiektu PacketBuffer, w którym znajduje się zakodowana wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu wiadomości do warstwy sieciowej.
errors
generowanego z punktu końcowego UDP dolnej warstwy w trakcie wysyłania.

ResendMessage

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

Wyślij ponownie zakodowaną wiadomość Weave za pomocą bazowego punktu końcowego UDP 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, w którym znajduje się zakodowana wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu wiadomości do warstwy sieciowej.
errors
generowanego z punktu końcowego UDP dolnej warstwy w trakcie wysyłania.

ResendMessage

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

Wyślij ponownie zakodowaną wiadomość Weave za pomocą bazowego punktu końcowego UDP Inetlayer.

Uwaga: jeśli adres docelowy nie został podany, spróbuj określić go na podstawie identyfikatora węzła w nagłówku wiadomości. Niepowodzenie, jeśli nie można tego zrobić. – Jeśli adres docelowy jest adresem tkaniny lokalnej, a element 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, do którego należy wysłać wiadomość Weave.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] payload
Wskaźnik do obiektu PacketBuffer, w którym znajduje się zakodowana wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu wiadomości do warstwy sieciowej.
errors
generowanego z punktu końcowego UDP dolnej warstwy w trakcie wysyłania.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Po zakodowaniu wiadomości Weave wyślij wiadomość za pomocą bazowego punktu końcowego UDP Inetlayer.

Szczegóły
Parametry
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo zawierającego informacje o wiadomości, która ma zostać wysłana.
[in] payload
Wskaźnik do obiektu PacketBuffer, w którym znajduje się zakodowana wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu wiadomości do warstwy sieciowej.
errors
generowanego z punktu końcowego UDP dolnej warstwy w trakcie wysyłania.

SendMessage

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

Po zakodowaniu wiadomości Weave wyślij wiadomość za pomocą bazowego punktu końcowego UDP Inetlayer.

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

– Jeśli adres docelowy jest adresem tkaniny lokalnej, a element wywołujący nie określił 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 wiadomości, która ma zostać wysłana.
[in] payload
Wskaźnik do obiektu PacketBuffer, w którym znajduje się zakodowana wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu wiadomości do warstwy sieciowej.
errors
generowanego z punktu końcowego UDP dolnej warstwy w trakcie 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 wiadomość za pomocą bazowego punktu końcowego UDP Inetlayer.

Uwaga: jeśli adres docelowy nie został podany, spróbuj określić go na podstawie identyfikatora węzła w nagłówku wiadomości. Niepowodzenie, jeśli nie można tego zrobić. – Jeśli adres docelowy jest adresem tkaniny lokalnej, a element 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] sendIntfId
Interfejs, do którego należy wysłać wiadomość Weave.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo zawierającego informacje o wiadomości, która ma zostać wysłana.
[in] payload
Wskaźnik do obiektu PacketBuffer, w którym znajduje się zakodowana wiadomość Weave.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu wiadomości do warstwy sieciowej.
WEAVE_ERROR_INVALID_ADDRESS
jeśli docAddr nie jest określony lub nie można go określić na podstawie identyfikatora węzła docelowego.
errors
generowanego z punktu końcowego UDP dolnej warstwy w trakcie wysyłania.

SendUDPTunneledMessage

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

Funkcja wysyłająca pakiet przez tunel UDP.

Wyślij tunelowaną wiadomość 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, w którym znajduje się pakiet do wysłania.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu wiadomości do warstwy sieciowej.
WEAVE_ERROR_INVALID_ADDRESS
jeśli docAddr nie jest określony lub nie można go określić na podstawie identyfikatora węzła docelowego.
errors
generowanego z punktu końcowego UDP dolnej warstwy w trakcie 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ę działanie warstwy wiadomości.

W szczególności zgłoszenie jest wysyłane za każdym razem, gdy:

  • zmienia się liczba otwartych giełd.
  • liczba oczekujących żądań synchronizacji licznika wiadomości zmieni się z 0 na co najmniej 1 i z powrotem na 0. 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 obiektu WeaveMessageLayer. Wyłączenie WeaveMessageLayer spowoduje wyczyszczenie bieżącego modułu.

Szczegóły
Parametry
[in] messageLayerActivityChangeHandler
Wskaźnik do funkcji, która ma być wywoływana po każdej zmianie działania 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 obrębie WeaveMessageLayer.

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

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

Włącz lub wyłącz nasłuchiwanie przychodzących wiadomości UDP w elemencie WeaveMessageLayer.

UWAGA: RefreshEndpoints() musi zostać wywołana po zmianie stanu nasł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, zresetuj wszystkie wywołania zwrotne warstwy wyższej, zmienne składowe i obiekty. Wywołanie Shutdown() kończy działanie obiektu WeaveMessageLayer.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Sprawdź, czy element WeaveMessageLayer jest skonfigurowany pod kątem nasłuchiwania przychodzących połączeń TCP.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Sprawdź, czy element WeaveMessageLayer jest skonfigurowany pod kątem nasłuchiwania 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ć RefreshEndpoints(). Sprawdź, czy włączone jest niezabezpieczone słuchanie.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Konstruktor warstwy wiadomości Weave.

Publiczne funkcje statyczne

GetMaxWeavePayloadSize

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

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

Maksymalny rozmiar zwróconego ładunku nie przekroczy miejsca dostępnego na ładunek w podanym buforze pakietów.

Jeśli wiadomość jest w formacie UDP, maksymalny zwrócony ładunek nie spowoduje wyświetlenia komunikatu Weave, który nie przekroczy określonego protokołu UDP MTU.

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

Szczegóły
Parametry
[in] msgBuf
Wskaźnik do bufora pakietów, w którym zostanie zapisany ładunek wiadomości.
[in] isUDP
Prawda, jeśli wiadomość jest wiadomością UDP.
[in] udpMTU
Rozmiar MTU UDP. Ignorowana, jeśli argument 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 lub informacje o połączeniu.

Wygenerowany ciąg znaków ma ten format:

 ([]:%, con )

Szczegóły
Parametry
[in] buf
Wskaźnik do bufora, w którym należy zapisać ciąg znaków. Przesłany bufor powinien mieć rozmiar co najmniej kWeavePeerDescription_MaxLength. Jeśli zostanie podany mniejszy bufor, ciąg zostanie przycięty, aby się zmieścił. Dane wyjściowe we wszystkich przypadkach będą zawierać znak zakończenia NUL.
[in] bufSize
Rozmiar bufora wskazywany przez bufor.
[in] nodeId
Identyfikator węzła do wydrukowania.
[in] addr
Wskaźnik do adresu IP do wydrukowania lub wartość NULL, jeśli nie należy drukować żadnego adresu IP.
[in] port
Numer portu IP do wydrukowania. Jeśli parametr addr ma wartość NULL, żaden numer portu nie zostanie wydrukowany.
[in] interfaceId
Identyfikator interfejsu określający interfejs do wydrukowania. Ciąg wyjściowy będzie zawierał nazwę interfejsu znaną dla bazowego stosu sieciowego. Nazwa interfejsu nie zostanie wyświetlona, jeśli parametr InterfaceId ma wartość INET_NULL_INTERFACEID lub parametr addr ma wartość NULL.
[in] con
Wskaźnik do obiektu WeaveConnection, którego identyfikator logowania powinien być wydrukowany, lub wartość NULL, jeśli nie należy wydrukować identyfikatora połączenia.

GetPeerDescription

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

Tworzy 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 należy zapisać ciąg znaków. Przesłany bufor powinien mieć rozmiar co najmniej kWeavePeerDescription_MaxLength. Jeśli zostanie podany mniejszy bufor, ciąg zostanie przycięty, aby się zmieścił. Dane wyjściowe we wszystkich przypadkach będą zawierać znak zakończenia NUL.
[in] bufSize
Rozmiar bufora wskazywany przez bufor.
[in] msgInfo
Wskaźnik do struktury WeaveMessageInfo zawierającej informacje o wiadomości.