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)
初始化一个“宽”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)
初始化一个“宽”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)
将发送 init 消息封装到 PacketBuffer 中。
packedLength(void)
uint16_t
返回此发送 init 消息的打包长度。

公共静态函数

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

公共类型

元数据 TLV 写入回调

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
遇到任何错误。

公共属性

mAsyncModeSupported

bool mAsynchronousModeSupported

如果我们可以支持异步模式,则为 true。

mDefiniteLength

bool mDefiniteLength

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

mFileDesignator

ReferencedString mFileDesignator

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

米长度

uint64_t mLength

建议转移的数据长度,0 表示无限期。

mMaxBlockSize

uint16_t mMaxBlockSize

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

移动元数据

ReferencedTLVData mMetaData

(可选)TLV 元数据。

mMetaDataAppState

void * mMetaDataAppState

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

mMetaDataWriteCallback

MetaDataTLVWriteCallback mMetaDataWriteCallback

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

支持 mReceiverDrive

bool mReceiverDriveSupported

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

支持 mSenderDrive

bool mSenderDriveSupported

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

mStartOffset

uint64_t mStartOffset

建议的数据起始偏移量。

mStartOffsetPresent

bool mStartOffsetPresent

如果存在起始偏移字段,则为 true。

移动版本

uint8_t mVersion

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

mWideRange

bool mWideRange

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

公共函数

发送

 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
)

初始化一个“宽”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
)

初始化一个“宽”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
)

将发送 init 消息封装到 PacketBuffer 中。

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

包装长度

uint16_t packedLength(
  void
)

返回此发送 init 消息的打包长度。

详细信息
返回值
邮件在打包后的长度

公共静态函数

parse

WEAVE_ERROR parse(
  PacketBuffer *aBuffer,
  SendInit & aRequest
)

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

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