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 Message 消息
[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
我们要为其发送 BlockAckBDXTransfer
返回值
WEAVE_NO_ERROR
如果我们已成功发送消息。
WEAVE_ERROR_NO_MEMORY
如果没有可用的 PacketBuffer。

SendBlockEOFAckV1

WEAVE_ERROR SendBlockEOFAckV1(
  BDXTransfer & aXfer
)

此函数会针对指定的 BDXTransfer 发送 BlockEOFAckV1 消息。

已确认的块编号等于 aXfer.mBlockCounter。

详细信息
参数
[in] aXfer
我们要为其发送 BlockEOFAckBDXTransfer
返回值
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
要为其发送 BlockQueryBDXTransfer
返回值
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
调用 GetBlockHandler 的 BDXTransfer 以获取下一个块,然后再使用关联的 ExchangeContext 发送下一个块。
返回值
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
)