nl::Weave::WeaveConnection

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

Weave Connection 클래스의 정의입니다.

요약

다른 Weave 노드에 대한 TCP 또는 BLE 연결을 나타냅니다.

공개 유형

@58{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
이 함수는 연결이 닫힐 때 호출되는 애플리케이션 콜백입니다.
ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
이 함수는 연결 설정이 완료되면 호출되는 애플리케이션 콜백입니다.
MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
이 함수는 Weave 연결을 통해 메시지가 수신될 때 호출되는 애플리케이션 콜백입니다.
NetworkType{
  kNetworkType_Unassigned = 0,
  kNetworkType_IP = 1,
  kNetworkType_BLE = 2
}
enum
Weave 연결 객체의 네트워크 유형입니다.
ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err) typedef
void(*
이 함수는 Weave 메시지를 수신할 때 오류 발생 시 호출되는 애플리케이션 콜백입니다.
State{
  kState_ReadyToConnect = 0,
  kState_Resolving = 1,
  kState_Connecting = 2,
  kState_EstablishingSession = 3,
  kState_Connected = 4,
  kState_SendShutdown = 5,
  kState_Closed = 6
}
enum
Weave 연결 객체의 상태입니다.
TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
이 함수는 Weave 연결을 통해 터널링된 데이터 패킷을 수신할 때 호출되는 애플리케이션 콜백입니다.

공개 속성

AppState
void *
애플리케이션별 상태 객체에 대한 포인터입니다.
AuthMode
WeaveAuthMode
[읽기 전용] 연결의 기본 암호화 키를 설정하는 데 사용되는 인증 모드입니다.
DefaultEncryptionType
uint8_t
메시지의 기본 암호화 유형입니다.
DefaultKeyId
uint16_t
메일을 보낼 때 사용되는 기본 암호화 키입니다.
MessageLayer
[읽기 전용] 연결된 WeaveMessageLayer 개체
NetworkType
uint8_t
[읽기 전용] 연결된 엔드포인트의 네트워크 유형입니다.
OnConnectionClosed
OnConnectionComplete
OnMessageReceived
OnReceiveError
OnTunneledMessageReceived
PeerAddr
IPAddress
[읽기 전용] 피어 노드의 IP 주소입니다.
PeerNodeId
uint64_t
[읽기 전용] 피어의 노드 식별자입니다.
PeerPort
uint16_t
[읽기 전용] 피어 노드의 포트 번호입니다.
ReceiveEnabled
bool
[읽기 전용] 수신이 사용 설정된 경우 true, 그렇지 않은 경우 false입니다.
SendDestNodeId
bool
이 연결을 통해 전송된 모든 메시지에 명시적으로 인코딩된 대상 노드 식별자가 포함되어야 하는 경우 true, 그렇지 않은 경우 false입니다.
SendSourceNodeId
bool
이 연결을 통해 전송된 모든 메시지에 명시적으로 인코딩된 소스 노드 식별자가 포함되어야 하는 경우 true, 그렇지 않은 경우 false입니다.
State
uint8_t
[읽기 전용] WeaveConnection 객체의 상태입니다.

공개 함수

Abort(void)
void
TCP 또는 BLE 기반 WeaveConnection을 비정상적으로 종료하여 피어로 또는 피어로 전송 중일 수 있는 모든 데이터를 삭제합니다.
AddRef(void)
void
WeaveConnection 객체에 대한 참조를 예약합니다.
Close(void)
TCP 또는 BLE 기반 WeaveConnection의 비차단형 단계적 종료를 실행하여 남은 발신 데이터를 전송한 후 원격 호스트에 연결을 재설정했음을 정중하게 알립니다.
Close(bool suppressCloseLog)
TCP 또는 BLE 기반 WeaveConnection의 비차단형 단계적 종료를 실행하여 남은 발신 데이터를 전송한 후 원격 호스트에 연결을 재설정했음을 정중하게 알립니다.
Connect(uint64_t peerNodeId)
지정된 노드 식별자에서 파생된 패브릭 IP 주소를 사용하여 Weave 노드에 연결합니다.
Connect(uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort)
노드 식별자 또는 IP 주소를 사용하여 Weave 노드에 연결합니다.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId intf)
특정 인터페이스의 IP 주소 또는 노드 식별자를 사용하여 Weave 노드에 연결합니다.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t defaultPort)
노드 식별자 또는 문자열 호스트 이름을 사용하여 Weave 노드에 연결합니다.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint16_t defaultPort)
노드 식별자 또는 문자열 피어 주소를 사용하여 Weave 노드에 연결합니다.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint8_t dnsOptions, uint16_t defaultPort)
노드 식별자 또는 문자열 피어 주소를 사용하여 Weave 노드에 연결합니다.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, InterfaceId intf)
노드 식별자 또는 호스트 이름 및 포트 목록을 사용하여 Weave 노드에 연결합니다.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, uint8_t dnsOptions, InterfaceId intf)
노드 식별자 또는 호스트 이름 및 포트 목록을 사용하여 Weave 노드에 연결합니다.
DisableKeepAlive(void)
DisableReceive(void)
void
WeaveConnection을 통한 수신을 중지합니다.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
EnableReceive(void)
void
WeaveConnection을 통한 수신을 사용 설정합니다.
GetPeerAddressInfo(IPPacketInfo & addrInfo)
피어의 IP 주소 정보를 가져옵니다.
GetPeerDescription(char *buf, size_t bufSize) const
void
연결과 연결된 피어 노드를 설명하는 문자열을 생성합니다.
GetTCPEndPoint(void) const
TCPEndPoint *
IsIncoming(void) const
bool
LogId(void) const
uint16_t
Release(void)
void
WeaveConnection 객체의 참조 수를 줄입니다.
ResetUserTimeout(void)
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
설정된 연결을 통해 Weave 메시지를 보냅니다.
SendTunneledMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Weave 연결을 통해 터널링된 패킷을 전송하는 함수입니다.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Connect가 성공하거나 오류를 반환할 시간 제한을 설정합니다.
SetIdleTimeout(uint32_t timeoutMS)
기본 네트워크 계층 연결에 유휴 제한 시간을 설정합니다.
SetIncoming(bool val)
void
SetUserTimeout(uint32_t userTimeoutMillis)
WeaveConnection::SetUserTimeout을 적용합니다.
Shutdown(void)
단계적 TCP 전송 종료를 수행하여 나가는 모든 데이터가 피어의 TCP 스택에서 전송되고 수신되었는지 확인합니다.

공개 유형

@58

 @58
속성
kGetPeerDescription_MaxLength

GetPeerDescription()에서 반환하는 문자열의 최대 길이(NUL 문자 포함)입니다.

ConnectionClosedFunct

void(* ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr)

이 함수는 연결이 닫힐 때 호출되는 애플리케이션 콜백입니다.

세부정보
매개변수
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] conErr
연결이 닫힐 때 WEAVE_ERROR가 발생했습니다.

ConnectionCompleteFunct

void(* ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr)

이 함수는 연결 설정이 완료되면 호출되는 애플리케이션 콜백입니다.

세부정보
매개변수
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] conErr
연결 설정 중에 WEAVE_ERROR가 발생했습니다.

MessageReceiveFunct

void(* MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

이 함수는 Weave 연결을 통해 메시지가 수신될 때 호출되는 애플리케이션 콜백입니다.

세부정보
매개변수
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] msgInfo
메시지에 대한 정보가 포함된 WeaveMessageInfo 구조에 대한 포인터입니다.
[in] msgBuf
메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.

NetworkType

 NetworkType

Weave 연결 객체의 네트워크 유형입니다.

속성
kNetworkType_BLE

BLE 네트워크 유형입니다.

kNetworkType_IP

TCP/IP 네트워크 유형입니다.

kNetworkType_Unassigned

할당되지 않은 네트워크 유형입니다.

ReceiveErrorFunct

void(* ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err)

이 함수는 Weave 메시지를 수신할 때 오류 발생 시 호출되는 애플리케이션 콜백입니다.

세부정보
매개변수
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] err
연결을 통해 데이터를 수신할 때 WEAVE_ERROR가 발생했습니다.

상태

 State

Weave 연결 객체의 상태입니다.

속성
kState_Closed

연결이 닫힌 상태입니다.

kState_Connected

연결이 설정된 상태입니다.

kState_Connecting

연결을 시도 중일 때의 상태입니다.

kState_EstablishingSession

보안 세션이 설정 중일 때의 상태입니다.

kState_ReadyToConnect

Weave 연결 초기화 후의 상태입니다.

kState_Resolving

DNS 이름 확인이 수행될 때의 상태입니다.

kState_SendShutdown

연결이 종료될 때의 상태입니다.

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

이 함수는 Weave 연결을 통해 터널링된 데이터 패킷을 수신할 때 호출되는 애플리케이션 콜백입니다.

세부정보
매개변수
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] msgInfo
WeaveMessageInfo 객체에 대한 포인터입니다.
[in] msgBuf
수신된 터널링된 패킷이 포함된 PacketBuffer 객체에 대한 포인터입니다.

공개 속성

AppState

void * AppState

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

AuthMode

WeaveAuthMode AuthMode

[읽기 전용] 연결의 기본 암호화 키를 설정하는 데 사용되는 인증 모드입니다.

DefaultEncryptionType

uint8_t DefaultEncryptionType

메시지의 기본 암호화 유형입니다.

DefaultKeyId

uint16_t DefaultKeyId

메일을 보낼 때 사용되는 기본 암호화 키입니다.

MessageLayer

WeaveMessageLayer * MessageLayer

[읽기 전용] 연결된 WeaveMessageLayer 개체

NetworkType

uint8_t NetworkType

[읽기 전용] 연결된 엔드포인트의 네트워크 유형입니다.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnConnectionComplete

ConnectionCompleteFunct OnConnectionComplete

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnTunneledMessageReceived

TunneledMsgReceiveFunct OnTunneledMessageReceived

PeerAddr

IPAddress PeerAddr

[읽기 전용] 피어 노드의 IP 주소입니다.

PeerNodeId

uint64_t PeerNodeId

[읽기 전용] 피어의 노드 식별자입니다.

PeerPort

uint16_t PeerPort

[읽기 전용] 피어 노드의 포트 번호입니다.

ReceiveEnabled

bool ReceiveEnabled

[읽기 전용] 수신이 사용 설정된 경우 true, 그렇지 않은 경우 false입니다.

SendDestNodeId

bool SendDestNodeId

이 연결을 통해 전송된 모든 메시지에 명시적으로 인코딩된 대상 노드 식별자가 포함되어야 하는 경우 true, 그렇지 않은 경우 false입니다.

SendSourceNodeId

bool SendSourceNodeId

이 연결을 통해 전송된 모든 메시지에 명시적으로 인코딩된 소스 노드 식별자가 포함되어야 하는 경우 true, 그렇지 않은 경우 false입니다.

상태

uint8_t State

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

공개 함수

취소

void Abort(
  void
)

TCP 또는 BLE 기반 WeaveConnection을 비정상적으로 종료하여 피어로 또는 피어로 전송 중일 수 있는 모든 데이터를 삭제합니다.

Abort()를 호출하면 기본 연결이 즉시 종료됩니다. 이 시점 이후에는 더 이상 추가 통신에 WeaveConnection 객체를 사용할 수 없습니다.

Abort()를 호출하면 메서드 호출 시점에 연결이 열려 있거나 활성화되어 있는지에 관계없이 WeaveConnection 객체와 연결된 참조 수가 감소합니다. 이 경우 참조 수가 0에 도달하면 연결 객체에 연결된 리소스가 해제됩니다. 이 경우 애플리케이션에서 객체와 더 이상 상호작용이 없어야 합니다.

참고 항목:
Shutdown(), Abort(), AddRef(), Release().

AddRef

void AddRef(
  void
)

WeaveConnection 객체에 대한 참조를 예약합니다.

AddRef() 메서드는 WeaveConnection 객체와 연결된 참조 수를 증가시킵니다. 모든 AddRef() 호출에 대해 애플리케이션은 Release(), Close() 또는 Abort()에 상응하는 호출을 수행해야 합니다.

닫기

WEAVE_ERROR Close(
  void
)

TCP 또는 BLE 기반 WeaveConnection의 비차단형 단계적 종료를 실행하여 남은 발신 데이터를 전송한 후 원격 호스트에 연결을 재설정했음을 정중하게 알립니다.

이 메서드는 애플리케이션 프로토콜 수준에서 확인되지 않은 모든 발신 메시지가 원격 피어에 의해 수신되었다는 것을 확실하게 보장하지 않습니다. TCP와 BLE의 경우 기본 프로토콜 스택은 연결을 재설정하기 전에 대기 중인 발신 데이터를 전달하도록 최선을 다합니다. TCP의 경우 연결을 닫기 전에 전송 계층 메시지 수신 확인이 필요하면 Close() 전에 Shutdown()을 사용해야 합니다. BLE 연결은 Shutdown()에 상응하는 기능을 제공하지 않습니다.

BLE 기반 연결의 경우 Close()WeaveConnection을 닫고 즉시 반환하지만 나가는 모든 데이터가 전송될 때까지 기본 BLEEndPoint 객체가 유지될 수도 있습니다. 이는 Weave BleLayer 내에 있는 Weave BLE 전송 프로토콜 구현의 부작용입니다.

Close()가 호출되면 더 이상 WeaveConnection 객체를 추가 통신에 사용할 수 없습니다.

Close()를 호출하면 메서드 호출 시점에 연결이 열려 있거나 활성화되어 있는지에 관계없이 WeaveConnection 객체와 연결된 참조 수가 감소합니다. 이 경우 참조 수가 0에 도달하면 연결 객체에 연결된 리소스가 해제됩니다. 이 경우 애플리케이션에서 객체와 더 이상 상호작용이 없어야 합니다.

세부정보
반환
WEAVE_NO_ERROR: 무조건
참고 항목:
Shutdown(), Abort(), AddRef(), Release().

닫기

WEAVE_ERROR Close(
  bool suppressCloseLog
)

TCP 또는 BLE 기반 WeaveConnection의 비차단형 단계적 종료를 실행하여 남은 발신 데이터를 전송한 후 원격 호스트에 연결을 재설정했음을 정중하게 알립니다.

이 메서드는 애플리케이션 프로토콜 수준에서 확인되지 않은 모든 발신 메시지가 원격 피어에 의해 수신되었다는 것을 확실하게 보장하지 않습니다. TCP와 BLE의 경우 기본 프로토콜 스택은 연결을 재설정하기 전에 대기 중인 발신 데이터를 전달하도록 최선을 다합니다. TCP의 경우 연결을 닫기 전에 전송 계층 메시지 수신 확인이 필요하면 Close() 전에 Shutdown()을 사용해야 합니다. BLE 연결은 Shutdown()에 상응하는 기능을 제공하지 않습니다.

BLE 기반 연결의 경우 Close()WeaveConnection을 닫고 즉시 반환하지만 나가는 모든 데이터가 전송될 때까지 기본 BLEEndPoint 객체가 유지될 수도 있습니다. 이는 Weave BleLayer 내에 있는 Weave BLE 전송 프로토콜 구현의 부작용입니다.

Close()가 호출되면 더 이상 WeaveConnection 객체를 추가 통신에 사용할 수 없습니다.

Close()를 호출하면 메서드 호출 시점에 연결이 열려 있거나 활성화되어 있는지에 관계없이 WeaveConnection 객체와 연결된 참조 수가 감소합니다. 이 경우 참조 수가 0에 도달하면 연결 객체에 연결된 리소스가 해제됩니다. 이 경우 애플리케이션에서 객체와 더 이상 상호작용이 없어야 합니다.

세부정보
매개변수
[in] suppressCloseLog
로그를 억제해야 하는 경우 true, 그렇지 않은 경우 false입니다.
반환
WEAVE_NO_ERROR: 무조건
참고 항목:
Shutdown(), Abort(), AddRef(), Release().

연결

WEAVE_ERROR Connect(
  uint64_t peerNodeId
)

지정된 노드 식별자에서 파생된 패브릭 IP 주소를 사용하여 Weave 노드에 연결합니다.

세부정보
매개변수
[in] peerNodeId
피어의 노드 식별자입니다.
반환 값
WEAVE_NO_ERROR
시작 시에만 트리거됩니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 상태가 잘못된 경우입니다.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
요청된 인증 모드가 지원되지 않는 경우입니다.
WEAVE_ERROR_INVALID_ADDRESS
노드 ID에서 목적지 주소를 추론할 수 없는 경우입니다.
other
TCPEndPoint 연결 작업에서 생성된 Inet 레이어 오류입니다.

연결

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort
)

노드 식별자 또는 IP 주소를 사용하여 Weave 노드에 연결합니다.

세부정보
매개변수
[in] peerNodeId
피어의 노드 식별자(kNodeIdNotSpecified 또는 알 수 없는 경우 0)입니다.
[in] peerAddr
피어의 IP 주소이며, 알 수 없는 경우 IPAddress::Any입니다.
[in] peerPort
피어의 선택적 포트이며 기본값은 WEAVE_PORT입니다.
반환 값
WEAVE_NO_ERROR
시작 시에만 트리거됩니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 상태가 잘못된 경우입니다.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
요청된 인증 모드가 지원되지 않는 경우입니다.
WEAVE_ERROR_INVALID_ADDRESS
노드 ID에서 목적지 주소를 추론할 수 없는 경우입니다.
other
TCPEndPoint 연결 작업에서 생성된 Inet 레이어 오류입니다.

연결

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  InterfaceId intf
)

특정 인터페이스의 IP 주소 또는 노드 식별자를 사용하여 Weave 노드에 연결합니다.

세부정보
매개변수
[in] peerNodeId
피어의 노드 식별자(kNodeIdNotSpecified 또는 알 수 없는 경우 0)입니다.
[in] authMode
피어에 대해 원하는 인증 모드입니다. CASE, PASE, UnAuthenticated 모드만 지원됩니다.
[in] peerAddr
피어의 IP 주소이며, 알 수 없는 경우 IPAddress::Any입니다.
[in] peerPort
피어의 선택적 포트이며 기본값은 WEAVE_PORT입니다.
[in] intf
피어 노드에 연결하는 데 사용할 인터페이스(선택사항)이며 기본값은 INET_NULL_INTERFACEID입니다.
반환 값
WEAVE_NO_ERROR
시작 시에만 트리거됩니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 상태가 잘못된 경우입니다.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
요청된 인증 모드가 지원되지 않는 경우입니다.
WEAVE_ERROR_INVALID_ADDRESS
노드 식별자에서 목적지 주소를 추론할 수 없는 경우입니다.
other
TCPEndPoint 연결 작업에서 생성된 Inet 레이어 오류입니다.

연결

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t defaultPort
)

노드 식별자 또는 문자열 호스트 이름을 사용하여 Weave 노드에 연결합니다.

제공되는 경우PeerAddr는 다음 중 하나일 수 있습니다.


:

:

[]:

세부정보
매개변수
[in] peerNodeId
피어의 노드 식별자(kNodeIdNotSpecified 또는 알 수 없는 경우 0)입니다.
[in] authMode
피어에 대해 원하는 인증 모드입니다. CASE, PASE, UnAuthenticated 모드만 지원됩니다.
[in] peerAddr
NULL로 끝나는 C 문자열로 표시된 피어의 주소 또는 호스트 이름입니다.
[in] defaultPort
피어Addr 문자열에 제공되지 않은 경우 연결에 사용할 기본 포트(선택사항)입니다.
반환 값
WEAVE_NO_ERROR
시작 시에만 트리거됩니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 상태가 잘못된 경우입니다.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
요청된 인증 모드가 지원되지 않는 경우입니다.
WEAVE_ERROR_INVALID_ADDRESS
노드 ID에서 목적지 주소를 추론할 수 없는 경우입니다.
other
TCPEndPoint 연결 작업에서 생성된 Inet 레이어 오류입니다.

연결

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint16_t defaultPort
)

노드 식별자 또는 문자열 피어 주소를 사용하여 Weave 노드에 연결합니다.

제공되는 경우PeerAddr는 다음 중 하나일 수 있습니다.


:

:

[]:

세부정보
매개변수
[in] peerNodeId
피어의 노드 식별자(kNodeIdNotSpecified 또는 알 수 없는 경우 0)입니다.
[in] authMode
피어에 대해 원하는 인증 모드입니다. CASE, PASE, UnAuthenticated 모드만 지원됩니다.
[in] peerAddr
NULL로 끝나지 않은 C 문자열로 된 피어의 주소 또는 호스트 이름입니다.
[in] peerAddrLen
피어Addr 문자열의 길이입니다.
[in] defaultPort
피어Addr 문자열에 제공되지 않은 경우 연결에 사용할 기본 포트(선택사항)입니다.
반환 값
WEAVE_NO_ERROR
시작 시에만 트리거됩니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 상태가 잘못된 경우입니다.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
요청된 인증 모드가 지원되지 않는 경우입니다.
WEAVE_ERROR_INVALID_ADDRESS
노드 ID에서 목적지 주소를 추론할 수 없는 경우입니다.
other
TCPEndPoint 연결 작업에서 생성된 Inet 레이어 오류입니다.

연결

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint8_t dnsOptions,
  uint16_t defaultPort
)

노드 식별자 또는 문자열 피어 주소를 사용하여 Weave 노드에 연결합니다.

제공되는 경우PeerAddr는 다음 중 하나일 수 있습니다.


:

:

[]:

세부정보
매개변수
[in] peerNodeId
피어의 노드 식별자(kNodeIdNotSpecified 또는 알 수 없는 경우 0)입니다.
[in] authMode
피어에 대해 원하는 인증 모드입니다. CASE, PASE, UnAuthenticated 모드만 지원됩니다.
[in] peerAddr
NULL로 끝나지 않은 C 문자열로 된 피어의 주소 또는 호스트 이름입니다.
[in] peerAddrLen
피어Addr 문자열의 길이입니다.
[in] dnsOptions
호스트 이름 확인이 수행되는 방식을 제어하는 정수 값입니다. 값은 #::nl::Inet::DNSOptions 열거형에 있는 하나 이상의 값의 OR이어야 합니다.
[in] defaultPort
피어Addr 문자열에 제공되지 않은 경우 연결에 사용할 기본 포트(선택사항)입니다.
반환 값
WEAVE_NO_ERROR
시작 시에만 트리거됩니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 상태가 잘못된 경우입니다.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
요청된 인증 모드가 지원되지 않는 경우입니다.
WEAVE_ERROR_INVALID_ADDRESS
노드 ID에서 목적지 주소를 추론할 수 없는 경우입니다.
other
TCPEndPoint 연결 작업에서 생성된 Inet 레이어 오류입니다.

연결

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  InterfaceId intf
)

노드 식별자 또는 호스트 이름 및 포트 목록을 사용하여 Weave 노드에 연결합니다.

세부정보
매개변수
[in] peerNodeId
피어의 노드 식별자입니다.
[in] authMode
연결에 사용되는 인증 모드입니다.
[in] hostPortList
호스트 이름 및 포트 목록입니다.
[in] intf
피어 노드에 연결하는 데 사용할 인터페이스(선택사항)이며 기본값은 INET_NULL_INTERFACEID입니다.
반환 값
WEAVE_NO_ERROR
시작 시에만 트리거됩니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 상태가 잘못된 경우입니다.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
요청된 인증 모드가 지원되지 않는 경우입니다.
WEAVE_ERROR_INVALID_ADDRESS
노드 ID에서 목적지 주소를 추론할 수 없는 경우입니다.
other
TCPEndPoint 연결 작업에서 생성된 Inet 레이어 오류입니다.

연결

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  uint8_t dnsOptions,
  InterfaceId intf
)

노드 식별자 또는 호스트 이름 및 포트 목록을 사용하여 Weave 노드에 연결합니다.

세부정보
매개변수
[in] peerNodeId
피어의 노드 식별자입니다.
[in] authMode
연결에 사용되는 인증 모드입니다.
[in] hostPortList
호스트 이름 및 포트 목록입니다.
[in] dnsOptions
호스트 이름 확인이 수행되는 방식을 제어하는 정수 값입니다. 값은 #::nl::Inet::DNSOptions 열거형에 있는 하나 이상의 값의 OR이어야 합니다.
[in] intf
피어 노드에 연결하는 데 사용할 인터페이스(선택사항)이며 기본값은 INET_NULL_INTERFACEID입니다.
반환 값
WEAVE_NO_ERROR
시작 시에만 트리거됩니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 상태가 잘못된 경우입니다.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
요청된 인증 모드가 지원되지 않는 경우입니다.
WEAVE_ERROR_INVALID_ADDRESS
노드 ID에서 목적지 주소를 추론할 수 없는 경우입니다.
other
TCPEndPoint 연결 작업에서 생성된 Inet 레이어 오류입니다.

DisableKeepAlive

WEAVE_ERROR DisableKeepAlive(
  void
)

WeaveConnection::DisableKeepAlive를 사용합니다.

기본 TCP 연결에서 TCP 연결 유지 프로브를 사용 중지합니다.

참고: 이 메서드는 TCP 연결로 지원되는 Weave 연결에서만 호출할 수 있습니다. 이 메서드는 연결이 전송을 허용하는 상태일 때만 호출할 수 있습니다.

연결에서 연결 유지가 사용 설정되지 않은 경우 이 메서드는 아무 작업도 하지 않습니다.

세부정보
반환 값
WEAVE_NO_ERROR
최대 100밀리초까지 지속됩니다
WEAVE_ERROR_NOT_IMPLEMENTED
이 함수가 호환되지 않는 엔드포인트 (예: BLE)를 사용할 수 있습니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 객체가 메시지를 보내기에 올바른 상태가 아닌 경우에 발생합니다.
other
TCP 엔드포인트와 관련된 Inet 레이어 오류가 연결 유지 작업을 사용 설정합니다.

DisableReceive

void DisableReceive(
  void
)

WeaveConnection을 통한 수신을 중지합니다.

이 메서드는 애플리케이션이 TCP 연결을 통해 도착한 데이터를 수신할 준비가 되지 않았음을 나타내기 위해 사용됩니다. 수신을 다시 사용 설정하려면 애플리케이션에서 EnableReceive()를 호출하여 WeaveConnection이 적절한 콜백을 호출하여 수신된 데이터를 전달할 수 있도록 해야 합니다.

참고:
EnableReceive()

EnableKeepAlive

WEAVE_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

WeaveConnection::EnableKeepAlive를 사용합니다.

기본 TCP 연결에서 TCP 연결 유지 프로브를 사용 설정합니다.

참고: 이 메서드는 TCP 연결로 지원되는 Weave 연결에서만 호출할 수 있습니다. -이 메서드는 연결이 전송을 허용하는 상태일 때만 호출할 수 있습니다.

세부정보
매개변수
[in] interval
연결 유지 프로브 간의 간격 (초)입니다. 이 값은 마지막으로 전송된 데이터 패킷과 첫 번째 연결 유지 프로브의 전송 사이의 시간을 제어합니다.
[in] timeoutCount
연결이 실패한 것으로 간주되기 전에 확인되지 않은 최대 프로브 수입니다.

-이 메서드는 여러 번 호출하여 연결 유지 간격이나 제한시간 횟수를 조정할 수 있습니다.

세부정보
반환 값
WEAVE_NO_ERROR
활성화될 때 발생합니다.
WEAVE_ERROR_NOT_IMPLEMENTED
이 함수가 호환되지 않는 엔드포인트 (예: BLE)를 사용할 수 있습니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 객체가 메시지를 보내기에 올바른 상태가 아닌 경우에 발생합니다.
other
TCP 엔드포인트와 관련된 Inet 레이어 오류가 연결 유지 작업을 사용 설정합니다.

EnableReceive

void EnableReceive(
  void
)

WeaveConnection을 통한 수신을 사용 설정합니다.

이 메서드는 애플리케이션에서 TCP 연결을 통해 도착하는 모든 데이터를 수신할 준비가 되었음을 WeaveConnection 객체에 나타내는 데 사용합니다.

참고 항목:
DisableReceive()

GetPeerAddressInfo

WEAVE_ERROR GetPeerAddressInfo(
  IPPacketInfo & addrInfo
)

피어의 IP 주소 정보를 가져옵니다.

세부정보
매개변수
[out] addrInfo
IPPacketInfo 객체에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_NOT_IMPLEMENTED
이 함수가 호환되지 않는 엔드포인트 (예: BLE)를 사용할 수 있습니다.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize
) const 

연결과 연결된 피어 노드를 설명하는 문자열을 생성합니다.

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

GetTCPEndPoint

TCPEndPoint * GetTCPEndPoint(
  void
) const 

IsIncoming

bool IsIncoming(
  void
) const 

LogId

uint16_t LogId(
  void
) const 

출시

void Release(
  void
)

WeaveConnection 객체의 참조 수를 줄입니다.

Release() 메서드는 WeaveConnection 객체와 연결된 참조 수를 줄입니다. 참조 수가 0에 도달하면 연결이 닫히고 연결 객체가 해제됩니다. 이 경우 애플리케이션에서 객체와 더 이상 상호작용이 없어야 합니다.

ResetUserTimeout

WEAVE_ERROR ResetUserTimeout(
  void
)

WeaveConnection::ResetUserTimeout

TCP 사용자 제한 시간 소켓 옵션을 시스템 기본값으로 재설정합니다.

참고: 이 메서드는 TCP 연결로 지원되는 Weave 연결에서만 호출할 수 있습니다. -이 메서드는 연결이 전송을 허용하는 상태일 때만 호출할 수 있습니다.

-연결에 사용자 시간 제한이 설정되지 않은 경우 이 메서드는 아무 작업도 수행하지 않습니다.

세부정보
반환 값
WEAVE_NO_ERROR
TCP 사용자 시간 제한의 재설정이 성공할 때.
WEAVE_ERROR_NOT_IMPLEMENTED
이 함수가 호환되지 않는 엔드포인트 (예: BLE)를 사용할 수 있습니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 객체가 메시지를 보내기에 올바른 상태가 아닌 경우에 발생합니다.
other
TCP 사용자 시간 제한의 TCP 엔드포인트 재설정과 관련된 Inet 레이어 오류입니다.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

설정된 연결을 통해 Weave 메시지를 보냅니다.

세부정보
매개변수
[in] msgInfo
WeaveMessageInfo 객체에 대한 포인터입니다.
[in] msgBuf
전송할 패킷을 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
네트워크 계층에 메시지를 성공적으로 보낼 수 있습니다
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 객체가 메시지를 보내기에 올바른 상태가 아닌 경우에 발생합니다.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
대상 노드 식별자가 지정되지 않은 경우입니다.
WEAVE_ERROR_SENDING_BLOCKED
메시지가 너무 길어서 보낼 수 없는 경우
other
특정 엔드포인트 전송 작업과 관련된 Inet 레이어 오류입니다.

SendTunneledMessage

WEAVE_ERROR SendTunneledMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Weave 연결을 통해 터널링된 패킷을 전송하는 함수입니다.

설정된 연결을 통해 터널링된 Weave 메시지를 전송합니다.

세부정보
매개변수
[in] msgInfo
WeaveMessageInfo 객체에 대한 포인터입니다.
[in] msgBuf
전송할 패킷을 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
네트워크 계층에 메시지를 성공적으로 보낼 수 있습니다
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 객체가 메시지를 보내기에 올바른 상태가 아닌 경우에 발생합니다.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
대상 노드 식별자가 지정되지 않은 경우입니다.
WEAVE_ERROR_SENDING_BLOCKED
메시지가 너무 길어서 보낼 수 없는 경우
other
특정 엔드포인트 전송 작업과 관련된 Inet 레이어 오류입니다.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Connect가 성공하거나 오류를 반환할 시간 제한을 설정합니다.

세부정보
매개변수
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

기본 네트워크 계층 연결에 유휴 제한 시간을 설정합니다.

세부정보
매개변수
[in] timeoutMS
제한 시간(밀리초)입니다.
반환 값
WEAVE_NO_ERROR
성공 시에만 트리거됩니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 객체가 메시지를 수신하기에 올바른 상태가 아닌 경우에 발생합니다.

SetIncoming

void SetIncoming(
  bool val
)

SetUserTimeout

WEAVE_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

WeaveConnection::SetUserTimeout을 적용합니다.

TCP 사용자 제한 시간 소켓 옵션을 설정합니다.

값이 0보다 크면 TCP가 해당 연결을 강제로 닫기 전에 전송된 데이터가 미확인 상태로 유지될 수 있는 최대 시간(밀리초)을 지정합니다. 옵션 값을 0으로 지정하면 TCP가 시스템 기본값을 사용합니다. 자세한 내용은 RFC 5482를 참조하세요.

세부정보
매개변수
[in] userTimeoutMillis
TCP 사용자 시간 제한 값(밀리초)입니다.

참고: 이 메서드는 TCP 연결로 지원되는 Weave 연결에서만 호출할 수 있습니다. -이 메서드는 연결이 전송을 허용하는 상태일 때만 호출할 수 있습니다.

-이 메서드를 여러 번 호출하여 TCP 사용자 시간 제한을 조정할 수 있습니다.

세부정보
반환 값
WEAVE_NO_ERROR
성공 시 TCP 사용자 시간 초과가 설정됩니다
WEAVE_ERROR_NOT_IMPLEMENTED
이 함수가 호환되지 않는 엔드포인트 (예: BLE)를 사용할 수 있습니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 객체가 메시지를 보내기에 올바른 상태가 아닌 경우에 발생합니다.
other
TCP 사용자 시간 제한의 TCP 엔드포인트 설정과 관련된 Inet 레이어 오류입니다.

종료

WEAVE_ERROR Shutdown(
  void
)

단계적 TCP 전송 종료를 수행하여 나가는 모든 데이터가 피어의 TCP 스택에서 전송되고 수신되었는지 확인합니다.

대부분의 TCP 구현에서 전송-종료를 수신하면 원격 호스트가 연결의 측도 종료하게 되어 연결이 종료됩니다. 이후에 Close()를 호출하면 WeaveConnection이 종료됩니다.

세부정보
반환 값
WEAVE_NO_ERROR
TCP 연결이 성공적으로 종료될 때
WEAVE_ERROR_NOT_IMPLEMENTED
이 함수가 호환되지 않는 엔드포인트 (예: BLE)를 사용할 수 있습니다.
WEAVE_ERROR_INCORRECT_STATE
종료를 시작하기 전에 WeaveConnection 객체가 올바른 상태가 아닌 경우
other
특정 엔드포인트 종료 작업과 관련된 Inet 레이어 오류입니다.
참고 항목:
Close()Abort().