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 Reliable Messaging Protocol의 일부로 요청한 Weave 메시지에 대해 승인이 수신될 때 호출할 애플리케이션 콜백입니다.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
이 함수는 Throttle 메시지 또는 Delayed Delivery 메시지가 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
이 교환에서 하나 이상의 메시지에 대해 피어가 확인을 요청했는지 확인합니다.
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)
Throttle Flow 메시지를 피어 노드에 전송하여 메시지 전송을 제한하도록 요청합니다.

공개 유형

@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 Reliable Messaging Protocol의 일부로 요청한 Weave 메시지에 대해 승인이 수신될 때 호출할 애플리케이션 콜백입니다.

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

WRMPPauseRcvdFunct

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

이 함수는 Throttle 메시지 또는 Delayed Delivery 메시지가 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 

이 교환에서 하나 이상의 메시지에 대해 피어가 확인을 요청했는지 확인합니다.

세부정보
반환
승인이 요청되면 '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_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_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
이 Exchange 컨텍스트의 피어로부터 메시지가 수신되었는지 (true) 또는 그렇지 않음 (false)을 나타내는 부울입니다.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

이 광고 거래소에서 수신된 마지막 메시지에서 승인이 요청되었는지 설정합니다.

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

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

이 거래소에서 응답이 예상되는지 여부를 설정합니다.

세부정보
매개변수
[in] inResponseExpected
이 교환에서 응답이 예상되는지 (true) 또는 그렇지 않은지 (false)를 나타내는 부울입니다.

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: Trickle 설정에 성공하면 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
)

Throttle Flow 메시지를 피어 노드에 전송하여 메시지 전송을 제한하도록 요청합니다.

세부정보
매개변수
[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 레이어가 메시지를 네트워크 레이어로 성공적으로 전송한 경우