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
如果我們可以支援非同步模式,則為「是」。
mDefiniteLength
bool
如有長度欄位,則為「true」。
mFileDesignator
包含預先交涉資訊的字串。
mLength
uint64_t
傳輸中的資料建議長度,0 代表無限期。
mMaxBlockSize
uint16_t
建議用於傳輸的區塊大小上限。
mMetaData
選用的 TLV 中繼資料。
mMetaDataAppState
void *
TLV 中繼資料的選用應用程式狀態。
mMetaDataWriteCallback
用於編寫 TLV 中繼資料的選用函式。
mReceiverDriveSupported
bool
如果我們可以支援接收器硬碟,則為「是」。
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)
將 send init 訊息封裝至 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

如果我們可以支援非同步模式,則為「是」。

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

如果我們可以支援接收器硬碟,則為「是」。

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
)

初始化「寬版」SendInit.

詳細資料
參數
[in] aVersion
我們使用的 BDX 版本
[in] aSenderDrive
如果傳送者正在開車則為 True
[in] aReceiverDrive
如果接收方正在開車,則為「是」
[in] aAsynchMode
如果裝置支援非同步模式,則為「是」
[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
如果接收方正在開車,則為「是」
[in] aAsynchMode
如果裝置支援非同步模式,則為「是」
[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
如果接收方正在開車,則為「是」
[in] aAsynchMode
如果裝置支援非同步模式,則為「是」
[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
如果接收方正在開車,則為「是」
[in] aAsynchMode
如果裝置支援非同步模式,則為「是」
[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
)

將 send init 訊息封裝至 PacketBuffer。

詳細資料
參數
[out] aBuffer
PacketBuffer 用於封裝 SendInit 訊息
傳回值
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
如果緩衝區太小