nl:: Weave:: Profiles:: DataManagement_Current:: Command
#include <src/lib/profiles/data-management/Current/Command.h>
摘要
注意:這個類別的用途是在指令處理時隱藏特定詳細資料。其決策是隱藏 ExchangeContext 和驗證器驗證的詳細資料,同時將 PacketBuffers 的處理留在應用程式層。 此包裝函式處理命令處理的實用性確實有限,主要是因為資安驗證和資料序列化/去序列化涉及的複雜性/彈性。
指令驗證的詳細資料仍待定
如要調整「進行中」、「狀態報告」和「回應」訊息的重新傳輸時間,應用程式層必須處理 ExchangeContext 物件。最佳做法仍是待定,但應用程式層有以下三個選擇:
1) 透過 GetExchangeContext 取得 Exchange 情境,並直接評估/調整。2) 在啟動期間預先分配及設定繫結 (在指令送達前),並在指令送達前正確設定 3) 使用這個函式 BindingPool::NewResponseerBindingFromExchangeContext 建立臨時 Binding
在 (2) 和 (3) 中,應用程式層可以透過 Binding::ConfigureExistingExchangeContext 強制執行安全性/時間設定。Binding 不會用於產生自訂指令的新交換結構定義,因此無需儲存在此控制代碼內。
要求封包緩衝區也不會儲存在這個控點中,因為沒有明顯的使用。如果應用程式層可以處理這個指令並直接傳送回應,這一點尤其重要。
應用程式層會從接收此指令控制的回呼中,接收封包緩衝區。如果 考慮以非同步方式處理這個指令,就必須同時儲存指令控制代碼和封包緩衝區。
公開類型 |
|
---|---|
CommandFlags{
|
列舉 Command 標記位元。 |
CommandFlags
|
typedef Command 標記位元。 |
公開屬性 |
|
---|---|
actionTimeMicroSecond
|
int64_t
|
commandType
|
uint64_t
|
expiryTimeMicroSecond
|
int64_t
|
initiationTimeMicroSecond
|
int64_t
|
mustBeVersion
|
uint64_t
|
公開函式 |
|
---|---|
Close(void)
|
void
|
GetExchangeContext(void) const
|
擷取這個傳入指令使用的交換結構定義物件。
|
IsActionTimeValid(void) const
|
bool
|
IsExpiryTimeValid(void) const
|
bool
|
IsInitiationTimeValid(void) const
|
bool
|
IsMustBeVersionValid(void) const
|
bool
|
IsOneWay(void) const
|
bool
|
SendError(uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError)
|
|
SendInProgress(void)
|
|
SendResponse(uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload)
|
|
ValidateAuthenticator(nl::Weave::System::PacketBuffer *aRequestBuffer)
|
公開類型
CommandFlags
CommandFlags
Command 標記位元。
屬性 | |
---|---|
kCommandFlag_ActionTimeValid
|
設定動作時間有效時。 |
kCommandFlag_ExpiryTimeValid
|
設定到期時間。 |
kCommandFlag_InitiationTimeValid
|
設定啟動時間有效時間。 |
kCommandFlag_IsOneWay
|
在指令為單向時設定。 |
kCommandFlag_MustBeVersionValid
|
在版本欄位有效時設定。 |
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
Command 標記位元。
公開屬性
actionTimeMicroSecond
int64_t actionTimeMicroSecond
commandType
uint64_t commandType
expiryTimeMicroSecond
int64_t expiryTimeMicroSecond
initiationTimeMicroSecond
int64_t initiationTimeMicroSecond
mustBeVersion
uint64_t mustBeVersion
公開函式
關閉
void Close( void )
GetExchangeContext
nl::Weave::ExchangeContext * GetExchangeContext( void ) const
擷取這個傳入指令使用的交換結構定義物件。
詳細資料 | |
---|---|
傳回 |
指向這個傳入指令使用的交換結構定義物件指標
|
IsActionTimeValid
bool IsActionTimeValid( void ) const
IsExpiryTimeValid
bool IsExpiryTimeValid( void ) const
IsInitiationTimeValid
bool IsInitiationTimeValid( void ) const
IsMustBeVersionValid
bool IsMustBeVersionValid( void ) const
IsOneWay
bool IsOneWay( void ) const
SendError
WEAVE_ERROR SendError( uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError )
SendInProgress
WEAVE_ERROR SendInProgress( void )
SendResponse
WEAVE_ERROR SendResponse( uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload )
ValidateAuthenticator
WEAVE_ERROR ValidateAuthenticator( nl::Weave::System::PacketBuffer *aRequestBuffer )