nl::Weave::ExchangeContext

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

이 클래스는 둘 이상의 노드 간에 진행 중인 대화 (ExchangeContext)를 나타냅니다.

요약

ExchangeContext 내에서 다양한 전송 메커니즘(예: TCP, UDP, Weave Reliable Messaging)을 통해 Weave 메시지를 인코딩하고 통신하는 방법을 정의합니다.

공개 유형

@34{
  kSendFlag_AutoRetrans = 0x0001,
  kSendFlag_ExpectResponse = 0x0002,
  kSendFlag_RetransmissionTrickle = 0x0004,
  kSendFlag_DelaySend = 0x0008,
  kSendFlag_ReuseMessageId = 0x0010,
  kSendFlag_ReuseSourceId = 0x0020,
  kSendFlag_RetainBuffer = 0x0040,
  kSendFlag_AlreadyEncoded = 0x0080,
  kSendFlag_DefaultMulticastSourceAddress = 0x0100,
  kSendFlag_FromInitiator = 0x0200,
  kSendFlag_RequestAck = 0x0400,
  kSendFlag_NoAutoRequestAck = 0x0800,
  kSendFlag_MulticastFromLinkLocal = kSendFlag_DefaultMulticastSourceAddress
}
enum
@35{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
이 함수는 기존 Weave 연결이 닫힐 때 호출할 애플리케이션 콜백입니다.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
주요 오류 메시지 처리 함수의 유형입니다.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
이 함수는 수신된 Weave 메시지를 처리하기 위한 애플리케이션 콜백입니다.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
이 함수는 응답 메시지 수신 제한 시간이 만료되었을 때 호출할 애플리케이션 콜백입니다.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
이 함수는 이전에 보낸 메시지의 재전송에 대한 제한 시간이 만료될 때 호출할 애플리케이션 콜백입니다.
Timeout typedef
uint32_t
ExchangeContext에서 시간 제한을 표현하는 데 사용되는 유형(밀리초)입니다.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
이 함수는 Weave 신뢰할 수 있는 메시징 프로토콜의 일부로 요청된 Weave 메시지에 대한 확인을 받으면 호출할 애플리케이션 콜백입니다.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
이 함수는 제한 메시지 또는 지연된 전송 메시지가 Weave Reliable Messaging Protocol의 일부로 수신될 때 호출할 애플리케이션 콜백입니다.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
이 함수는 Weave 메시지를 보내는 동안 오류가 발생하면 호출할 애플리케이션 콜백입니다.

공개 속성

AllowDuplicateMsgs
bool
특정 교환에 중복 메시지가 허용되는지 여부를 나타내는 부울 표시기입니다.
AppState
void *
애플리케이션별 상태 객체를 가리키는 포인터입니다.
Con
[읽기 전용] 연결된 Weave 연결
EncryptionType
uint8_t
메일을 보낼 때 사용할 암호화 유형입니다.
ExchangeId
uint16_t
[읽기 전용] 할당된 거래소 ID입니다.
ExchangeMgr
[읽기 전용] 거래소 관리자 소유.
KeyId
uint16_t
메시지를 보낼 때 사용할 암호화 키입니다.
OnAckRcvd
수신된 확인을 위한 애플리케이션 콜백입니다.
OnConnectionClosed
OnDDRcvd
수신된 지연된 전송 메시지의 애플리케이션 콜백입니다.
OnKeyError
이 함수는 키 오류 메시지가 피어에서 수신되면 호출할 애플리케이션 콜백입니다.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
전송 중 오류가 발생한 애플리케이션 콜백
OnThrottleRcvd
수신된 제한 메시지의 애플리케이션 콜백입니다.
PeerAddr
IPAddress
[읽기 전용] 피어 노드의 IP 주소입니다.
PeerIntf
InterfaceId
[읽기 전용] 피어에 메시지를 보낼 때 사용되는 아웃바운드 인터페이스입니다.
PeerNodeId
uint64_t
[읽기 전용] 피어 노드의 노드 ID입니다.
PeerPort
uint16_t
[읽기 전용] 피어 노드의 포트입니다.
ResponseTimeout
응답을 기다리는 최대 시간 (밀리초)입니다. 0은 응답 제한 시간을 사용 중지합니다.
RetransInterval
uint32_t
재전송 간 시간 (밀리초 단위) 0은 재전송을 사용 중지합니다.
mMsgProtocolVersion
uint16_t
ExchangeContext의 메시지 프로토콜 버전입니다.
mWRMPConfig
WRMP 구성

공개 함수

Abort(void)
void
Exchange 컨텍스트를 즉시 취소하고 컨텍스트에 대한 모든 참조를 해제합니다.
AddRef(void)
void
거래소 컨텍스트의 참조 카운터를 1씩 늘립니다.
AutoRequestAck() const
bool
메시지를 보낼 때마다 확인을 요청할지 여부를 반환합니다.
CancelRetrans(void)
void
Trickle 재전송 메커니즘을 취소합니다.
Close(void)
void
교환 컨텍스트를 단계적으로 닫습니다.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
교환 헤더를 메시지 버퍼로 인코딩합니다.
GetAutoReleaseKey() const
bool
교환이 해제될 때 교환과 연결된 암호화 키를 해제해야 하는지 여부를 반환합니다.
GetCurrentRetransmitTimeout(void)
uint32_t
현재 재전송 제한 시간을 가져옵니다.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
피어 노드 및 연결된 주소 / 연결 정보를 설명하는 문자열을 생성합니다.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
교환 컨텍스트 내에서 트리클 메시지를 처리합니다.
HasPeerRequestedAck(void) const
bool
피어가 이 교환의 메시지 1개 이상에 대한 확인을 요청했는지 확인합니다.
HasRcvdMsgFromPeer(void) const
bool
이 교환에서 피어로부터 하나 이상의 메시지가 수신되었는지 확인합니다.
IsAckPending(void) const
bool
이 거래소의 피어에 전송되기 위해 대기 중인 확인이 이미 있는지 확인합니다.
IsConnectionClosed(void) const
bool
ExchangeContext에 연결된 활성 WeaveConnection이 있는지 확인합니다.
IsInitiator(void) const
bool
컨텍스트가 교환을 시작한 사람인지 확인합니다.
IsResponseExpected(void) const
bool
이 교환을 통해 전송된 메시지에 대한 응답이 예상되는지 확인합니다.
Release(void)
void
이 거래소 컨텍스트에 대한 참조를 해제합니다.
SendCommonNullMessage(void)
Common::Null 메시지를 보냅니다.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
이 광고 거래소에서 Weave 메시지를 전송합니다.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
이 광고 거래소에서 Weave 메시지를 전송합니다.
SetAckPending(bool inAckPending)
void
이 교환의 피어에 확인을 다시 보내야 하는지 여부를 설정합니다.
SetAutoReleaseKey(bool autoReleaseKey)
void
교환이 해제될 때 교환과 연결된 암호화 키를 해제해야 하는지 여부를 설정합니다.
SetAutoRequestAck(bool autoReqAck)
void
메시지를 보낼 때마다 확인을 요청해야 하는지 여부를 설정합니다.
SetConnectionClosed(bool inConnectionClosed)
void
kFlagConnectionClosed 플래그 비트를 설정합니다.
SetDropAck(bool inDropAck)
void
WeaveExchangeManager가 이 컨텍스트에 대한 확인을 전송하면 안 되는지 여부를 설정합니다.
SetInitiator(bool inInitiator)
void
kFlagInitiator 플래그 비트를 설정합니다.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
이 교환의 피어로부터 메시지를 수신했는지 여부를 설정합니다.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
이 교환에서 마지막으로 수신된 메시지에서 확인이 요청되었는지 설정합니다.
SetResponseExpected(bool inResponseExpected)
void
이 교환에 대한 응답 예상 여부를 설정합니다.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
교환이 해제될 때 거래소와 연결된 Weave 연결을 해제할지 여부를 설정합니다.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
상응하는 재전송 간격과 재방송 기준점을 설정하여 트리클 재전송 메커니즘을 설정합니다.
ShouldAutoReleaseConnection() const
bool
교환이 해제되면 교환과 연결된 Weave 연결을 해제해야 하는지 여부를 반환합니다.
ShouldDropAck(void) const
bool
WeaveExchangeManager가 확인을 전송하면 안 되는지를 결정합니다.
StartTimerT(void)
Trickle 재방송 알고리즘의 주기적 재전송 타이머 메커니즘을 시작합니다.
TeardownTrickleRetransmit(void)
void
Trickle 내에서 주기적 타이머를 취소하고 Weave 메시지를 보유한 메시지 버퍼를 해제하여 Trickle 재전송 메커니즘을 해제합니다.
UseEphemeralUDPPort(void) const
bool
교환을 통해 전송된 발신 메시지를 로컬 임시 UDP 포트에서 전송해야 하는지 여부를 반환합니다.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
전송 지연 메시지를 전송하여 이전에 보낸 메시지가 수신자에게 전송되기 전에 예상되는 지연이 발생한다는 것을 발신자 노드에 알립니다.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
메시지 전송을 제한하도록 요청하는 제한 흐름 메시지를 피어 노드에 보냅니다.

공개 유형

@34

 @34
속성
kSendFlag_AlreadyEncoded

메시지가 이미 인코딩되었음을 나타내는 데 사용됩니다.

kSendFlag_AutoRetrans

자동 재전송이 사용 설정되었음을 나타내는 데 사용됩니다.

kSendFlag_DefaultMulticastSourceAddress

IPv6 멀티캐스트 메시지를 보낼 때 기본 IPv6 소스 주소 선택을 사용해야 함을 나타내는 데 사용됩니다.

kSendFlag_DelaySend

현재 메시지의 전송을 지연시켜야 함을 나타내는 데 사용됩니다.

kSendFlag_ExpectResponse

지정된 제한 시간 내에 응답이 예상되는 것을 나타내는 데 사용됩니다.

kSendFlag_FromInitiator

현재 메시지가 교환을 시작한 사용자임을 나타내는 데 사용됩니다.

kSendFlag_MulticastFromLinkLocal

kSendFlag_DefaultMulticastSourceAddress의 지원 중단된 별칭입니다.

kSendFlag_NoAutoRequestAck

메시지를 보낼 때 자동 요청 확인 기능을 사용하지 않습니다.

kSendFlag_RequestAck

확인을 요청하는 WRM 메시지를 보내는 데 사용됩니다.

kSendFlag_RetainBuffer

전송 후 메시지 버퍼를 해제해서는 안 된다는 것을 나타내는 데 사용됩니다.

kSendFlag_RetransmissionTrickle

Trickle의 재전송 요구사항을 나타내는 데 사용됩니다.

kSendFlag_ReuseMessageId

메일 헤더의 메일 ID를 재사용할 수 있음을 나타내는 데 사용됩니다.

kSendFlag_ReuseSourceId

메시지 헤더의 소스 노드 ID를 재사용할 수 있음을 나타내는 데 사용됩니다.

@35

 @35
속성
kGetPeerDescription_MaxLength

GetPeerDescription()에 의해 반환되는 문자열(NUL 문자 포함)의 최대 길이

ConnectionClosedFunct

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

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

세부정보
매개변수
[in] ec
ExchangeContext 개체를 가리키는 포인터입니다.
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] conErr
연결이 닫힐 때 보고된 WEAVE_ERROR 유형입니다.

KeyErrorFunct

void(* KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr)

주요 오류 메시지 처리 함수의 유형입니다.

세부정보
매개변수
[in] ec
ExchangeContext 개체를 가리키는 포인터입니다.
[in] keyErr
키 오류 메시지에 보고된 WEAVE_ERROR 유형입니다.

MessageReceiveFunct

void(* MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)

이 함수는 수신된 Weave 메시지를 처리하기 위한 애플리케이션 콜백입니다.

세부정보
매개변수
[in] ec
ExchangeContext 개체를 가리키는 포인터입니다.
[in] pktInfo
IPPacketInfo 객체에 대한 포인터입니다.
[in] msgInfo
WeaveMessageInfo 객체를 가리키는 포인터입니다.
[in] profileId
수신된 메시지의 프로필 식별자입니다.
[in] msgType
해당 프로필의 메시지 유형입니다.
[in] payload
메시지 페이로드가 있는 PacketBuffer 객체에 대한 포인터입니다.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

이 함수는 응답 메시지 수신 제한 시간이 만료되었을 때 호출할 애플리케이션 콜백입니다.

세부정보
매개변수
[in] ec
ExchangeContext 개체를 가리키는 포인터입니다.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

이 함수는 이전에 보낸 메시지의 재전송에 대한 제한 시간이 만료될 때 호출할 애플리케이션 콜백입니다.

세부정보
매개변수
[in] ec
ExchangeContext 개체를 가리키는 포인터입니다.

시간 초과

uint32_t Timeout

ExchangeContext에서 시간 제한을 표현하는 데 사용되는 유형(밀리초)입니다.

WRMPAckRcvdFunct

void(* WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt)

이 함수는 Weave 신뢰할 수 있는 메시징 프로토콜의 일부로 요청된 Weave 메시지에 대한 확인을 받으면 호출할 애플리케이션 콜백입니다.

세부정보
매개변수
[in] ec
ExchangeContext 개체를 가리키는 포인터입니다.
[in] msgCtxt
확인 중인 원본 메시지와 연결된 특정 컨텍스트 객체에 대한 포인터입니다.

WRMPPauseRcvdFunct

void(* WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime)

이 함수는 제한 메시지 또는 지연된 전송 메시지가 Weave Reliable Messaging Protocol의 일부로 수신될 때 호출할 애플리케이션 콜백입니다.

각 메시지에는 이 ExchangeContext에서 Weave 메시지 전송을 일시중지할 시간을 나타내는 시간 값 (밀리초 단위)이 함께 제공됩니다.

세부정보
매개변수
[in] ec
ExchangeContext 개체를 가리키는 포인터입니다.
[in] pauseTime
전송을 일시중지하는 시간 (밀리초)입니다.

WRMPSendErrorFunct

void(* WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt)

이 함수는 Weave 메시지를 보내는 동안 오류가 발생하면 호출할 애플리케이션 콜백입니다.

세부정보
매개변수
[in] ec
ExchangeContext 개체를 가리키는 포인터입니다.
[in] err
메시지를 보내는 동안 발생한 WEAVE_ERROR 유형입니다.
[in] msgCtxt
보고되는 원본 메시지와 연결된 특정 컨텍스트 객체에 대한 포인터입니다.

공개 속성

AllowDuplicateMsgs

bool AllowDuplicateMsgs

특정 교환에 중복 메시지가 허용되는지 여부를 나타내는 부울 표시기입니다.

AppState

void * AppState

애플리케이션별 상태 객체를 가리키는 포인터입니다.

단점

WeaveConnection * Con

[읽기 전용] 연결된 Weave 연결

EncryptionType

uint8_t EncryptionType

메일을 보낼 때 사용할 암호화 유형입니다.

ExchangeId

uint16_t ExchangeId

[읽기 전용] 할당된 거래소 ID입니다.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[읽기 전용] 거래소 관리자 소유.

KeyId

uint16_t KeyId

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

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

수신된 확인을 위한 애플리케이션 콜백입니다.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

수신된 지연된 전송 메시지의 애플리케이션 콜백입니다.

OnKeyError

KeyErrorFunct OnKeyError

이 함수는 키 오류 메시지가 피어에서 수신되면 호출할 애플리케이션 콜백입니다.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

전송 중 오류가 발생한 애플리케이션 콜백

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

수신된 제한 메시지의 애플리케이션 콜백입니다.

PeerAddr

IPAddress PeerAddr

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

PeerIntf

InterfaceId PeerIntf

[읽기 전용] 피어에 메시지를 보낼 때 사용되는 아웃바운드 인터페이스입니다.

(UDP에만 의미가 있습니다.)

PeerNodeId

uint64_t PeerNodeId

[읽기 전용] 피어 노드의 노드 ID입니다.

PeerPort

uint16_t PeerPort

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

ResponseTimeout

Timeout ResponseTimeout

응답을 기다리는 최대 시간 (밀리초)입니다. 0은 응답 제한 시간을 사용 중지합니다.

RetransInterval

uint32_t RetransInterval

재전송 간 시간 (밀리초 단위) 0은 재전송을 사용 중지합니다.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

ExchangeContext의 메시지 프로토콜 버전입니다.

mWRMPConfig

WRMPConfig mWRMPConfig

WRMP 구성

공개 함수

취소

void Abort(
  void
)

Exchange 컨텍스트를 즉시 취소하고 컨텍스트에 대한 모든 참조를 해제합니다.

AddRef

void AddRef(
  void
)

거래소 컨텍스트의 참조 카운터를 1씩 늘립니다.

AutoRequestAck

bool AutoRequestAck() const 

메시지를 보낼 때마다 확인을 요청할지 여부를 반환합니다.

CancelRetrans

void CancelRetrans(
  void
)

Trickle 재전송 메커니즘을 취소합니다.

닫기

void Close(
  void
)

교환 컨텍스트를 단계적으로 닫습니다.

이렇게 하면 참조 수가 감소하고 참조 수가 0이 되면 교환이 해제됩니다.

EncodeExchHeader

WEAVE_ERROR EncodeExchHeader(
  WeaveExchangeHeader *exchangeHeader,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags
)

교환 헤더를 메시지 버퍼로 인코딩합니다.

세부정보
매개변수
[in] exchangeHeader
Weave Exchange 헤더 객체에 대한 포인터입니다.
[in] profileId
전송할 Weave 메시지의 프로필 식별자입니다.
[in] msgType
해당 프로필의 메시지 유형입니다.
[in] msgBuf
Weave 메시지에 필요한 PacketBuffer에 대한 포인터입니다.
[in] sendFlags
전송 중인 Weave 메시지에 대해 애플리케이션에서 설정한 플래그입니다.
반환 값
WEAVE_ERROR_BUFFER_TOO_SMALL
메시지 버퍼에 교환 헤더를 인코딩하기 위한 공간이 충분하지 않은 경우
WEAVE_NO_ERROR
메일이 성공적으로 인코딩되었는지 여부입니다.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

교환이 해제될 때 교환과 연결된 암호화 키를 해제해야 하는지 여부를 반환합니다.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

현재 재전송 제한 시간을 가져옵니다.

ExchangeContext에 해당 피어와 진행 중인 활성 메시지 교환이 있는지에 따라 초기 또는 활성 재전송 제한 시간이 됩니다.

세부정보
반환
현재 재전송 시간을 나타냅니다.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

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

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

HandleTrickleMessage

void HandleTrickleMessage(
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo
)

교환 컨텍스트 내에서 트리클 메시지를 처리합니다.

세부정보
매개변수
[in] pktInfo
IPPacketInfo 객체에 대한 포인터입니다.
[in] msgInfo
Weave 메시지 정보 구조에 대한 포인터입니다.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

피어가 이 교환의 메시지 1개 이상에 대한 확인을 요청했는지 확인합니다.

세부정보
반환
'true'를 반환합니다. 확인이 요청된 경우, 그렇지 않은 경우 'false'입니다.

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

이 교환에서 피어로부터 하나 이상의 메시지가 수신되었는지 확인합니다.

세부정보
반환
'true'를 반환합니다. 메시지를 수신한 경우 그렇지 않으면 'false'입니다.

IsAckPending

bool IsAckPending(
  void
) const 

이 거래소의 피어에 전송되기 위해 대기 중인 확인이 이미 있는지 확인합니다.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

ExchangeContext에 연결된 활성 WeaveConnection이 있는지 확인합니다.

세부정보
반환
'true'를 반환합니다. 연결이 닫혀 있으면 'false'입니다.

IsInitiator

bool IsInitiator(
  void
) const 

컨텍스트가 교환을 시작한 사람인지 확인합니다.

세부정보
반환
'true'를 반환합니다. 시작자인 경우 그렇지 않으면 'false'입니다.

IsResponseExpected

bool IsResponseExpected(
  void
) const 

이 교환을 통해 전송된 메시지에 대한 응답이 예상되는지 확인합니다.

세부정보
반환
'true'를 반환합니다. 응답이 예상된 경우, 그렇지 않은 경우 'false'입니다.

출시

void Release(
  void
)

이 거래소 컨텍스트에 대한 참조를 해제합니다.

카운트다운이 1까지 줄면 컨텍스트를 닫고 모든 애플리케이션 콜백을 재설정하고 모든 타이머를 중지합니다.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Common::Null 메시지를 보냅니다.

세부정보
반환 값
WEAVE_ERROR_NO_MEMORY
사용 가능한 PacketBuffer가 없는 경우
WEAVE_NO_ERROR
메서드가 성공했거나 오류가 중요하지 않은 경우입니다.
other
SendMessage()에서 반환하는 또 다른 중요한 오류입니다.

SendMessage

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgPayload,
  uint16_t sendFlags,
  void *msgCtxt
)

이 광고 거래소에서 Weave 메시지를 전송합니다.

세부정보
매개변수
[in] profileId
전송할 Weave 메시지의 프로필 식별자입니다.
[in] msgType
해당 프로필의 메시지 유형입니다.
[in] msgBuf
Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
[in] sendFlags
전송 중인 Weave 메시지에 대해 애플리케이션에서 설정한 플래그입니다.
[in] msgCtxt
전송 중인 메시지와 연결할 애플리케이션별 컨텍스트 객체에 대한 포인터입니다.
반환 값
WEAVE_ERROR_INVALID_ARGUMENT
잘못된 인수가 이 SendMessage API에 전달된 경우.
WEAVE_ERROR_SEND_THROTTLED
Weave에서 신뢰할 수 있는 메시징 프로토콜을 사용할 때 이 교환 컨텍스트가 제한되었는지를 나타냅니다.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
특정 보내기 작업과 지원되는 Weave 메시지 프로토콜 버전에 불일치가 있는 경우. 예를 들어, Weave 메시지 프로토콜 버전이 V1일 때 Weave Reliable Messaging 의미 체계를 시도 중인 경우 이 오류가 발생합니다.
WEAVE_ERROR_NOT_CONNECTED
컨텍스트가 현재 닫힌 연결과 연결된 경우입니다.
WEAVE_ERROR_INCORRECT_STATE
교환 컨텍스트의 상태가 잘못된 경우
WEAVE_NO_ERROR
네트워크 계층으로 메시지를 보내면 됩니다.

SendMessage

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags,
  WeaveMessageInfo *msgInfo,
  void *msgCtxt
)

이 광고 거래소에서 Weave 메시지를 전송합니다.

세부정보
매개변수
[in] profileId
전송할 Weave 메시지의 프로필 식별자입니다.
[in] msgType
해당 프로필의 메시지 유형입니다.
[in] msgBuf
Weave 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
[in] sendFlags
전송 중인 Weave 메시지에 대해 애플리케이션에서 설정한 플래그입니다.
[in] msgInfo
WeaveMessageInfo 객체를 가리키는 포인터입니다.
[in] msgCtxt
전송 중인 메시지와 연결할 애플리케이션별 컨텍스트 객체에 대한 포인터입니다.
반환 값
WEAVE_ERROR_INVALID_ARGUMENT
잘못된 인수가 이 SendMessage API에 전달된 경우.
WEAVE_ERROR_SEND_THROTTLED
Weave에서 신뢰할 수 있는 메시징 프로토콜을 사용할 때 이 교환 컨텍스트가 제한되었는지를 나타냅니다.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
특정 보내기 작업과 지원되는 Weave 메시지 프로토콜 버전에 불일치가 있는 경우. 예를 들어, Weave 메시지 프로토콜 버전이 V1일 때 Weave Reliable Messaging 의미 체계를 시도 중인 경우 이 오류가 발생합니다.
WEAVE_ERROR_NOT_CONNECTED
컨텍스트가 현재 닫힌 연결과 연결된 경우입니다.
WEAVE_ERROR_INCORRECT_STATE
교환 컨텍스트의 상태가 잘못된 경우
WEAVE_NO_ERROR
네트워크 계층으로 메시지를 보내면 됩니다.

SetAckPending

void SetAckPending(
  bool inAckPending
)

이 교환의 피어에 확인을 다시 보내야 하는지 여부를 설정합니다.

세부정보
매개변수
[in] inAckPending
수신한 메시지에 대한 응답으로 확인을 다시 보내야 하는지 (true) 또는 거부 (false)를 나타내는 부울입니다.

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

교환이 해제될 때 교환과 연결된 암호화 키를 해제해야 하는지 여부를 설정합니다.

세부정보
매개변수
[in] autoReleaseKey
메시지 암호화 키를 자동으로 해제해야 하는 경우 true입니다.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

메시지를 보낼 때마다 확인을 요청해야 하는지 여부를 설정합니다.

세부정보
매개변수
[in] autoReqAck
메시지를 보낼 때마다 확인을 요청해야 하는지 여부를 나타내는 부울입니다.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

kFlagConnectionClosed 플래그 비트를 설정합니다.

이 플래그는 ExchangeContext와 연결된 WeaveConnection이 닫힐 때 설정됩니다.

세부정보
매개변수
[in] inConnectionClosed
컨텍스트가 연결과 연결되었는지 (true) 또는 아닌 (false)을 나타내는 부울입니다.

SetDropAck

void SetDropAck(
  bool inDropAck
)

WeaveExchangeManager가 이 컨텍스트에 대한 확인을 전송하면 안 되는지 여부를 설정합니다.

내부용 디버그 전용입니다.

세부정보
매개변수
[in] inDropAck
거래소에 확인을 전송하면 안 되는지 (true) 또는 아닌지 (false)를 나타내는 부울입니다.

SetInitiator

void SetInitiator(
  bool inInitiator
)

kFlagInitiator 플래그 비트를 설정합니다.

이 플래그는 교환을 시작하는 노드에 의해 설정됩니다.

세부정보
매개변수
[in] inInitiator
컨텍스트가 교환의 시작자인지 (true) 또는 아닌지 (false)를 나타내는 부울입니다.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

이 교환의 피어로부터 메시지를 수신했는지 여부를 설정합니다.

세부정보
매개변수
[in] inMsgRcvdFromPeer
이 교환 컨텍스트의 피어로부터 메시지가 수신되었는지 (true) 또는 수신되지 않음 (false)을 나타내는 부울입니다.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

이 교환에서 마지막으로 수신된 메시지에서 확인이 요청되었는지 설정합니다.

세부정보
매개변수
[in] inPeerRequestedAck
마지막으로 수신된 메시지에서 확인이 요청되었는지 (true) 또는 아님 (false)을 나타내는 부울입니다.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

이 교환에 대한 응답 예상 여부를 설정합니다.

세부정보
매개변수
[in] inResponseExpected
이 교환에 대한 응답이 예상되는지 (참) 또는 아님 (거짓)을 나타내는 부울입니다.

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

교환이 해제될 때 거래소와 연결된 Weave 연결을 해제할지 여부를 설정합니다.

세부정보
매개변수
[in] autoReleaseCon
Weave 연결을 자동으로 해제해야 하는 경우 true입니다.

SetupTrickleRetransmit

WEAVE_ERROR SetupTrickleRetransmit(
  uint32_t retransInterval,
  uint8_t threshold,
  uint32_t timeout
)

상응하는 재전송 간격과 재방송 기준점을 설정하여 트리클 재전송 메커니즘을 설정합니다.

세부정보
매개변수
[in] retransInterval
Trickle 재방송 알고리즘의 재전송 간격입니다.
[in] threshold
메시지가 재방송되는 최대 횟수입니다.
[in] timeout
Trickle 재전송 타이머를 취소하기 전에 기다리는 최대 시간입니다.
반환
WEAVE_NO_ERROR(트릭 설정이 성공한 경우), 그렇지 않으면 INET_ERROR가 WEAVE_ERROR에 매핑됩니다.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

교환이 해제되면 교환과 연결된 Weave 연결을 해제해야 하는지 여부를 반환합니다.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

WeaveExchangeManager가 확인을 전송하면 안 되는지를 결정합니다.

내부용 디버그 전용입니다.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Trickle 재방송 알고리즘의 주기적 재전송 타이머 메커니즘을 시작합니다.

세부정보
반환
성공한 경우 WEAVE_NO_ERROR, 그렇지 않으면 INET_ERROR가 WEAVE_ERROR에 매핑됩니다.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Trickle 내에서 주기적 타이머를 취소하고 Weave 메시지를 보유한 메시지 버퍼를 해제하여 Trickle 재전송 메커니즘을 해제합니다.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

교환을 통해 전송된 발신 메시지를 로컬 임시 UDP 포트에서 전송해야 하는지 여부를 반환합니다.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

전송 지연 메시지를 전송하여 이전에 보낸 메시지가 수신자에게 전송되기 전에 예상되는 지연이 발생한다는 것을 발신자 노드에 알립니다.

메시지가 전달되기 전에 지연될 수 있는 원인 중 하나는 수신자 측 노드가 휴면 상태일 때입니다. 지연된 전송을 추론할 수 있을 만큼 수신자를 충분히 이해하고 있는 전송 경로의 적절한 중간 노드에 의해 이 메시지가 생성될 수 있습니다. 이 메시지를 수신한 발신자는 확인을 다시 요구하는 메시지에 대해 재전송 타이머를 재조정합니다.

세부정보
매개변수
[in] pauseTimeMillis
이전에 보낸 메일이 전송되기 전에 지연될 것으로 예상되는 시간 (밀리초)입니다.
[in] delayedNodeId
메시지 전송이 지연될 피어 노드의 노드 식별자입니다.
반환 값
WEAVE_ERROR_INVALID_ARGUMENT
잘못된 인수가 이 SendMessage API에 전달된 경우.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
특정 보내기 작업과 지원되는 Weave 메시지 프로토콜 버전에 불일치가 있는 경우. 예를 들어, Weave 메시지 프로토콜 버전이 V1일 때 Weave Reliable Messaging 의미 체계를 시도 중인 경우 이 오류가 발생합니다.
WEAVE_ERROR_NOT_CONNECTED
컨텍스트가 현재 닫힌 연결과 연결된 경우입니다.
WEAVE_ERROR_INCORRECT_STATE
교환 컨텍스트의 상태가 잘못된 경우
WEAVE_NO_ERROR
네트워크 계층으로 메시지를 보내면 됩니다.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

메시지 전송을 제한하도록 요청하는 제한 흐름 메시지를 피어 노드에 보냅니다.

세부정보
매개변수
[in] pauseTimeMillis
수신자가 전송을 제한할 것으로 예상되는 시간 (밀리초)입니다.
반환 값
WEAVE_ERROR_INVALID_ARGUMENT
이 SendMessage API에 잘못된 인수가 전달되었는지 여부입니다.
WEAVE_ERROR_SEND_THROTTLED
Weave 신뢰할 수 있는 메시지 프로토콜을 사용할 때 이 교환 컨텍스트가 제한되었는지 여부입니다.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
특정 보내기 작업과 지원되는 Weave 메시지 프로토콜 버전에 불일치가 있는 경우. 예를 들어, Weave 메시지 프로토콜 버전이 V1일 때 Weave Reliable Messaging 의미 체계를 시도 중인 경우 이 오류가 발생합니다.
WEAVE_ERROR_NOT_CONNECTED
컨텍스트가 현재 닫힌 연결과 연결되어 있는지 여부입니다.
WEAVE_ERROR_INCORRECT_STATE
교환 컨텍스트의 상태가 잘못된 경우
WEAVE_NO_ERROR
Weave 계층이 네트워크 계층으로 메시지를 성공적으로 보낸 경우.