NL::编织::简介:: DataManagement_Current::命令
#include <src/lib/profiles/data-management/Current/Command.h>
概括
注:该课程旨在隐藏命令处理某个细节。已经作出决定要隐藏的细节ExchangeContext和认证验证,同时使PacketBuffers的处理到应用层。这个围绕命令处理的包装器的效用确实有限,主要是由于安全验证和数据序列化/反序列化所涉及的复杂性/灵活性。
命令验证的细节仍待定
要调整正在进行中的重发时间,状态报告,并响应消息,在应用层会以某种方式与处理ExchangeContext对象。最佳实践还是TBD,但是应用层有这三个选择:
1)获取通过Exchange语境GetExchangeContext和直接评估/调整。 2)预分配和配置绑定引导期间,任何命令到达前,并配置得当3)创建一个临时绑定使用此功能BindingPool :: NewResponderBindingFromExchangeContext
在 (2) 和 (3) 中,应用层可以通过 Binding::ConfigureExistingExchangeContext 强制执行安全/时间设置。该绑定从不用于生成自定义命令新的交流环境,所以它并没有被存储在该手柄内。
请求数据包缓冲区也不存储在这个句柄中,因为没有明显的用途。如果应用层可以处理此命令并直接发送响应,则尤其如此。
应用层将从接收此命令句柄的同一个回调中接收数据包缓冲区。如果它决定以异步方式处理此命令,则必须同时存储命令句柄和数据包缓冲区。
公共类型 | |
---|---|
CommandFlags { | 枚举 该命令标志位。 |
CommandFlags | 类型定义 该命令标志位。 |
公共属性 | |
---|---|
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
该命令标志位。
公共属性
动作时间微秒
int64_t actionTimeMicroSecond
命令类型
uint64_t commandType
到期时间微秒
int64_t expiryTimeMicroSecond
启动时间微秒
int64_t initiationTimeMicroSecond
必须版本
uint64_t mustBeVersion
公共职能
关闭
void Close( void )
获取交换上下文
nl::Weave::ExchangeContext * GetExchangeContext( void ) const
检索此传入命令使用的交换上下文对象。
细节 | |
---|---|
退货 | 指向此传入命令使用的交换上下文对象的指针 |
动作时间有效
bool IsActionTimeValid( void ) const
IsExpiryTimeValid
bool IsExpiryTimeValid( void ) const
IsInitiationTimeValid
bool IsInitiationTimeValid( void ) const
IsMustBeVersionValid
bool IsMustBeVersionValid( void ) const
一种方式
bool IsOneWay( void ) const
发送错误
WEAVE_ERROR SendError( uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError )
发送进度
WEAVE_ERROR SendInProgress( void )
发送响应
WEAVE_ERROR SendResponse( uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload )
验证身份验证器
WEAVE_ERROR ValidateAuthenticator( nl::Weave::System::PacketBuffer *aRequestBuffer )