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
如果存在起始偏移欄位,則傳回「是」。
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)
將傳送初始化訊息封裝到 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

如果存在起始偏移欄位,則傳回「是」。

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
)

初始化「寬」的 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
要傳遞至 MetaDataWriteCallback 的選用結構定義
傳回
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
一個 PacketBuffer,用於將 SendInit 訊息封裝
傳回值
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
如果緩衝區太小