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{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
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
)