nl:: Weave:: 프로필:: DataManagement_Current:: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
요약
참고: 이 클래스는 명령어 전송의 프로토콜 세부정보를 캡슐화하여 애플리케이션과 관련된 메커니즘을 단순화합니다. 애플리케이션은 명령어의 페이로드와 명령어 헤더의 내용 및 명령어의 동작을 변경하는 선택적 인수 집합을 포함하는 PacketBuffer를 제공합니다. 명령어 처리와 관련된 이 래퍼의 용도는 실제로 보안 유효성 검사와 데이터 직렬화/역직렬화와 관련된 복잡성/유연성으로 인해 제한됩니다.
명령어 유효성 검사에 관한 세부정보는 아직 미정입니다.
또한 이 클래스는 연결된 TraitDataSink 내의 데이터가 명령 응답에 제공된 버전에 따라 쉼표의 부작용을 따라잡았는지 추론하는 데 도움이 됩니다. 애플리케이션은 해당 객체의 스토리지 관리를 담당합니다.
위브 결합
이 클래스의 객체는 명령어를 보내는 데 사용하는 기본 Binding으로 기능하는 Weave Binding으로 초기화할 수 있습니다. 사용자는 SendCommand()의 각 호출에 Binding을 제공하여 기본 Binding을 재정의할 수도 있습니다. 기본 Binding을 제공할 필요는 없지만 CommandSender에 제공되는 모든 결합은 이미 초기화되어 있어야 합니다.
이벤트 콜백
명령어 전송 후에 발생하는 이벤트에 관해 업데이트하려는 사용자는 이 유형의 함수를 정의해야 합니다 (아래 'API 이벤트' 참조). 명령어가 전송된 후 사용자가 어떤 일이 일어나는지 상관하지 않으면 NULL일 수 있습니다.
API 이벤트
명령어를 전송한 후 가능한 결과는 다음과 같습니다.
통신 오류
Command를 구성하거나 전송하는 중에 또는 응답을 기다리는 중에 오류가 발생했습니다. 응답을 기다리는 동안 발생할 수 있는 오류의 예로는 키 오류 또는 예상치 못한 연결 종료가 있습니다. 오류 이유는 EventCallback 핸들러의 InEventParam 인수에 포함됩니다.
진행 중
수신자는 '진행 중' 메시지를 수신하여 명령어를 받았지만 아직 완료하지 않았음을 나타냅니다. 완료되면 수신자가 응답 또는 상태 보고서를 전송합니다. 진행하지 않는 &&39; 메시지를 보낼 필요가 없습니다.
StatusReportReceived
StatusReport를 수신했다는 것은 명령어를 처리하는 데 오류가 발생했음을 의미합니다. StatusReport는 InEventParam을 통해 액세스할 수 있습니다.
응답 수신됨
응답을 수신하면 명령어 수신자가 명령어를 성공적으로 처리했다는 의미입니다. 응답에 페이로드가 포함되어 있거나 포함되지 않을 수 있습니다. 애플리케이션이 패킷 버퍼를 유지하려는 경우 ExchangeContext::AddRef()를 호출하여 참조 횟수를 늘릴 수 있습니다.
공개 유형 |
|
---|---|
EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
|
typedefvoid(*
|
EventType
|
enum |
공개 속성 |
|
---|---|
mAppState = NULL
|
void *
|
mSyncronizedTraitState = NULL
|
공개 정적 함수 |
|
---|---|
DefaultEventHandler(void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
|
void
|
공개 함수 |
|
---|---|
Close(bool aAbortNow)
|
void
|
Init(nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState)
|
|
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType)
|
|
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams)
|
|
SetSynchronizedTraitState(SynchronizedTraitState *aTraitState)
|
void
|
구조체 |
|
---|---|
nl:: |
맞춤 명령어의 수신자가 발신자에게 보낸 데이터입니다. |
nl:: |
EventCallback 함수에서 CommandSender 객체로 다시 반환된 데이터 |
nl:: |
SendCommand()로 전달될 인수를 캡슐화합니다. |
nl:: |
공개 유형
이벤트 콜백
void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
EventType
EventType
공개 속성
mAppState
void * mAppState = NULL
mSyncronizedTraitState
SynchronizedTraitState * mSyncronizedTraitState = NULL
공개 정적 함수
DefaultEventHandler
void DefaultEventHandler( void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
공개 함수
닫기
void Close( bool aAbortNow )
Init
WEAVE_ERROR Init( nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState )
SendCommand
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType )
SendCommand
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams )