nl::Weave::Profiles::DataManagement_Current::NotificationEngine::NotifyRequestBuilder

#include <src/lib/profiles/data-management/Current/NotificationEngine.h>

이를 통해 알림을 작성하고 소비자로부터 메시지의 구성과 구조를 추상화하는 도우미 클래스를 제공합니다.

요약

이는 MessageDef.cpp에 제공된 유사한 클래스의 좀 더 간단한 버전으로, 기기의 플래시 및 RAM 요구사항에 민감합니다.

공개 함수

Checkpoint(TLV::TLVWriter & aPoint)
요청 상태를 TLVWriter에 체크포인트합니다.
EndDataList()
데이터 목록 배열의 생성을 종료합니다.
EndEventList()
이벤트 목록 생성을 종료합니다.
EndNotifyRequest()
알림 생성을 종료합니다.
GetWriter(void)
Init(PacketBuffer *aBuf, TLV::TLVWriter *aWriter, SubscriptionHandler *aSubHandler, uint32_t aMaxPayloadSize)
빌더를 초기화합니다.
MoveToState(NotifyRequestBuilderState aDesiredState)
기본 상태 전환 함수
Rollback(TLV::TLVWriter & aPoint)
요청 상태를 체크포인트가 적용된 TLVWriter로 롤백합니다.
StartDataList(void)
데이터 목록 배열의 생성을 시작합니다.
StartEventList()
이벤트 목록의 생성을 시작합니다.
StartNotifyRequest()
알림 생성을 시작합니다.
WriteDataElement(TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyPathHandle, SchemaVersion aSchemaVersion, PropertyPathHandle *aMergeDataHandleSet, uint32_t aNumMergeDataHandles, PropertyPathHandle *aDeleteHandleSet, uint32_t aNumDeleteHandles)
특성 경로가 주어지면 해당 경로와 연결된 데이터 요소를 작성합니다.

공개 함수

검문소

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

요청 상태를 TLVWriter에 체크포인트합니다.

세부정보
매개변수
[out] aPoint
TLV 작성기의 상태를 체크포인트를 수행하는 작성자입니다.
반환 값
WEAVE_NO_ERROR
성공 시

EndDataList

WEAVE_ERROR EndDataList()

데이터 목록 배열의 생성을 종료합니다.

세부정보
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INCORRECT_STATE
요청이 DataList 컨테이너에 없는 경우
other
데이터 목록의 끝을 구성할 수 없습니다.

EndEventList

WEAVE_ERROR EndEventList()

이벤트 목록 생성을 종료합니다.

세부정보
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INCORRECT_STATE
요청이 EventList 컨테이너에 없는 경우
other
데이터 목록의 끝을 구성할 수 없습니다.

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

알림 생성을 종료합니다.

세부정보
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INCORRECT_STATE
요청이 알림 컨테이너에 없는 경우
other
알림의 끝을 구성할 수 없습니다.

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

Init

WEAVE_ERROR Init(
  PacketBuffer *aBuf,
  TLV::TLVWriter *aWriter,
  SubscriptionHandler *aSubHandler,
  uint32_t aMaxPayloadSize
)

빌더를 초기화합니다.

한 번만 호출해야 합니다.

세부정보
반환 값
WEAVE_NO_ERROR
성공 시
other
빌더를 초기화할 수 없습니다.

MoveToState

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

기본 상태 전환 함수

함수는 원하는 상태 (즉, 도달하려는 알림 요청 빌더의 단계)를 취하고 요청을 해당 상태로 전환합니다. 원하는 상태가 현재 상태와 같은 경우 함수는 아무 작업도 하지 않습니다. 그러지 않으면 PacketBuffer가 할당됩니다 (필요한 경우). 함수는 먼저 요청을 최상위 알림 요청으로 전환 (필요에 따라 알림 요청 TLV 구조를 열거나 현재 TLV 데이터 컨테이너를 닫음)한 다음 적절한 TLV 데이터 컨테이너를 열거나 중요한 알림 요청을 닫는 방법으로 Notify 요청을 전환합니다.

세부정보
매개변수
aDesiredState
요청이 전환되어야 하는 원하는 상태
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_NO_MEMORY
메모리가 부족하여 상태로 전환할 수 없습니다.
WEAVE_ERROR_INCORRECT_STATE
내부 상태 머신이 손상되었습니다.
other
상태 시스템이 버퍼에 상태를 기록할 수 없는 경우 런타임 문제가 아닌 설계 결함을 나타낼 가능성이 높습니다.

롤백

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

요청 상태를 체크포인트가 적용된 TLVWriter로 롤백합니다.

세부정보
매개변수
[in] aPoint
과거의 어느 시점에 주를 캡처한 작가
반환 값
WEAVE_NO_ERROR
성공 시

StartDataList

WEAVE_ERROR StartDataList(
  void
)

데이터 목록 배열의 생성을 시작합니다.

세부정보
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INCORRECT_STATE
요청이 알림 컨테이너에 없는 경우
other
데이터 목록의 시작 부분을 구성할 수 없습니다.

StartEventList

WEAVE_ERROR StartEventList()

이벤트 목록의 생성을 시작합니다.

세부정보
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INCORRECT_STATE
요청이 알림 컨테이너에 없는 경우
other
데이터 목록의 시작 부분을 구성할 수 없습니다.

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

알림 생성을 시작합니다.

세부정보
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_INCORRECT_STATE
요청이 버퍼의 최상위 수준에 없는 경우
other
알림의 끝을 구성할 수 없습니다.

WriteDataElement

WEAVE_ERROR WriteDataElement(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aPropertyPathHandle,
  SchemaVersion aSchemaVersion,
  PropertyPathHandle *aMergeDataHandleSet,
  uint32_t aNumMergeDataHandles,
  PropertyPathHandle *aDeleteHandleSet,
  uint32_t aNumDeleteHandles
)

특성 경로가 주어지면 해당 경로와 연결된 데이터 요소를 작성합니다.

호출자는 선택적으로 핸들 집합을 전달할 수 있으므로 상위 속성 경로 핸들의 직계 하위 노드 집합의 범위가 좁은 병합 작업을 활용할 수 있습니다.

세부정보
반환 값
WEAVE_NO_ERROR
성공 시
other
데이터 요소를 검색하고 쓸 수 없습니다.