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