nl::매서::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
[읽기 전용] 수신이 사용 설정되면 참, 그렇지 않으면 거짓입니다.
SendDestNodeId
bool
이 연결을 통해 전송되는 모든 메시지는 명시적으로 인코딩된 대상 노드 식별자를 포함해야 하며, 그렇지 않으면 false입니다.
SendSourceNodeId
bool
이 연결을 통해 전송되는 모든 메시지는 명시적으로 인코딩된 소스 노드 식별자를 포함해야 하며, 그렇지 않으면 false입니다.
State
uint8_t
[읽기 전용] WeaveConnection 객체의 상태입니다.

공개 함수

Abort(void)
void
TCP 또는 BLE 기반 WeaveConnection을 정상적으로 종료하여 피어에서 전송 중이거나 전송 중인 모든 데이터를 삭제합니다.
AddRef(void)
void
WeaveConnection 객체에 대한 참조를 예약합니다.
Close(void)
TCP 또는 BLE 기반 WeaveConnection의 비차단형 단계적 종료를 수행하여 연결을 재전송한다고 정중하게 Google에 남아 있는 모든 발신 데이터를 전달합니다.
Close(bool suppressCloseLog)
TCP 또는 BLE 기반 WeaveConnection의 비차단형 단계적 종료를 수행하여 연결을 재전송한다고 정중하게 Google에 남아 있는 모든 발신 데이터를 전달합니다.
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
커넥트가 성공하거나 오류를 반환하도록 제한 시간을 설정합니다.
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 객체에 대한 포인터입니다.

공개 속성

앱 상태

void * AppState

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

인증 모드

WeaveAuthMode AuthMode

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

기본 암호화 유형

uint8_t DefaultEncryptionType

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

DefaultKeyId

uint16_t DefaultKeyId

메시지를 보낼 때 사용할 기본 암호화 키입니다.

메시지 레이어

WeaveMessageLayer * MessageLayer

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

NetworkType

uint8_t NetworkType

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

연결 완료

ConnectionClosedFunct OnConnectionClosed

연결 완료

ConnectionCompleteFunct OnConnectionComplete

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnTunneledMessageReceived

TunneledMsgReceiveFunct OnTunneledMessageReceived

PeerAddr

IPAddress PeerAddr

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

PeerNodeId

uint64_t PeerNodeId

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

피어포트

uint16_t PeerPort

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

수신

bool ReceiveEnabled

[읽기 전용] 수신이 사용 설정되면 참, 그렇지 않으면 거짓입니다.

SendDestNodeId

bool SendDestNodeId

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

SendSourceNodeId

bool SendSourceNodeId

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

상태

uint8_t State

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

공개 함수

취소

void Abort(
  void
)

TCP 또는 BLE 기반 WeaveConnection을 정상적으로 종료하여 피어에서 전송 중이거나 전송 중인 모든 데이터를 삭제합니다.

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

Abort()를 호출하면 메서드가 호출될 때 연결이 열려 있는지 또는 활성 상태인지에 관계없이 WeaveConnection 객체와 연결된 참조 수가 줄어듭니다. 참조 수가 0에 도달하면 연결 객체와 연결된 리소스가 해제됩니다. 이 경우, 애플리케이션과 객체의 상호작용이 더 이상 없어야 합니다.

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

추가 참조

void AddRef(
  void
)

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

AddRef() 메서드는 WeaveConnection 객체와 연결된 참조 수를 증가시킵니다. AddRef()를 호출할 때마다 애플리케이션은 Release(), Close() 또는 Abort()를 적절하게 호출해야 합니다.

닫기

WEAVE_ERROR Close(
  void
)

TCP 또는 BLE 기반 WeaveConnection의 비차단형 단계적 종료를 수행하여 연결을 재전송한다고 정중하게 Google에 남아 있는 모든 발신 데이터를 전달합니다.

이 방법은 애플리케이션 프로토콜 수준에서 확인되지 않은 발신 메시지가 원격 피어에 수신되었음을 확실히 보장하지 않습니다. TCP 및 BLE의 경우 기본 프로토콜 스택은 연결을 재설정하기 전에 대기 중인 발신 데이터를 최대한 제공하기 위해 노력합니다. TCP의 경우, 연결을 닫기 전에 전송 계층 메시지 수신 확인이 필요한 경우 Shutdown()을(를) Close() 전에 사용해야 합니다. BLE 연결은 동등한 Shutdown()를 제공하지 않습니다.

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

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

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

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

닫기

WEAVE_ERROR Close(
  bool suppressCloseLog
)

TCP 또는 BLE 기반 WeaveConnection의 비차단형 단계적 종료를 수행하여 연결을 재전송한다고 정중하게 Google에 남아 있는 모든 발신 데이터를 전달합니다.

이 방법은 애플리케이션 프로토콜 수준에서 확인되지 않은 발신 메시지가 원격 피어에 수신되었음을 확실히 보장하지 않습니다. TCP 및 BLE의 경우 기본 프로토콜 스택은 연결을 재설정하기 전에 대기 중인 발신 데이터를 최대한 제공하기 위해 노력합니다. TCP의 경우, 연결을 닫기 전에 전송 계층 메시지 수신 확인이 필요한 경우 Shutdown()을(를) Close() 전에 사용해야 합니다. BLE 연결은 동등한 Shutdown()를 제공하지 않습니다.

BLE 기반 연결의 경우 Close()WeaveConnection을 닫고 즉시 반환되지만, 모든 발신 데이터가 전송될 때까지 기본 BLEEndPoint 객체가 유지될 수도 있습니다. 이는 Weave BleLayer 내에 존재하는 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, 인증되지 않은 모드만 지원됩니다.
[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 노드에 연결합니다.

피어 추가 도구가 제공되는 경우


:

:

[]:
중 하나일 수 있습니다.

세부정보
매개변수
[in] peerNodeId
피어의 노드 식별자로, kNodeIdNotSpecified 또는 알 수 없는 경우 0입니다.
[in] authMode
피어에 원하는 인증 모드입니다. CASE, PASE, 인증되지 않은 모드만 지원됩니다.
[in] peerAddr
NULL로 끝나는 C 문자열로서 피어의 주소 또는 호스트 이름입니다.
[in] defaultPort
피어 추가자 문자열에 제공되지 않은 경우 연결에 사용할 기본 포트(선택사항)입니다.
반환 값
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 노드에 연결합니다.

피어 추가 도구가 제공되는 경우


:

:

[]:
중 하나일 수 있습니다.

세부정보
매개변수
[in] peerNodeId
피어의 노드 식별자로, kNodeIdNotSpecified 또는 알 수 없는 경우 0입니다.
[in] authMode
피어에 원하는 인증 모드입니다. CASE, PASE, 인증되지 않은 모드만 지원됩니다.
[in] peerAddr
NULL로 종료되지 않은 C 문자열인 피어의 주소 또는 호스트 이름입니다.
[in] peerAddrLen
피어Addr 문자열의 길이입니다.
[in] defaultPort
피어 추가자 문자열에 제공되지 않은 경우 연결에 사용할 기본 포트(선택사항)입니다.
반환 값
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 노드에 연결합니다.

피어 추가 도구가 제공되는 경우


:

:

[]:
중 하나일 수 있습니다.

세부정보
매개변수
[in] peerNodeId
피어의 노드 식별자로, kNodeIdNotSpecified 또는 알 수 없는 경우 0입니다.
[in] authMode
피어에 원하는 인증 모드입니다. CASE, PASE, 인증되지 않은 모드만 지원됩니다.
[in] peerAddr
NULL로 종료되지 않은 C 문자열인 피어의 주소 또는 호스트 이름입니다.
[in] peerAddrLen
피어Addr 문자열의 길이입니다.
[in] dnsOptions
호스트 이름 확인 방식을 제어하는 정수 값입니다. 값은 #::nl::Inet::DNSOptions enum에 있는 1개 이상의 값의 OR이어야 합니다.
[in] defaultPort
피어 추가자 문자열에 제공되지 않은 경우 연결에 사용할 기본 포트(선택사항)입니다.
반환 값
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 enum에 있는 1개 이상의 값의 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 레이어 오류입니다.

KeepAlive 사용 중지

WEAVE_ERROR DisableKeepAlive(
  void
)

WeaveConnection::DisableKeepAlive입니다.

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

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

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

세부정보
반환 값
WEAVE_NO_ERROR
연결 시 TCP 연결 유지 프로브를 사용 중지할 수 있습니다.
WEAVE_ERROR_NOT_IMPLEMENTED
이 함수가 호환되지 않는 엔드포인트 (예: BLE)가 있어야 합니다.
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 객체가 메시지 전송을 위한 올바른 상태가 아닌 경우.
other
TCP 엔드포인트와 관련된 Inet 레이어 오류가 연결 유지 작업을 사용 설정합니다.

DisableReceive

void DisableReceive(
  void
)

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

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

참고 항목:
EnableReceive()

KeepAlive 사용 설정

WEAVE_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

WeaveConnection::EnableKeepAlive를 참고하세요.

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

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

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

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

세부정보
반환 값
WEAVE_NO_ERROR
연결 시 TCP 연결 유지 프로브를 사용 설정해야 합니다.
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 

수신

bool IsIncoming(
  void
) const 

로그 ID

uint16_t LogId(
  void
) const 

출시

void Release(
  void
)

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

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

재설정 사용자 시간 제한

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 레이어 오류입니다.

ConnectConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

커넥트가 성공하거나 오류를 반환하도록 제한 시간을 설정합니다.

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

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

기본 네트워크 레이어 연결의 유휴 시간 제한을 설정합니다.

세부정보
매개변수
[in] timeoutMS
제한 시간(밀리초)입니다.
반환 값
WEAVE_NO_ERROR
연결 유휴 시간 제한의 성공적인 설정
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 객체가 메시지 수신에 적합한 상태가 아닌 경우

설정 수신

void SetIncoming(
  bool val
)

사용자 설정 제한 시간

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
특정 엔드포인트 종료 작업과 관련된 I넷 레이어 오류
참고 항목:
Close()Abort().