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
返回此发送 init 消息的打包长度。

公共静态函数

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
)

返回此发送 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
如果缓冲区过小