nl :: 짜다:: 프로필 :: DataManagement_Current :: 명령
#include <src/lib/profiles/data-management/Current/Command.h>
요약
참고 :이 클래스는 명령 처리의 특정 세부 사항을 숨길 수 있도록 설계되었습니다. 의사 결정의 세부 사항 숨기기 위해 만들어졌다 ExchangeContext 응용 프로그램 계층에 PacketBuffers의 처리를 남기면서, 및 인증 유효성 검사를. 명령 처리에 대한이 래퍼의 유용성은 주로 보안 유효성 검사 및 데이터 직렬화 / 직렬화 해제와 관련된 복잡성 / 유연성으로 인해 제한적입니다.
명령 유효성 검사에 대한 세부 정보는 아직 미정입니다.
하여 진행중인 대한 재전송 타이밍, 상태 보고서, 또한 응답 메시지를 조정하려면 응용 프로그램 계층은 어떻게 든 처리해야 ExchangeContext의 객체입니다. 모범 사례는 여전히 미정이지만 애플리케이션 계층에는 다음 세 가지 선택 사항이 있습니다.
1)를 통해 Exchange 컨텍스트 획득 GetExchangeContext을 하고 직접 조정 / 평가합니다. 2) 사전은-할당 및 구성 바인딩 모든 명령이 도착하기 전에, 부팅하는 동안, 그리고 구성이 제대로 3) 임시 만들기 바인딩 이 기능 BindingPool :: NewResponderBindingFromExchangeContext를 사용하여
(2)와 (3) 모두에서 응용 프로그램 계층은 Binding :: ConfigureExistingExchangeContext를 통해 보안 / 타이밍 설정을 적용 할 수 있습니다. 바인딩 은이 핸들에 저장 될 필요가 없도록, 사용자 정의 명령에 대한 새로운 교환 컨텍스트를 생성하는 데 사용되지 않습니다.
요청 패킷 버퍼도이 핸들 내에 저장되지 않습니다. 그 이유는 분명한 용도가 없기 때문입니다. 특히 애플리케이션 계층이이 명령을 처리하고 직접 응답을 보낼 수있는 경우에 그렇습니다.
애플리케이션 계층은이 명령 핸들을 수신하는 것과 동일한 콜백에서 패킷 버퍼를 수신합니다. 이 명령을 비동기 방식으로 처리하기로 결정하면 명령 핸들과 패킷 버퍼를 모두 저장해야합니다.
공개 유형 | |
---|---|
CommandFlags { | 열거 형 명령 플래그 비트. |
CommandFlags | typedef 명령 플래그 비트. |
공용 속성 | |
---|---|
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
명령 플래그 비트.
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
명령 플래그 비트.
공용 속성
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 )