Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

nl :: 짜다:: WeaveMessageLayer

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

의 정의 WeaveMessageLayer의 다른 위브 노드와의 통신을 관리하는 클래스.

요약

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

생성자와 소멸자

WeaveMessageLayer (void)
Weave Message 레이어 생성자.

공개 유형

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
}
열거 형
의 상태 WeaveMessageLayer .
TunneledMsgReceiveFunct )(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
이 함수는 로컬 UDP 터널을 통해 터널링 된 패킷을 수신 할 때 호출되는 상위 계층 콜백입니다.

공용 속성

AppState
void *
응용 프로그램 별 상태 개체에 대한 포인터입니다.
ExchangeMgr
[READ ONLY 상기 연관된 WeaveExchangeManager의 개체.
FabricState
[READ ONLY] 관련 WeaveFabricState의 개체.
IncomingConIdleTimeout
uint32_t
들어오는 연결에 대한 기본 유휴 시간 제한 (밀리 초)입니다.
Inet
InetLayer *
[읽기 전용] 연결된 InetLayer 개체입니다.
IsListening
bool
[읽기 전용] 수신 연결 / 메시지를 수신하는 경우 True, 그렇지 않으면 False입니다.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[READ ONLY 상기 연관된 WeaveSecurityManager의 개체.
State
uint8_t
의 [READ ONLY] 상태 WeaveMessageLayer의 개체.
SystemLayer
mDropMessage
bool
내부 및 디버그 전용; 설정하면, WeaveMessageLayer는 메시지 반환 삭제합니다.

공공 기능

ClearUnsecuredConnectionListener ( ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints (void)
열려있는 모든 TCP 및 UDP 끝점을 닫습니다.
CreateTunnel ( WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
크리에이트 WeaveConnectionTunnel을 두 개의 지정된 WeaveConnections을 결합하여.
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
사용중인 WeaveConnection의 수와 풀의 크기를 가져옵니다.
IPv4ListenEnabled (void) const
bool
있는지 확인 WeaveMessageLayer가 IPv4를 통해 인바운드 통신을 수신하도록 구성되어 있습니다.
IPv6ListenEnabled (void) const
bool
있는지 확인 WeaveMessageLayer가 IPv4를 통해 인바운드 통신을 수신하도록 구성되어 있습니다.
Init ( InitContext *context)
Weave Message 레이어 개체를 초기화합니다.
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
사용 또는 인바운드 TCP 연결에 대한 해제 듣기 WeaveMessageLayer .
SetUDPListenEnabled (bool val)
void
사용 또는 인바운드 UDP 메시지를 비활성화 듣기 WeaveMessageLayer .
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 :: 위브 :: 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

[READ ONLY 상기 연관된 WeaveExchangeManager의 개체.

FabricState

WeaveFabricState * FabricState

[READ ONLY] 관련 WeaveFabricState의 개체.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

들어오는 연결에 대한 기본 유휴 시간 제한 (밀리 초)입니다.

Inet

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

[READ ONLY 상기 연관된 WeaveSecurityManager의 개체.

상태

uint8_t State

의 [READ ONLY] 상태 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의 객체.

또한보십시오:
종료 () .

CreateTunnel

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

크리에이트 WeaveConnectionTunnel을 두 개의 지정된 WeaveConnections을 결합하여.

생성에 성공하면, 구성 요소에 해당하는 TCPEndPoints WeaveConnection의 개체가에 넘겨 WeaveConnectionTunnel 그렇지 않으면 WeaveConnections이 닫혀있다.

세부
매개 변수
[out] tunPtr
(A)의 포인터에 대한 포인터 WeaveConnectionTunnel의 객체입니다.
[in] conOne
첫 번째의 참조 WeaveConnection의 개체.
[in] conTwo
두 번째의 참조 WeaveConnection의 개체.
[in] inactivityTimeoutMS
Weave 연결 터널이 유휴 상태 일 수있는 최대 시간 (밀리 초)입니다.
반환 값
WEAVE_NO_ERROR
의 성공적인 창조에 WeaveConnectionTunnel .
WEAVE_ERROR_INCORRECT_STATE
성분 경우 WeaveConnection가 의 개체 WeaveConnectionTunnel 올바른 상태가 아니다.
WEAVE_ERROR_NO_MEMORY
경우 새 WeaveConnectionTunnel의 개체를 만들 수 없습니다.

DecodeHeader

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

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

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

EncodeMessage

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

인코딩 WeaveMessageLayer의 PacketBuffer에 헤더.

세부
매개 변수
[in] msgInfo
(A)에 대한 포인터 WeaveMessageInfo의 메시지에 대한 정보를 포함하는 객체를 부호화한다.
[in] msgBuf
Weave 메시지를 보유 할 PacketBuffer 개체에 대한 포인터입니다.
[in] con
받는 포인터 WeaveConnection의 객체입니다.
[in] maxLen
인코딩 된 Weave 메시지의 최대 길이입니다.
[in] reserve
Weave 메시지 헤더를 보유하기 위해 페이로드 이전에 예약 된 공간입니다.
반환 값
WEAVE_NO_ERROR
메시지의 성공적인 인코딩.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Weave 메시지 헤더 형식 버전이 지원되지 않는 경우.
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
A와 포인터 WeaveMessageInfo의 객체입니다.
[in] payload
Weave 메시지를 보유 할 PacketBuffer 개체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
Weave 메시지의 성공적인 인코딩에 대해
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 

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

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

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

있는지 확인 WeaveMessageLayer가 IPv4를 통해 인바운드 통신을 수신하도록 구성되어 있습니다.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

있는지 확인 WeaveMessageLayer가 IPv4를 통해 인바운드 통신을 수신하도록 구성되어 있습니다.

초기화

WEAVE_ERROR Init(
  InitContext *context
)

Weave Message 레이어 개체를 초기화합니다.

세부
매개 변수
[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 끝점에서 생성됩니다.

문자 보내

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

인코딩 후 기본 Inetlayer UDP 끝점을 사용하여 Weave 메시지를 보냅니다.

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

문자 보내

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

인코딩 후 기본 Inetlayer UDP 끝점을 사용하여 Weave 메시지를 보냅니다.

참고 : 사용 년 - 대상 포트입니다 WEAVE_PORT . -대상 주소가 제공되지 않은 경우 메시지 헤더의 노드 식별자에서 확인하십시오. 이것이 불가능하면 실패합니다.

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

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

문자 보내

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
A와 포인터 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
A와 포인터 WeaveMessageInfo의 객체입니다.
[in] destAddr
UDP 터널 대상의 IP 주소입니다.
[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
)

사용 또는 인바운드 TCP 연결에 대한 해제 듣기 WeaveMessageLayer .

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

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

사용 또는 인바운드 UDP 메시지를 비활성화 듣기 WeaveMessageLayer .

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

SetUnsecuredConnectionListener

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

일시 휴업

WEAVE_ERROR Shutdown(
  void
)

를 종료 WeaveMessageLayer .

열려있는 모든 Inet 계층 끝점을 닫고 모든 상위 계층 콜백, 멤버 변수 및 개체를 재설정합니다. 를 호출 종료 ()는 종료 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 Message 레이어 생성자.

공개 정적 함수

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 메시지이면 참.
[in] udpMTU
UDP MTU의 크기입니다. isUDP가 거짓이면 무시됩니다.
보고
최대 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
(A)에 대한 포인터 WeaveConnection의 로그 ID를 인쇄 할 개체; 연결 ID가 인쇄되지 않으면 NULL입니다.

GetPeerDescription

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

피어로부터 수신 된 메시지와 관련된 정보를 기반으로 피어 노드를 설명하는 문자열을 구성합니다.

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