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

nl::매서::ExchangeContext

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

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

요약

다양한 전송 메커니즘(예: TCP, UDP, Weave Reliable Messaging)을 통해 ExchangeContext 내에서 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 프로토콜의 일부로 요청한 Weave 메시지에 대한 확인이 수신된 경우 호출할 애플리케이션 콜백입니다.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
이 함수는 Weave Reliable Messaging 프로토콜의 일부로 제한 메시지 또는 지연된 전송 메시지가 수신될 때 호출하는 애플리케이션 콜백입니다.
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
수신된 Throttle 메시지의 애플리케이션 콜백입니다.
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
거래소 컨텍스트의 참조 카운터를 하나씩 늘립니다.
AutoRequestAck() const
bool
메시지가 전송될 때마다 확인을 요청할지 여부를 반환합니다.
CancelRetrans(void)
void
Trickle 재전송 메커니즘을 취소합니다.
Close(void)
void
교환 컨텍스트를 정상적으로 종료하세요.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Exchange 헤더를 메시지 버퍼로 인코딩합니다.
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
Exchange를 통해 전송된 발신 메일을 로컬 임시 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 객체에 대한 포인터입니다.

응답 시간 제한 기능

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 프로토콜의 일부로 요청한 Weave 메시지에 대한 확인이 수신된 경우 호출할 애플리케이션 콜백입니다.

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

WRMPPauseRcvdFunct

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

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

이러한 각 메시지에는 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
보고되는 원본 메시지와 연결된 특정 컨텍스트 객체에 대한 포인터입니다.

공개 속성

중복된 메일 허용

bool AllowDuplicateMsgs

지정된 거래소에 중복된 메시지가 허용되는지 여부를 나타내는 부울 표시기입니다.

앱 상태

void * AppState

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

단점

WeaveConnection * Con

[읽기 전용] 연결된 Weave 연결입니다.

EncryptionType

uint8_t EncryptionType

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

거래소 ID

uint16_t ExchangeId

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

거래소

WeaveExchangeManager * ExchangeMgr

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

KeyId

uint16_t KeyId

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

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

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

연결 완료

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

수신된 지연된 메시지 수신에 대한 애플리케이션 콜백입니다.

OnKeyError

KeyErrorFunct OnKeyError

이 함수는 키 오류 메시지가 피어로부터 수신될 때 호출할 애플리케이션 콜백입니다.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

응답 없음

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout(OnRetransmissionTimeout)

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

보내는 동안 오류가 발생한 애플리케이션 콜백입니다.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

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

PeerAddr

IPAddress PeerAddr

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

PeerIntf

InterfaceId PeerIntf

[읽기 전용] 피어에 메시지를 보낼 때 사용할 발신 인터페이스입니다.

(UDP에만 의미가 있음)

PeerNodeId

uint64_t PeerNodeId

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

피어포트

uint16_t PeerPort

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

응답 시간 초과

Timeout ResponseTimeout

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

재전송

uint32_t RetransInterval

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

mssProtocolVersion

uint16_t mMsgProtocolVersion

ExchangeContext의 메시지 프로토콜 버전

mWRMPConfig

WRMPConfig mWRMPConfig

WRMP 구성

공개 함수

취소

void Abort(
  void
)

Exchange 컨텍스트를 즉시 취소하고 해당 참조를 모두 해제합니다.

추가 참조

void AddRef(
  void
)

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

자동 요청

bool AutoRequestAck() const 

메시지가 전송될 때마다 확인을 요청할지 여부를 반환합니다.

ReTrans 취소

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
)

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

세부정보
매개변수
[in] exchangeHeader
Weave Exchange 헤더 객체 포인터.
[in] profileId
전송할 Weave 메시지의 프로필 식별자입니다.
[in] msgType
해당 프로필의 메시지 유형입니다.
[in] msgBuf
Weave 메시지에 필요한 PacketBuffer에 대한 포인터입니다.
[in] sendFlags
전송 중인 Weave 메시지에 대해 애플리케이션에서 설정한 플래그입니다.
반환 값
WEAVE_ERROR_BUFFER_TOO_SMALL
메시지 버퍼에 Exchange 헤더를 인코딩하기에 충분한 공간이 없는 경우
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 

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

세부정보
반환
확인을 요청한 경우 '참' 그 외의 경우 ##39;거짓'.

HasRcdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

이 거래소에서 하나 이상의 메시지를 동종 앱으로부터 수신했는지 확인합니다.

세부정보
반환
메시지

IsAckPending

bool IsAckPending(
  void
) const 

이 거래소에서 피어에게 전송될 확인이 이미 있는지 확인합니다.

연결 끊김

bool IsConnectionClosed(
  void
) const 

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

세부정보
반환
연결이 닫히면 'true'가 반환되며, 'false'가 반환됩니다.

이니시터

bool IsInitiator(
  void
) const 

맥락이 거래소의 시작점인지 확인합니다.

세부정보
반환
'true' 시작자인 경우 'false'를 반환합니다.

응답 응답 예상

bool IsResponseExpected(
  void
) const 

이 교환을 통해 보낸 메일에 대한 응답 여부를 예상합니다.

세부정보
반환
예상 응답인 경우 'true' else 'false'입니다.

출시

void Release(
  void
)

이 교환 컨텍스트의 출시 참조입니다.

개수가 1개 미만인 경우 컨텍스트를 닫고, 모든 애플리케이션 콜백을 재설정하고, 모든 타이머를 중지합니다.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Common::Null 메시지를 전송합니다.

세부정보
반환 값
WEAVE_ERROR_NO_MEMORY
사용 가능한 PacketBuffers가 없는 경우.
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
Weave 레이어가 네트워크 레이어로 메시지를 성공적으로 보낸 경우에 표시됩니다.

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
Weave 레이어가 네트워크 레이어로 메시지를 성공적으로 보낸 경우에 표시됩니다.

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) 여부를 나타내는 부울입니다.

세트 시작자

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
마지막으로 수신된 메시지에서 확인이 요청되었는지(false)를 나타내는 부울입니다.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

이 교환에서 응답이 예상되는지 여부를 설정합니다.

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

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

교환이 해제될 때 교환과 연결된 Weave 연결을 해제할지 설정합니다.

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

설정 TrickleRetransmit

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

해당 재전송 간격과 재전송 임곗값을 설정하여 리플리 재전송 메커니즘을 설정합니다.

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

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

교환이 해제될 때 교환과 연결된 Weave 연결을 해제해야 하는지 반환합니다.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

WeaveExchangeManager에 확인을 보내지 않아야 하는지 확인합니다.

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

시작 타이머

WEAVE_ERROR StartTimerT(
  void
)

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

세부정보
반환
성공하면 WEAVE_NO_ERROR입니다. 성공하지 않으면 WEAVE_ERROR에 매핑된 INET_ERROR입니다.

티어다운 트릭레레트랜트

void TeardownTrickleRetransmit(
  void
)

Trickle 내의 주기적 타이머를 취소하고 Weave 메시지가 포함된 메시지 버퍼를 해제하여 Trickle 재전송 메커니즘을 해체합니다.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

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

재택근무자

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
Weave 레이어가 네트워크 레이어로 메시지를 성공적으로 보낸 경우에 표시됩니다.

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 레이어가 메시지를 네트워크 레이어로 성공적으로 전송한 경우.