Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

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 {
kCommandFlag_MustBeVersionValid = 0x0001,
kCommandFlag_InitiationTimeValid = 0x0002,
kCommandFlag_ActionTimeValid = 0x0004,
kCommandFlag_ExpiryTimeValid = 0x0008,
kCommandFlag_IsOneWay = 0x0010
}
열거 형
명령 플래그 비트.
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

명령 플래그 비트.

속성
kCommandFlag_ActionTimeValid

동작 시간이 유효 할 때 설정합니다.

kCommandFlag_ExpiryTimeValid

만료 시간이 유효 할 때 설정합니다.

kCommandFlag_InitiationTimeValid

초기화 시간이 유효 할 때 설정합니다.

kCommandFlag_IsOneWay

명령이 단방향 일 때 설정됩니다.

kCommandFlag_MustBeVersionValid

버전 필드가 유효 할 때 설정합니다.

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
)