nl::Weave::Profiles::BDX_Development::SendInit

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

SendInit 消息用于在发送者为发起者时启动交换。

摘要

继承

直接已知的子类: nl::Weave::Profiles::BDX_Development::ReceiveInit

构造函数和析构函数

SendInit(void)

公共类型

MetaDataTLVWriteCallback)(uint8_t *aBuffer, uint16_t aBufferLength, uint16_t &aNumBytesWritten, void *aAppState) typedef
MetaDataTLVWriteCallback 提供了一种方法,让客户端可以为 SendInit 提供所需的任何元数据。

公共属性

mAsynchronousModeSupported
bool
如果我们能够支持异步模式,则为 true。
mDefiniteLength
bool
如果存在长度字段,则为 true。
mFileDesignator
包含预先协商的信息的字符串。
mLength
uint64_t
建议的传输数据长度,0 表示无限期。
mMaxBlockSize
uint16_t
建议在转移作业中使用的块大小上限。
mMetaData
可选的 TLV 元数据。
mMetaDataAppState
void *
TLV 元数据的可选应用状态。
mMetaDataWriteCallback
用于写出 TLV 元数据的可选函数。
mReceiverDriveSupported
bool
如果我们能够支持接收器驱动,则为 true。
mSenderDriveSupported
bool
如果我们可以支持发件人云端硬盘,则为 true。
mStartOffset
uint64_t
建议的数据的起始偏移量。
mStartOffsetPresent
bool
如果存在起始偏移量字段,则返回 true。
mVersion
uint8_t
我们决定使用的 BDX 协议版本。
mWideRange
bool
如果偏移量和长度为 64 位,则为 True。

公共函数

init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive, bool aAsynchMode, uint16_t aMaxBlockSize, uint64_t aStartOffset, uint64_t aLength, ReferencedString & aFileDesignator, ReferencedTLVData *aMetaData)
初始化“wide”SendInit.
init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive, bool aAsynchMode, uint16_t aMaxBlockSize, uint32_t aStartOffset, uint32_t aLength, ReferencedString & aFileDesignator, ReferencedTLVData *aMetaData)
初始化“非宽带”SendInit(32 位开始偏移,32 位长度)
init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive, bool aAsynchMode, uint16_t aMaxBlockSize, uint64_t aStartOffset, uint64_t aLength, ReferencedString & aFileDesignator, MetaDataTLVWriteCallback aMetaDataWriteCallback, void *aMetaDataAppState)
初始化“wide”SendInit.
init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive, bool aAsynchMode, uint16_t aMaxBlockSize, uint32_t aStartOffset, uint32_t aLength, ReferencedString & aFileDesignator, MetaDataTLVWriteCallback aMetaDataWriteCallback, void *aMetaDataAppState)
初始化“非宽带”SendInit(32 位开始偏移,32 位长度)
operator==(const SendInit &) const
bool
SendInit 消息之间的相等性比较。
pack(PacketBuffer *aBuffer)
将发送初始化消息封装到 PacketBuffer 中。
packedLength(void)
uint16_t
返回此发送初始化消息的打包长度。

公共静态函数

parse(PacketBuffer *aBuffer, SendInit & aRequest)
将 PacketBuffer 中的数据解析为 SendInit 消息格式。

公共类型

MetaDataTLVWriteCallback

WEAVE_ERROR(* MetaDataTLVWriteCallback)(uint8_t *aBuffer, uint16_t aBufferLength, uint16_t &aNumBytesWritten, void *aAppState)

MetaDataTLVWriteCallback 提供了一种方法,让客户端可以为 SendInit 提供所需的任何元数据。

客户端可以自由提供他们认为合适的预编码 TLV(较快)、即时编码(使用较少的内存)、延迟编码(启动速度更快)等。

在所有情况下,系统都假定回调生成的数据对于指定的 SendInit 而言是恒定的,即无论何时调用它都不会改变。这是因为该回调还用于计算任何此类写出的 TLV 的长度,可以随时进行请求。

详细信息
参数
[in] aBuffer
目标缓冲区,可以将一些 TLV 写入其中
[in] aBufferLength
目标缓冲区的长度(以字节为单位)
[in,out] aNumBytesWritten
写入目标缓冲区的字节数
[in] aAppState
用户提供的应用状态
返回值
WEAVE_ERROR
遇到任何错误。

公共属性

mAsynchronousModeSupported

bool mAsynchronousModeSupported

如果我们能够支持异步模式,则为 true。

mDefiniteLength

bool mDefiniteLength

如果存在长度字段,则为 true。

mFileDesignator

ReferencedString mFileDesignator

包含预先协商的信息的字符串。

mLength

uint64_t mLength

建议的传输数据长度,0 表示无限期。

mMaxBlockSize

uint16_t mMaxBlockSize

建议在转移作业中使用的块大小上限。

mMetaData

ReferencedTLVData mMetaData

可选的 TLV 元数据。

mMetaDataAppState

void * mMetaDataAppState

TLV 元数据的可选应用状态。

mMetaDataWriteCallback

MetaDataTLVWriteCallback mMetaDataWriteCallback

用于写出 TLV 元数据的可选函数。

mReceiverDriveSupported

bool mReceiverDriveSupported

如果我们能够支持接收器驱动,则为 true。

mSenderDriveSupported

bool mSenderDriveSupported

如果我们可以支持发件人云端硬盘,则为 true。

mStartOffset

uint64_t mStartOffset

建议的数据的起始偏移量。

mStartOffsetPresent

bool mStartOffsetPresent

如果存在起始偏移量字段,则返回 true。

mVersion

uint8_t mVersion

我们决定使用的 BDX 协议版本。

mWideRange

bool mWideRange

如果偏移量和长度为 64 位,则为 True。

公共函数

SendInit

 SendInit(
  void
)

init

WEAVE_ERROR init(
  uint8_t aVersion,
  bool aSenderDrive,
  bool aReceiverDrive,
  bool aAsynchMode,
  uint16_t aMaxBlockSize,
  uint64_t aStartOffset,
  uint64_t aLength,
  ReferencedString & aFileDesignator,
  ReferencedTLVData *aMetaData
)

初始化“wide”SendInit.

详细信息
参数
[in] aVersion
我们使用的 BDX 版本
[in] aSenderDrive
如果发送者正在驾车,则为 true
[in] aReceiverDrive
如果接收方正在驾车,则为 true
[in] aAsynchMode
如果设备支持异步模式,则为 true
[in] aMaxBlockSize
关于此转移作业最大块大小的建议
[in] aStartOffset
文件中的起始偏移量,该偏移量应从此处开始
[in] aLength
要传输的文件的长度 - 0 表示其长度不受限制
[in] aFileDesignator
用于标识要传输的数据的字符串
[in] aMetaData
(可选)TLV 格式的其他数据
返回值
WEAVE_NO_ERROR(如果成功)

init

WEAVE_ERROR init(
  uint8_t aVersion,
  bool aSenderDrive,
  bool aReceiverDrive,
  bool aAsynchMode,
  uint16_t aMaxBlockSize,
  uint32_t aStartOffset,
  uint32_t aLength,
  ReferencedString & aFileDesignator,
  ReferencedTLVData *aMetaData
)

初始化“非宽带”SendInit(32 位开始偏移,32 位长度)

详细信息
参数
[in] aVersion
我们使用的 BDX 版本
[in] aSenderDrive
如果发送者正在驾车,则为 true
[in] aReceiverDrive
如果接收方正在驾车,则为 true
[in] aAsynchMode
如果设备支持异步模式,则为 true
[in] aMaxBlockSize
关于此转移作业最大块大小的建议
[in] aStartOffset
文件中的起始偏移量,该偏移量应从此处开始
[in] aLength
要传输的文件的长度 - 0 表示其长度不受限制
[in] aFileDesignator
用于标识要传输的数据的字符串
[in] aMetaData
(可选)TLV 格式的其他数据
返回值
WEAVE_NO_ERROR(如果成功)

init

WEAVE_ERROR init(
  uint8_t aVersion,
  bool aSenderDrive,
  bool aReceiverDrive,
  bool aAsynchMode,
  uint16_t aMaxBlockSize,
  uint64_t aStartOffset,
  uint64_t aLength,
  ReferencedString & aFileDesignator,
  MetaDataTLVWriteCallback aMetaDataWriteCallback,
  void *aMetaDataAppState
)

初始化“wide”SendInit.

详细信息
参数
[in] aVersion
我们使用的 BDX 版本
[in] aSenderDrive
如果发送者正在驾车,则为 true
[in] aReceiverDrive
如果接收方正在驾车,则为 true
[in] aAsynchMode
如果设备支持异步模式,则为 true
[in] aMaxBlockSize
关于此转移作业最大块大小的建议
[in] aStartOffset
文件中的起始偏移量,该偏移量应从此处开始
[in] aLength
要传输的文件的长度 - 0 表示其长度不受限制
[in] aFileDesignator
用于标识要传输的数据的字符串
[in] aMetaDataWriteCallback
(可选)以 TLV 格式写出额外数据的函数
[in] aMetaDataAppState
要传递给 aMetaDataWriteCallback 的可选上下文
返回值
WEAVE_NO_ERROR(如果成功)

init

WEAVE_ERROR init(
  uint8_t aVersion,
  bool aSenderDrive,
  bool aReceiverDrive,
  bool aAsynchMode,
  uint16_t aMaxBlockSize,
  uint32_t aStartOffset,
  uint32_t aLength,
  ReferencedString & aFileDesignator,
  MetaDataTLVWriteCallback aMetaDataWriteCallback,
  void *aMetaDataAppState
)

初始化“非宽带”SendInit(32 位开始偏移,32 位长度)

详细信息
参数
[in] aVersion
我们使用的 BDX 版本
[in] aSenderDrive
如果发送者正在驾车,则为 true
[in] aReceiverDrive
如果接收方正在驾车,则为 true
[in] aAsynchMode
如果设备支持异步模式,则为 true
[in] aMaxBlockSize
关于此转移作业最大块大小的建议
[in] aStartOffset
文件中的起始偏移量,该偏移量应从此处开始
[in] aLength
要传输的文件的长度 - 0 表示其长度不受限制
[in] aFileDesignator
用于标识要传输的数据的字符串
[in] aMetaDataWriteCallback
(可选)以 TLV 格式写出额外数据的函数
[in] aMetaDataAppState
(可选)要传回到回调函数的上下文
返回值
WEAVE_NO_ERROR(如果成功)

运算符==

bool operator==(
  const SendInit &
) const 

SendInit 消息之间的相等性比较。

详细信息
参数
[in] another
用于与此消息进行比较的另一个 SendInit 消息
返回值
当它们都具有相同字段时,返回 true。

WEAVE_ERROR pack(
  PacketBuffer *aBuffer
)

将发送初始化消息封装到 PacketBuffer 中。

详细信息
参数
[out] aBuffer
用于打包 SendInit 消息的 PacketBuffer
返回值
WEAVE_NO_ERROR
如果成功
WEAVE_ERROR_BUFFER_TOO_SMALL
如果缓冲区过小

packedLength

uint16_t packedLength(
  void
)

返回此发送初始化消息的打包长度。

详细信息
返回值
邮件压缩后的长度

公共静态函数

parse

WEAVE_ERROR parse(
  PacketBuffer *aBuffer,
  SendInit & aRequest
)

将 PacketBuffer 中的数据解析为 SendInit 消息格式。

详细信息
参数
[in] aBuffer
指向 PacketBuffer 的指针,其中包含我们要解析的数据
[out] aRequest
指向 SendInit 对象的指针,用于保存结果
返回值
WEAVE_NO_ERROR
如果成功
WEAVE_ERROR_BUFFER_TOO_SMALL
如果缓冲区过小