nl::Weave::Profiles::BDX_Development::BdxProtocol

요약

함수

HandleConnectionClosed(ExchangeContext *anEc, WeaveConnection *aCon, WEAVE_ERROR aConErr)
void
연결 자체가 닫힐 때의 핸들러입니다.
HandleKeyError(ExchangeContext *anEc, WEAVE_ERROR aKeyErr)
void
Weave 메시지를 암호화하고 인증하는 데 사용되는 키를 더 이상 사용할 수 없는 경우를 위한 핸들러입니다.
HandleResponse(ExchangeContext *anEc, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aWeaveMsgInfo, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
void
BDX 교환을 통해 도착하는 메시지의 기본 핸들러입니다.
HandleResponseNotAccepted(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleResponseReceive(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleResponseTimeout(ExchangeContext *anEc)
void
응답 대기 시간이 초과되는 시간을 위한 핸들러입니다.
HandleResponseTransmit(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleSendError(ExchangeContext *anEc, WEAVE_ERROR aSendErr, void *aMsgCtxt)
void
전송한 WRMP 메시지가 승인되지 않은 경우를 위한 핸들러입니다.
InitBdxReceive(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, ReferencedTLVData *aMetaData)
InitBdxSend(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, ReferencedTLVData *aMetaData)
InitBdxSend(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, SendInit::MetaDataTLVWriteCallback aMetaDataWriteCallback, void *aMetaDataAppState)
SendBadBlockCounterStatusReport(BDXTransfer & aXfer)
SendBlockAckV1(BDXTransfer & aXfer)
이 함수는 지정된 BDXTransfer에 대해 BlockAckV1 메시지를 보냅니다.
SendBlockEOFAckV1(BDXTransfer & aXfer)
이 함수는 지정된 BDXTransfer에 대해 BlockEOFAckV1 메시지를 보냅니다.
SendBlockQuery(BDXTransfer & aXfer)
SendBlockQueryV1(BDXTransfer & aXfer)
이 함수는 지정된 BDXTransfer에 대해 BlockQueryV1 메시지를 보냅니다.
SendNextBlock(BDXTransfer & aXfer)
SendNextBlockV1(BDXTransfer & aXfer)
이 함수는 BDXTransfer의 GetBlockHandler를 호출하여 가져온 다음 BlockSendV1을 전송합니다.
SendStatusReport(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void
연결된 프로필 ID, 상태 코드 및 거래소 컨텍스트와 함께 상태 보고 메시지를 보냅니다.
SendTransferError(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void

함수

HandleConnectionClosed

void HandleConnectionClosed(
  ExchangeContext *anEc,
  WeaveConnection *aCon,
  WEAVE_ERROR aConErr
)

연결 자체가 닫힐 때의 핸들러입니다.

연결된 전송의 오류 핸들러를 호출하고 전송을 종료합니다.

세부정보
매개변수
[in] anEc
닫힌 연결을 감지한 Exchange 컨텍스트입니다. 여기에서 연결된 BDXTransfer를 찾을 수 있습니다.
[in] aCon
실제 함수에서 사용되지 않는 Weave 연결
[in] aConErr
연결 종료 관련 오류

HandleKeyError

void HandleKeyError(
  ExchangeContext *anEc,
  WEAVE_ERROR aKeyErr
)

Weave 메시지를 암호화하고 인증하는 데 사용되는 키를 더 이상 사용할 수 없는 경우를 위한 핸들러입니다.

세부정보
매개변수
[in] anEc
주요 오류를 감지한 Exchange 컨텍스트입니다. 여기에서 관련 BDXTransfer를 찾을 수 있습니다.
[in] aKeyErr
키를 더 이상 사용할 수 없는 오류와 관련된 오류

HandleResponse

void HandleResponse(
  ExchangeContext *anEc,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aWeaveMsgInfo,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

BDX 교환을 통해 도착하는 메시지의 기본 핸들러입니다.

기본적으로 적절한 BDX 헤더 정보와 데이터를 추출하는 라우터 역할을 하며 이 객체에 대해 작업할 적절한 핸들러를 전달합니다.

세부정보
매개변수
[in] anEc
교환 컨텍스트(필요한 경우)
[in] aPktInfo
사용되지 않았지만 함수 프로토타입과 일치해야 함
[in] aWeaveMsgInfo
메시지에 대한 Weave 메시지 정보
[in] aProfileId
메시지가 정의된 프로필의 ID입니다.
[in] aMessageType
해당 프로필의 메시지 유형
[in] aPacketBuffer
압축된 메시지 자체

HandleResponseNotAccepted

WEAVE_ERROR HandleResponseNotAccepted(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

HandleResponseReceive

WEAVE_ERROR HandleResponseReceive(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

HandleResponseTimeout

void HandleResponseTimeout(
  ExchangeContext *anEc
)

응답 대기 시간이 초과되는 시간을 위한 핸들러입니다.

시간이 초과된 전송을 종료하고 해당 전송의 오류 핸들러를 호출합니다.

세부정보
매개변수
[in] anEc
BDXTransfer를 찾을 수 있는 교환 컨텍스트

HandleResponseTransmit

WEAVE_ERROR HandleResponseTransmit(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

HandleSendError

void HandleSendError(
  ExchangeContext *anEc,
  WEAVE_ERROR aSendErr,
  void *aMsgCtxt
)

전송한 WRMP 메시지가 승인되지 않은 경우를 위한 핸들러입니다.

세부정보
매개변수
[in] anEc
확인되지 않은 메시지가 있는 Exchange 컨텍스트는 여기에서 관련 BDXTransfer를 찾을 수 있습니다.
[in] aSendErr
메시지 전송 실패와 관련된 오류입니다.
[in] aMsgCtxt
미확인 메시지와 연결된 임의의 메시지 컨텍스트입니다.

InitBdxReceive

WEAVE_ERROR InitBdxReceive(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  ReferencedTLVData *aMetaData
)

InitBdxSend

WEAVE_ERROR InitBdxSend(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  ReferencedTLVData *aMetaData
)

InitBdxSend

WEAVE_ERROR InitBdxSend(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  SendInit::MetaDataTLVWriteCallback aMetaDataWriteCallback,
  void *aMetaDataAppState
)

SendBadBlockCounterStatusReport

WEAVE_ERROR SendBadBlockCounterStatusReport(
  BDXTransfer & aXfer
)

SendBlockAckV1

WEAVE_ERROR SendBlockAckV1(
  BDXTransfer & aXfer
)

이 함수는 지정된 BDXTransfer에 대해 BlockAckV1 메시지를 보냅니다.

이 함수는 전송 상태가 다음 카운터로 진행된 후에만 호출될 수 있으므로 확인된 블록 번호는 aXfer.mBlockCounter - 1입니다.

세부정보
매개변수
[in] aXfer
BlockAck를 전송할 BDXTransfer
반환 값
WEAVE_NO_ERROR
메시지가 성공적으로 전송되었는지 확인합니다.
WEAVE_ERROR_NO_MEMORY
사용 가능한 PacketBuffer가 없는 경우.

SendBlockEOFAckV1

WEAVE_ERROR SendBlockEOFAckV1(
  BDXTransfer & aXfer
)

이 함수는 지정된 BDXTransfer에 대해 BlockEOFAckV1 메시지를 보냅니다.

확인된 블록 번호는 aXfer.mBlockCounter와 같습니다.

세부정보
매개변수
[in] aXfer
BlockEOFAck의 대상인 BDXTransfer를 전송합니다.
반환 값
WEAVE_NO_ERROR
메시지가 성공적으로 전송되었는지 확인합니다.
WEAVE_ERROR_NO_MEMORY
사용 가능한 PacketBuffer가 없는 경우.

SendBlockQuery

WEAVE_ERROR SendBlockQuery(
  BDXTransfer & aXfer
)

SendBlockQueryV1

WEAVE_ERROR SendBlockQueryV1(
  BDXTransfer & aXfer
)

이 함수는 지정된 BDXTransfer에 대해 BlockQueryV1 메시지를 보냅니다.

요청된 블록 번호가 aXfer.mBlockCounter와 같습니다.

세부정보
매개변수
[in] aXfer
BlockQuery를 전송하는 BDXTransfer입니다.
반환 값
WEAVE_NO_ERROR
메시지가 성공적으로 전송되었는지 확인합니다.
WEAVE_ERROR_NO_MEMORY
사용 가능한 PacketBuffer가 없는 경우.

SendNextBlock

WEAVE_ERROR SendNextBlock(
  BDXTransfer & aXfer
)

SendNextBlockV1

WEAVE_ERROR SendNextBlockV1(
  BDXTransfer & aXfer
)

이 함수는 BDXTransfer의 GetBlockHandler를 호출하여 가져온 다음 BlockSendV1을 전송합니다.

세부정보
매개변수
[in] aXfer
연결된 ExchangeContext를 사용하여 전송하기 전에 다음 블록을 가져오기 위해 GetBlockHandler가 호출되는 BDXTransfer
반환 값
WEAVE_ERROR_INCORRECT_STATE
GetBlockHandler가 NULL인 경우

SendStatusReport

void SendStatusReport(
  ExchangeContext *anEc,
  uint32_t aProfileId,
  uint16_t aStatusCode
)

연결된 프로필 ID, 상태 코드 및 거래소 컨텍스트와 함께 상태 보고 메시지를 보냅니다.

세부정보
매개변수
[in] anEc
상태 보고 메시지를 전송할 거래소 컨텍스트
[in] aProfileId
프로필 ID
[in] aStatusCode
전송 오류와 관련된 코드

SendTransferError

void SendTransferError(
  ExchangeContext *anEc,
  uint32_t aProfileId,
  uint16_t aStatusCode
)