nl::Weave::Profiles::BDX_Development::BDXTransfer

#include <src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h>

该结构包含代表有效 BDX 传输的数据成员。

摘要

BdxProtocol 使用这些对象来维护协议状态。它们由 BdxServer 管理,BdxServer 负责创建和初始化新的传输,包括管理连接和 ExchangeContext。

公共属性

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
我们预计会在发送时(在传输正式开始后)收到 BlockQuery 或 BlockACK 的下一个块编号。
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
文件/屏蔽相关数据成员 TODO:删除此项?还是应该就这个字符串的内容和使用方式达成协议?具体来说,它是否由 PacketBuffer 支持?如果是,它可能不会持续显示整个 Xfer,因为这会占用一个 pbuf
mFirstQuery
bool
mHandlers
mIsAccepted
bool
mIsCompletedSuccessfully
bool
mIsInitiated
bool
mIsWideRange
bool
mLength
uint64_t
mMaxBlockSize
uint16_t
mNext)(BDXTransfer &)
mStartOffset
uint64_t
mTransferMode
uint8_t
mVersion
uint8_t

公共函数

DispatchErrorHandler(WEAVE_ERROR anErrorCode)
void
如果设置了错误处理程序,则调用它。
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
如果设置了 get 块处理程序,则调用它。
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
如果设置了 put 块处理程序,则调用它。
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
调度程序只需检查是否已设置处理程序,如果已设置,则调用它。
DispatchRejectHandler(StatusReport *aReport)
void
如果设置了拒绝处理程序,则调用它。
DispatchSendAccept(SendAccept *aSendAcceptMsg)
如果设置了发送接受处理程序,则调用它。
DispatchXferDoneHandler(void)
void
如果设置了传输完成处理程序,则调用它。
DispatchXferErrorHandler(StatusReport *aXferError)
void
如果设置了传输错误处理程序,则调用它。
GetDefaultFlags(bool aExpectResponse)
uint16_t
此函数可返回要随消息发送的默认标志。
IsAsync(void)
bool
 Returns true if this transfer is asynchronous, false otherwise.
IsDriver(void)
bool
 Returns true if this entity (node) is the driver for this transfer, false otherwise.
Reset(void)
void
 Sets all pointers to NULL, resets counters, etc.
SetHandlers(BDXHandlers aHandlers)
void
此函数会设置该 BDXTransfer 对象上的处理程序。
Shutdown(void)
void
 Shuts down the current transfer, including closing any open ExchangeContext.

公共属性

mAmInitiator

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmInitiator

mAmSender

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmSender

mAppState

void * nl::Weave::Profiles::BDX_Development::BDXTransfer::mAppState

mBlockCounter

uint32_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBlockCounter

我们预计会在发送时(在传输正式开始后)收到 BlockQuery 或 BlockACK 的下一个块编号。

当接收时,它是我们预期收到的下一个 BlockSend 或我们发送的最新 BlockQuery(在传输正式开始且第一个查询是发送之后)。

mBytesSent

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBytesSent

mExchangeContext

ExchangeContext * nl::Weave::Profiles::BDX_Development::BDXTransfer::mExchangeContext

mFileDesignator

ReferencedString nl::Weave::Profiles::BDX_Development::BDXTransfer::mFileDesignator

文件/屏蔽相关数据成员 TODO:删除此项?还是应该就这个字符串的内容和使用方式达成协议?具体来说,它是否由 PacketBuffer 支持?如果是,它可能不会持续显示整个 Xfer,因为这会占用一个 pbuf

mFirstQuery

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mFirstQuery

mHandlers

BDXHandlers nl::Weave::Profiles::BDX_Development::BDXTransfer::mHandlers

mIsAccepted

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsAccepted

mIsCompletedSuccessfully

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsCompletedSuccessfully

mIsInitiated

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsInitiated

mIsWideRange

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsWideRange

mLength

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mLength

mMaxBlockSize

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mMaxBlockSize

mNext

WEAVE_ERROR(* nl::Weave::Profiles::BDX_Development::BDXTransfer::mNext)(BDXTransfer &)

mStartOffset

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mStartOffset

mTransferMode

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mTransferMode

mVersion

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mVersion

公共函数

DispatchErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchErrorHandler(
  WEAVE_ERROR anErrorCode
)

如果设置了错误处理程序,则调用它。

如果未设置此政策,系统也会默认关停传输。

详细信息
参数
[in] anErrorCode
要处理的错误代码

DispatchGetBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchGetBlockHandler(
  uint64_t *aLength,
  uint8_t **aDataBlock,
  bool *aLastBlock
)

如果设置了 get 块处理程序,则调用它。

详细信息
参数
[in] aLength
数据块长度
[in] aDataBlock
指向数据块的指针
[in] aLastBlock
如果这是传输中的最后一个块,则为 true

DispatchPutBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchPutBlockHandler(
  uint64_t aLength,
  uint8_t *aDataBlock,
  bool aLastBlock
)

如果设置了 put 块处理程序,则调用它。

详细信息
参数
[in] aLength
数据块长度
[in] aDataBlock
指向数据块的指针
[in] aLastBlock
如果这是传输中的最后一个块,则为 true

DispatchReceiveAccept

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchReceiveAccept(
  ReceiveAccept *aReceiveAcceptMsg
)

调度程序只需检查是否已设置处理程序,如果已设置,则调用它。

如果设置了接收接受处理程序,则调用它。

因此,它们应用作调用回调的公共接口,外部应用绝不应直接触及这些接口。BDXTransfer 的未来修订版可能会使用委托对象,而不是存储指向每个回调的单个指针。

详细信息
参数
[in] aReceiveAcceptMsg
要处理的 ReceiveAccept 消息
返回值
一个错误值

DispatchRejectHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchRejectHandler(
  StatusReport *aReport
)

如果设置了拒绝处理程序,则调用它。

如果未设置此政策,系统也会默认关停传输。

详细信息
参数
[in] aReport
要处理的 StatusReport 消息

DispatchSendAccept

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchSendAccept(
  SendAccept *aSendAcceptMsg
)

如果设置了发送接受处理程序,则调用它。

详细信息
参数
[in] aSendAcceptMsg
要处理的 SendAccept 消息
返回值
一个错误值

DispatchXferDoneHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferDoneHandler(
  void
)

如果设置了传输完成处理程序,则调用它。

如果未设置此政策,系统也会默认关停传输。

DispatchXferErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferErrorHandler(
  StatusReport *aXferError
)

如果设置了传输错误处理程序,则调用它。

如果未设置此政策,系统也会默认关停传输。

详细信息
参数
[in] aXferError
要处理的错误的状态报告

GetDefaultFlags

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::GetDefaultFlags(
  bool aExpectResponse
)

此函数可返回要随消息发送的默认标志。

详细信息
参数
[in] aExpectResponse
如果我们预计收到此邮件的回复
返回值
要发送的标志

IsAsync

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsAsync(
  void
)

 Returns true if this transfer is asynchronous, false otherwise.

详细信息
返回值
当且当传输是异步的时,为 true。

IsDriver

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsDriver(
  void
)

 Returns true if this entity (node) is the driver for this transfer, false otherwise.

详细信息
返回值
当且仅当此实体是此次转移的驾驶员时,值为 true

重置

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Reset(
  void
)

 Sets all pointers to NULL, resets counters, etc.

在关机时调用。

SetHandlers

void nl::Weave::Profiles::BDX_Development::BDXTransfer::SetHandlers(
  BDXHandlers aHandlers
)

此函数会设置该 BDXTransfer 对象上的处理程序。

您应该始终使用此方法,而不是尝试手动设置它们,因为处理程序函数指针存储方式的底层实现不是公共 API 的一部分。

详细信息
参数
[in] aHandlers
要调用的回调处理程序的结构

关停

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Shutdown(
  void
)

 Shuts down the current transfer, including closing any open ExchangeContext.

您可以借此机会释放与此转移作业以及您的应用逻辑相关联的所有资源。