nl:: Weave:: Profiles:: DataManagement_Current:: Command
#include <src/lib/profiles/data-management/Current/Command.h>
摘要
注意:此类旨在隐藏命令处理中的某个细节。已决定隐藏 ExchangeContext 和身份验证器验证的详细信息,同时将处理 PacketBuffers 交由应用层处理。 这个封装命令的效用确实有限,这主要是因为安全验证和数据序列化/反序列化所涉及的复杂性/灵活性。
命令验证的详细信息仍处于待定状态
要调整“进行中”、“状态报告”和“响应”消息的重新传输时间,应用层需要以某种方式处理 ExchangeContext 对象。最佳实践仍然待定,但应用层有以下三个选项:
1) 通过 GetExchangeContext 获取 Exchange 上下文,然后直接对其进行评估/调整。2) 在启动过程中,在发出任何命令之前预先分配和配置 Binding,并进行正确配置 3) 使用此函数 BindingPool::NewResponderBindingFromExchangeContext 创建临时 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
|
检索此传入命令使用的 Exchange 上下文对象。
|
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
检索此传入命令使用的 Exchange 上下文对象。
详细信息 | |
---|---|
返回值 |
指向此传入命令使用的 Exchange 上下文对象的指针
|
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 )