nl::Weave::WeaveMessageLayer

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

다른 Weave 노드와의 통신을 관리하는 WeaveMessageLayer 클래스의 정의입니다.

요약

여러 InetLayer 엔드포인트 중 하나를 사용하여 다른 Weave 노드와 통신 채널을 설정합니다.

생성자 및 소멸자

WeaveMessageLayer(void)
Weave 메시지 레이어 생성자입니다.

공개 유형

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
이 함수는 들어오는 TCP 연결을 처리하는 동안 오류를 보고하는 상위 레이어 콜백입니다.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
이 함수는 콜백을 삭제하기 위해 호출됩니다.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
이 함수는 들어오는 TCP 연결을 처리하기 위한 상위 계층 콜백입니다.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
이 함수는 메시지 레이어 활동 변경을 보고하기 위한 애플리케이션 콜백입니다.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
이 함수는 UDP를 통해 Weave 메시지를 수신할 때 호출되는 상위 레이어 콜백입니다.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
이 함수는 오류 발생 시 호출되는 상위 레이어 콜백입니다.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
WeaveMessageLayer의 상태입니다.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
이 함수는 로컬 UDP 터널을 통해 터널링된 패킷을 수신할 때 호출되는 상위 레이어 콜백입니다.

공개 속성

AppState
void *
애플리케이션별 상태 객체에 대한 포인터입니다.
ExchangeMgr
[읽기 전용] 관련 WeaveExchangeManager 개체
FabricState
[읽기 전용] 연결된 WeaveFabricState 객체입니다.
IncomingConIdleTimeout
uint32_t
수신 연결의 기본 유휴 제한 시간 (밀리초)입니다.
Inet
InetLayer *
[읽기 전용] 관련 InetLayer 객체입니다.
IsListening
bool
[읽기 전용] 수신 연결/메시지를 수신 대기하는 경우 true, 그렇지 않은 경우 false입니다.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[읽기 전용] 관련 WeaveSecurityManager 개체
State
uint8_t
[읽기 전용] WeaveMessageLayer 객체의 상태입니다.
SystemLayer
mDropMessage
bool
내부 및 디버그 전용입니다. 설정되면 WeaveMessageLayer에서 메시지를 삭제하고 반환합니다.

공개 함수

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
열려 있는 TCP 및 UDP 엔드포인트를 모두 닫습니다.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
지정된 두 개의 WeaveConnection을 결합하여 WeaveConnectionTunnel을 만듭니다.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
수신된 Weave 메시지에서 Weave 메시지 레이어 헤더를 디코딩합니다.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
WeaveMessageLayer 헤더를 PacketBuffer에 인코딩합니다.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Weave 메시지 레이어 헤더를 PacketBuffer에 인코딩합니다.
EphemeralUDPPortEnabled(void) const
bool
로컬에서 시작된 Weave UDP 교환이 임시 UDP 소스 포트에서 전송되어야 하는지 확인합니다.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
사용 중인 WeaveConnections의 수와 풀의 크기를 가져옵니다.
IPv4ListenEnabled(void) const
bool
WeaveMessageLayer가 IPv4를 통한 인바운드 통신을 리슨하도록 구성되어 있는지 확인합니다.
IPv6ListenEnabled(void) const
bool
WeaveMessageLayer가 IPv4를 통한 인바운드 통신을 리슨하도록 구성되어 있는지 확인합니다.
Init(InitContext *context)
Weave 메시지 레이어 객체를 초기화합니다.
IsBoundToLocalIPv4Address(void) const
bool
WeaveMessageLayer가 로컬 IPv4 주소에 바인딩되었는지 확인합니다.
IsBoundToLocalIPv6Address(void) const
bool
WeaveMessageLayer가 로컬 IPv6 주소에 바인딩되었는지 확인합니다.
IsMessageLayerActive(void)
bool
NewConnection(void)
풀에서 새 WeaveConnection 객체를 만듭니다.
NewConnectionTunnel(void)
풀에서 새 WeaveConnectionTunnel 객체를 만듭니다.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
시스템 네트워크 인터페이스의 현재 상태를 기반으로 InetLayer 엔드포인트를 새로고침합니다.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
기본 Inetlayer UDP 엔드포인트를 사용하여 인코딩된 Weave 메시지를 다시 보냅니다.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
기본 Inetlayer UDP 엔드포인트를 사용하여 인코딩된 Weave 메시지를 다시 보냅니다.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
기본 Inetlayer UDP 엔드포인트를 사용하여 인코딩된 Weave 메시지를 다시 보냅니다.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
기본 Inetlayer UDP 엔드포인트를 사용하여 인코딩된 Weave 메시지를 다시 보냅니다.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
인코딩 후 기본 Inetlayer UDP 엔드포인트를 사용하여 Weave 메시지를 전송합니다.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
인코딩 후 기본 Inetlayer UDP 엔드포인트를 사용하여 Weave 메시지를 전송합니다.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
인코딩 후 기본 Inetlayer UDP 엔드포인트를 사용하여 Weave 메시지를 전송합니다.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
로컬 UDP 터널을 통해 터널링된 패킷을 전송하는 함수입니다.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
메시지 레이어의 활동이 변경될 때마다 호출되는 애플리케이션 핸들러를 설정합니다.
SetTCPListenEnabled(bool val)
void
WeaveMessageLayer에서 인바운드 TCP 연결 리슨을 사용 설정 또는 중지합니다.
SetUDPListenEnabled(bool val)
void
WeaveMessageLayer에서 인바운드 UDP 메시지 리슨을 사용 설정 또는 중지합니다.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
WeaveMessageLayer를 종료합니다.
TCPListenEnabled(void) const
bool
WeaveMessageLayer가 인바운드 TCP 연결을 리슨하도록 구성되어 있는지 확인합니다.
UDPListenEnabled(void) const
bool
WeaveMessageLayer가 인바운드 UDP 메시지를 리슨하도록 구성되어 있는지 확인합니다.
UnsecuredListenEnabled(void) const
bool
임시 UDP 소스 포트에서 Weave UDP 교환을 시작 또는 사용 중지합니다.

공개 정적 함수

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
메시지 구성 및 제공된 PacketBuffer에 대한 최대 Weave 페이로드 크기를 가져옵니다.
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
피어 노드 및 관련 주소 / 연결 정보를 설명하는 문자열을 생성합니다.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
동종 업체로부터 수신한 메시지와 연결된 정보를 기반으로 동종 업체 노드를 설명하는 문자열을 생성합니다.

클래스

nl::Weave::WeaveMessageLayer::InitContext

InitContext 클래스의 정의입니다.

공개 유형

AcceptErrorFunct

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

이 함수는 들어오는 TCP 연결을 처리하는 동안 오류를 보고하는 상위 레이어 콜백입니다.

세부정보
매개변수
[in] msgLayer
WeaveMessageLayer 객체에 대한 포인터입니다.
[in] err
들어오는 TCP 연결을 처리할 때 WEAVE_ERROR가 발생했습니다.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

이 함수는 콜백을 삭제하기 위해 호출됩니다.

세부정보
매개변수
[in] listenerState
애플리케이션 상태 객체를 가리키는 포인터입니다.

ConnectionReceiveFunct

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

이 함수는 들어오는 TCP 연결을 처리하기 위한 상위 계층 콜백입니다.

세부정보
매개변수
[in] msgLayer
WeaveMessageLayer 객체에 대한 포인터입니다.
[in] con
WeaveConnection 객체에 대한 포인터입니다.

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

이 함수는 메시지 레이어 활동 변경을 보고하기 위한 애플리케이션 콜백입니다.

진행 중인 교환 또는 대기 중인 메시지 카운터 동기화 요청이 하나 이상 있는 경우 메일 레이어가 활성 상태로 간주됩니다.

세부정보
매개변수
[in] messageLayerIsActive
메시지 레이어가 활성 상태인지 여부를 나타내는 불리언 값입니다.

MessageReceiveFunct

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

이 함수는 UDP를 통해 Weave 메시지를 수신할 때 호출되는 상위 레이어 콜백입니다.

세부정보
매개변수
[in] msgLayer
WeaveMessageLayer 객체에 대한 포인터입니다.
[in] msgInfo
WeaveMessageInfo 객체에 대한 포인터입니다.
[in] payload
터널링된 패킷을 포함하는 PacketBuffer 메시지에 대한 포인터입니다.

ReceiveErrorFunct

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

이 함수는 오류 발생 시 호출되는 상위 레이어 콜백입니다.

세부정보
매개변수
[in] msgLayer
WeaveMessageLayer 객체에 대한 포인터입니다.
[in] err
데이터를 수신할 때 WEAVE_ERROR가 발생했습니다.
[in] pktInfo
IPPacketInfo 객체에 대한 읽기 전용 포인터입니다.

상태

 State

WeaveMessageLayer의 상태입니다.

속성
kState_Initialized

WeaveMessageLayer가 초기화될 때의 상태입니다.

kState_Initializing

WeaveMessageLayer가 초기화되는 중일 때의 상태입니다.

kState_NotInitialized

WeaveMessageLayer가 초기화되지 않은 경우의 상태입니다.

TunneledMsgReceiveFunct

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

이 함수는 로컬 UDP 터널을 통해 터널링된 패킷을 수신할 때 호출되는 상위 레이어 콜백입니다.

세부정보
매개변수
[in] msgLayer
WeaveMessageLayer 객체에 대한 포인터입니다.
[in] payload
터널링된 패킷을 포함하는 PacketBuffer 메시지에 대한 포인터입니다.

공개 속성

AppState

void * AppState

애플리케이션별 상태 객체에 대한 포인터입니다.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[읽기 전용] 관련 WeaveExchangeManager 개체

FabricState

WeaveFabricState * FabricState

[읽기 전용] 연결된 WeaveFabricState 객체입니다.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

수신 연결의 기본 유휴 제한 시간 (밀리초)입니다.

이네트

InetLayer * Inet

[읽기 전용] 관련 InetLayer 객체입니다.

IsListening

bool IsListening

[읽기 전용] 수신 연결/메시지를 수신 대기하는 경우 true, 그렇지 않은 경우 false입니다.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[읽기 전용] 관련 WeaveSecurityManager 개체

상태

uint8_t State

[읽기 전용] WeaveMessageLayer 객체의 상태입니다.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

내부 및 디버그 전용입니다. 설정되면 WeaveMessageLayer에서 메시지를 삭제하고 반환합니다.

공개 함수

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

열려 있는 TCP 및 UDP 엔드포인트를 모두 닫습니다.

그런 다음 열려 있는 WeaveConnections를 취소하고 열려 있는 모든 WeaveConnectionTunnel 객체를 종료합니다.

참고 항목:
Shutdown().

CreateTunnel

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

지정된 두 개의 WeaveConnection을 결합하여 WeaveConnectionTunnel을 만듭니다.

생성에 성공하면 구성요소 WeaveConnection 객체에 해당하는 TCPEndPoint가 WeaveConnectionTunnel에 넘겨지고 그렇지 않으면 WeaveConnections가 닫힙니다.

세부정보
매개변수
[out] tunPtr
WeaveConnectionTunnel 객체의 포인터에 대한 포인터입니다.
[in] conOne
첫 번째 WeaveConnection 객체에 대한 참조입니다.
[in] conTwo
두 번째 WeaveConnection 객체에 대한 참조입니다.
[in] inactivityTimeoutMS
Weave 연결 터널이 유휴 상태일 수 있는 최대 시간(밀리초)입니다.
반환 값
WEAVE_NO_ERROR
WeaveConnectionTunnel을 생성해도 되죠.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnectionTunnel의 구성요소 WeaveConnection 객체가 올바른 상태가 아닌 경우에 발생합니다.
WEAVE_ERROR_NO_MEMORY
WeaveConnectionTunnel 객체를 만들 수 없는 경우에 발생합니다.

DecodeHeader

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

수신된 Weave 메시지에서 Weave 메시지 레이어 헤더를 디코딩합니다.

세부정보
매개변수
[in] msgBuf
Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
[in] msgInfo
메시지에 대한 정보를 수신하는 WeaveMessageInfo 객체에 대한 포인터입니다.
[out] payloadStart
디코딩이 완료된 후 메시지 버퍼의 위치를 가리키는 포인터입니다.
반환 값
WEAVE_NO_ERROR
메일 헤더를 디코딩한 경우
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
전달된 메시지 버퍼의 길이가 잘못된 경우
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Weave Message 헤더 형식 버전이 지원되지 않는 경우

EncodeMessage

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

WeaveMessageLayer 헤더를 PacketBuffer에 인코딩합니다.

세부정보
매개변수
[in] msgInfo
인코딩할 메시지에 대한 정보가 포함된 WeaveMessageInfo 객체에 대한 포인터입니다.
[in] msgBuf
Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] maxLen
인코딩된 Weave 메시지의 최대 길이입니다.
[in] reserve
Weave 메시지 헤더를 보관할 페이로드 앞에 있는 예약된 공간입니다.
반환 값
WEAVE_NO_ERROR
자동으로 전달됩니다.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Weave Message 헤더 형식 버전이 지원되지 않는 경우입니다.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
메시지 버퍼의 페이로드 길이가 0인 경우입니다.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
메일 헤더의 암호화 유형이 지원되지 않는 경우
WEAVE_ERROR_MESSAGE_TOO_LONG
인코딩된 메시지가 요청된 최댓값보다 긴 경우에 발생합니다.
WEAVE_ERROR_BUFFER_TOO_SMALL
메시지 페이로드 앞뒤에 공간이 부족한 경우입니다.
other
세션 상태를 가져올 때 패브릭 상태 객체에 의해 생성된 오류

EncodeMessage

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

Weave 메시지 레이어 헤더를 PacketBuffer에 인코딩합니다.

세부정보
매개변수
[in] destAddr
대상 IP 주소입니다.
[in] destPort
목적지 포트입니다.
[in] sendIntId
Weave 메시지를 보낼 인터페이스입니다.
[in] msgInfo
WeaveMessageInfo 객체에 대한 포인터입니다.
[in] payload
Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
메시지를 반환합니다.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Weave Message 버전이 지원되지 않는 경우에 해당합니다.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
메시지 버퍼의 페이로드 길이가 0인 경우입니다.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
입니다.
WEAVE_ERROR_MESSAGE_TOO_LONG
인코딩된 메시지가 요청된 최댓값보다 긴 경우에 발생합니다.
WEAVE_ERROR_BUFFER_TOO_SMALL
메시지 페이로드 앞뒤에 공간이 부족한 경우입니다.
other
세션 상태를 가져올 때 패브릭 상태 객체에 의해 생성된 오류

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

로컬에서 시작된 Weave UDP 교환이 임시 UDP 소스 포트에서 전송되어야 하는지 확인합니다.

GetConnectionPoolStats

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

사용 중인 WeaveConnections의 수와 풀의 크기를 가져옵니다.

세부정보
매개변수
[out] aOutInUse
사용 중인 연결 수가 저장되는 size_t에 대한 참조입니다.

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

WeaveMessageLayer가 IPv4를 통한 인바운드 통신을 리슨하도록 구성되어 있는지 확인합니다.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

WeaveMessageLayer가 IPv4를 통한 인바운드 통신을 리슨하도록 구성되어 있는지 확인합니다.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Weave 메시지 레이어 객체를 초기화합니다.

세부정보
매개변수
[in] context
InitContext 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
자동으로 처리합니다
WEAVE_ERROR_INVALID_ARGUMENT
전달된 InitContext 객체가 NULL인 경우입니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveMessageLayer 객체의 상태가 잘못된 경우
other
엔드포인트 생성 중 하위 Inet 레이어에서 발생한 오류

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

WeaveMessageLayer가 로컬 IPv4 주소에 바인딩되었는지 확인합니다.

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

WeaveMessageLayer가 로컬 IPv6 주소에 바인딩되었는지 확인합니다.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

풀에서 새 WeaveConnection 객체를 만듭니다.

세부정보
반환
성공한 경우 새로 생성된 WeaveConnection 객체에 대한 포인터이고, 그러지 않은 경우에는 NULL입니다.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

풀에서 새 WeaveConnectionTunnel 객체를 만듭니다.

세부정보
반환
성공한 경우 새로 생성된 WeaveConnectionTunnel 객체에 대한 포인터이고, 그러지 않으면 NULL입니다.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

시스템 네트워크 인터페이스의 현재 상태를 기반으로 InetLayer 엔드포인트를 새로고침합니다.

세부정보
반환 값
WEAVE_NO_ERROR
자동으로 새로고침됩니다.
InetLayer
TCP/UDP 엔드포인트를 만드는 호출을 기반으로 한 오류를 해결합니다.

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

기본 Inetlayer UDP 엔드포인트를 사용하여 인코딩된 Weave 메시지를 다시 보냅니다.

세부정보
매개변수
[in] msgInfo
WeaveMessageInfo 객체에 대한 포인터입니다.
[in] payload
인코딩된 Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
네트워크 계층에 메시지를 성공적으로 보낼 수 있습니다
errors
전송 중에 하위 Inet 계층 UDP 엔드포인트에서 생성됩니다.

ResendMessage

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

기본 Inetlayer UDP 엔드포인트를 사용하여 인코딩된 Weave 메시지를 다시 보냅니다.

세부정보
매개변수
[in] destAddr
대상 IP 주소입니다.
[in] msgInfo
WeaveMessageInfo 객체에 대한 포인터입니다.
[in] payload
인코딩된 Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
네트워크 계층에 메시지를 성공적으로 보낼 수 있습니다
errors
전송 중에 하위 Inet 계층 UDP 엔드포인트에서 생성됩니다.

ResendMessage

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

기본 Inetlayer UDP 엔드포인트를 사용하여 인코딩된 Weave 메시지를 다시 보냅니다.

세부정보
매개변수
[in] destAddr
대상 IP 주소입니다.
[in] destPort
목적지 포트입니다.
[in] msgInfo
WeaveMessageInfo 객체에 대한 포인터입니다.
[in] payload
인코딩된 Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
네트워크 계층에 메시지를 성공적으로 보낼 수 있습니다
errors
전송 중에 하위 Inet 계층 UDP 엔드포인트에서 생성됩니다.

ResendMessage

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

기본 Inetlayer UDP 엔드포인트를 사용하여 인코딩된 Weave 메시지를 다시 보냅니다.

참고: - 목적지 주소가 제공되지 않은 경우 메일 헤더의 노드 식별자에서 목적지 주소를 확인해 보세요. 이 작업을 수행할 수 없는 경우 실패합니다. -대상 주소가 로컬 패브릭의 패브릭 주소이고 호출자가 대상 노드 ID를 지정하지 않은 경우 대상 주소에서 추출합니다.

세부정보
매개변수
[in] aDestAddr
대상 IP 주소입니다.
[in] destPort
목적지 포트입니다.
[in] interfaceId
Weave 메시지를 보낼 인터페이스입니다.
[in] msgInfo
WeaveMessageInfo 객체에 대한 포인터입니다.
[in] payload
인코딩된 Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
네트워크 계층에 메시지를 성공적으로 보낼 수 있습니다
errors
전송 중에 하위 Inet 계층 UDP 엔드포인트에서 생성됩니다.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

인코딩 후 기본 Inetlayer UDP 엔드포인트를 사용하여 Weave 메시지를 전송합니다.

세부정보
매개변수
[in] msgInfo
전송할 메시지에 대한 정보가 포함된 WeaveMessageInfo 객체에 대한 포인터입니다.
[in] payload
인코딩된 Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
네트워크 계층에 메시지를 성공적으로 보낼 수 있습니다
errors
전송 중에 하위 Inet 계층 UDP 엔드포인트에서 생성됩니다.

SendMessage

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

인코딩 후 기본 Inetlayer UDP 엔드포인트를 사용하여 Weave 메시지를 전송합니다.

참고: 사용되는 대상 포트는 WEAVE_PORT입니다. -대상 주소가 제공되지 않은 경우 메일 헤더의 노드 식별자에서 대상 주소를 확인해 봅니다. 이 작업을 수행할 수 없는 경우 실패합니다.

-대상 주소가 로컬 패브릭의 패브릭 주소이고 호출자가 대상 노드 ID를 지정하지 않은 경우 대상 주소에서 추출합니다.

세부정보
매개변수
[in] destAddr
대상 IP 주소입니다.
[in] msgInfo
전송할 메시지에 대한 정보가 포함된 WeaveMessageInfo 객체에 대한 포인터입니다.
[in] payload
인코딩된 Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
네트워크 계층에 메시지를 성공적으로 보낼 수 있습니다
errors
전송 중에 하위 Inet 계층 UDP 엔드포인트에서 생성됩니다.

SendMessage

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

인코딩 후 기본 Inetlayer UDP 엔드포인트를 사용하여 Weave 메시지를 전송합니다.

참고: - 목적지 주소가 제공되지 않은 경우 메일 헤더의 노드 식별자에서 목적지 주소를 확인해 보세요. 이 작업을 수행할 수 없는 경우 실패합니다. -대상 주소가 로컬 패브릭의 패브릭 주소이고 호출자가 대상 노드 ID를 지정하지 않은 경우 대상 주소에서 추출합니다.

세부정보
매개변수
[in] aDestAddr
대상 IP 주소입니다.
[in] destPort
목적지 포트입니다.
[in] sendIntfId
Weave 메시지를 보낼 인터페이스입니다.
[in] msgInfo
전송할 메시지에 대한 정보가 포함된 WeaveMessageInfo 객체에 대한 포인터입니다.
[in] payload
인코딩된 Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
네트워크 계층에 메시지를 성공적으로 보낼 수 있습니다
WEAVE_ERROR_INVALID_ADDRESS
destAddr가 지정되지 않았거나 대상 노드 ID에서 확인할 수 없는 경우
errors
전송 중에 하위 Inet 계층 UDP 엔드포인트에서 생성됩니다.

SendUDPTunneledMessage

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

로컬 UDP 터널을 통해 터널링된 패킷을 전송하는 함수입니다.

UDP를 통해 터널링된 IPv6 데이터 메시지를 전송합니다.

세부정보
매개변수
[in] msgInfo
WeaveMessageInfo 객체에 대한 포인터입니다.
[in] destAddr
UDP 터널 대상의 IPAddress입니다.
[in] msgBuf
전송할 패킷을 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
네트워크 계층에 메시지를 성공적으로 보낼 수 있습니다
WEAVE_ERROR_INVALID_ADDRESS
destAddr가 지정되지 않았거나 대상 노드 ID에서 확인할 수 없는 경우
errors
전송 중에 하위 Inet 계층 UDP 엔드포인트에서 생성됩니다.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

메시지 레이어의 활동이 변경될 때마다 호출되는 애플리케이션 핸들러를 설정합니다.

특히 다음과 같은 경우 항상 애플리케이션에 알림이 전송됩니다.

  • 공개 교환 수가 변경됩니다
  • 보류 중인 메시지 카운터 동기화 요청 수가 0에서 1 이상으로 변경되고 다시 0으로 변경됩니다. 핸들러는 진행 중인 Weave 대화 또는 대기 중인 응답이 있는지 나타내는 일반 신호 역할을 합니다. 핸들러는 WeaveMessageLayer를 초기화한 후에 설정해야 합니다. WeaveMessageLayer를 종료하면 현재 핸들러가 삭제됩니다.

세부정보
매개변수
[in] messageLayerActivityChangeHandler
메시지 레이어 활동이 변경될 때마다 호출할 함수에 대한 포인터입니다.
반환 값
None.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

WeaveMessageLayer에서 인바운드 TCP 연결 리슨을 사용 설정 또는 중지합니다.

참고: TCP 수신 대기 상태가 변경된 후에 RefreshEndpoints()를 호출해야 합니다.

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

WeaveMessageLayer에서 인바운드 UDP 메시지 리슨을 사용 설정 또는 중지합니다.

참고: UDP 수신 상태가 변경된 후에 RefreshEndpoints()를 호출해야 합니다.

SetUnsecuredConnectionListener

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

종료

WEAVE_ERROR Shutdown(
  void
)

WeaveMessageLayer를 종료합니다.

열려 있는 모든 Inet 레이어 엔드포인트를 닫고 모든 상위 레이어 콜백, 멤버 변수 및 객체를 재설정합니다. Shutdown()을 호출하면 WeaveMessageLayer 객체가 종료됩니다.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

WeaveMessageLayer가 인바운드 TCP 연결을 리슨하도록 구성되어 있는지 확인합니다.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

WeaveMessageLayer가 인바운드 UDP 메시지를 리슨하도록 구성되어 있는지 확인합니다.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

임시 UDP 소스 포트에서 Weave UDP 교환을 시작 또는 사용 중지합니다.

참고: 임시 포트 상태가 변경된 후에 RefreshEndpoints()를 호출해야 합니다. 안전하지 않은 리슨이 사용 설정되어 있는지 확인합니다.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Weave 메시지 레이어 생성자입니다.

공개 정적 함수

GetMaxWeavePayloadSize

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

메시지 구성 및 제공된 PacketBuffer에 대한 최대 Weave 페이로드 크기를 가져옵니다.

반환되는 최대 페이로드 크기는 제공된 PacketBuffer 내부의 페이로드에 사용 가능한 공간을 초과하지 않습니다.

메시지가 UDP인 경우 반환되는 최대 페이로드 크기로 인해 지정된 UDP MTU를 오버플로하지 않는 Weave 메시지가 생성되지 않습니다.

마지막으로 반환되는 최대 페이로드 크기로 인해 최대 Weave 메시지 크기를 초과하는 Weave 메시지가 발생하지 않습니다.

세부정보
매개변수
[in] msgBuf
메시지 페이로드가 기록될 PacketBuffer에 대한 포인터입니다.
[in] isUDP
메시지가 UDP 메시지인 경우 true입니다.
[in] udpMTU
UDP MTU의 크기입니다. isUDP가 false인 경우 무시됩니다.
반환
최대 Weave 페이로드 크기

GetPeerDescription

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

피어 노드 및 관련 주소 / 연결 정보를 설명하는 문자열을 생성합니다.

생성된 문자열의 형식은 다음과 같습니다.

 ([]:%, con )

세부정보
매개변수
[in] buf
문자열이 작성되어야 하는 버퍼에 대한 포인터입니다. 제공된 버퍼는 최소한 kWeavePeerDescription_MaxLength 이상이어야 합니다. 작은 버퍼가 주어지면 문자열이 크기에 맞게 잘립니다. 모든 경우에 출력에는 NUL 종료 문자가 포함됩니다.
[in] bufSize
buf가 가리키는 버퍼의 크기입니다.
[in] nodeId
출력할 노드 ID입니다.
[in] addr
출력할 IP 주소에 대한 포인터이거나 IP 주소를 출력할 필요가 없는 경우 NULL입니다.
[in] port
출력할 IP 포트 번호입니다. addr가 NULL이면 포트 번호가 출력되지 않습니다.
[in] interfaceId
출력할 인터페이스를 식별하는 InterfaceId입니다. 출력 문자열에는 기본 네트워크 스택에 알려진 인터페이스의 이름이 포함됩니다. InterfaceId가 INET_NULL_INTERFACEID이거나 addr가 NULL이면 인터페이스 이름이 출력되지 않습니다.
[in] con
로깅 ID를 출력해야 하는 WeaveConnection 객체에 대한 포인터이거나 연결 ID를 출력해야 하는 경우 NULL입니다.

GetPeerDescription

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

동종 업체로부터 수신한 메시지와 연결된 정보를 기반으로 동종 업체 노드를 설명하는 문자열을 생성합니다.

세부정보
매개변수
[in] buf
문자열이 작성되어야 하는 버퍼에 대한 포인터입니다. 제공된 버퍼는 최소한 kWeavePeerDescription_MaxLength 이상이어야 합니다. 작은 버퍼가 주어지면 문자열이 크기에 맞게 잘립니다. 모든 경우에 출력에는 NUL 종료 문자가 포함됩니다.
[in] bufSize
buf가 가리키는 버퍼의 크기입니다.
[in] msgInfo
메시지에 대한 정보가 포함된 WeaveMessageInfo 구조에 대한 포인터입니다.