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
페이로드의 DataList에서 하나 이상의 DataElement가 인코딩되었습니다.
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()