nl::Weave::Profiles::DataManagement_Current::UpdateEncoder

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

이 객체는 WDM UpdateRequest 및 PartialUpdateRequest 페이로드를 인코딩합니다.

요약

두 요청은 형식이 동일합니다. 메시지 유형은 이 객체의 범위를 벗어납니다.

인코딩은 EncodeRequest 메서드에 의해 동기식으로 실행됩니다. 다른 유일한 공개 메서드는 InsertInProgressUpdateItem입니다. 이 메서드는 사전을 큐로 다시 푸시해야 할 때 SchemaEngine에 의해 호출됩니다.

생성자 및 소멸자

UpdateEncoder()
~UpdateEncoder()

공개 함수

EncodeRequest(Context & aContext)
WDM 업데이트 요청 페이로드를 인코딩합니다.
InsertInProgressUpdateItem(const TraitPath & aItem)
진행 중인 경로 목록에 비공개 경로를 추가하고 현재 인코딩 중인 경로 뒤에 삽입합니다.

구조체

nl::Weave::Profiles::DataManagement_Current::UpdateEncoder::Context

이 구조는 EncodeRequest 메서드에 대한 I/O 인수를 보유합니다.

공개 함수

EncodeRequest

WEAVE_ERROR EncodeRequest(
  Context & aContext
)

WDM 업데이트 요청 페이로드를 인코딩합니다.

UpdateEncoder::Context를 참고하세요. PacketBuffer의 데이터 길이는 성공한 경우에만 업데이트되지만 버퍼 콘텐츠는 보존되지 않습니다.

세부정보
반환 값
WEAVE_NO_ERROR
하나 이상의 DataElement가 페이로드의 DataList에 인코딩되었습니다.
WEAVE_ERROR_BUFFER_TOO_SMALL
첫 번째 DataElement가 페이로드에 맞지 않습니다.
WEAVE_ERROR_INVALID_ARGUMENT
aContext가 잘못된 값으로 초기화되었습니다.
other
하위 수준 객체 (TLVWriter, SchemaEngine 등)의 기타 오류

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

진행 중인 경로 목록에 비공개 경로를 추가하고 현재 인코딩 중인 경로 다음에 삽입합니다.

이 메서드는 스키마 트리를 순회하며 사전을 목록으로 다시 푸시해야 하므로 SchemaEngine에서 호출합니다.

세부정보
매개변수
[in] aItem
인코딩 중인 목록에 삽입할 TraitPath입니다.
반환 값
WEAVE_NO_ERROR
항목이 삽입되었습니다.
WEAVE_NO_MEMORY
TraitPathStore에 항목을 삽입할 공간이 없습니다.

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()