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

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

Esse objeto codifica payloads UpdateRequest e PartialUpdateRequest do WDM.

Resumo

As duas solicitações têm o mesmo formato. Elas são diferenciadas apenas pelo tipo de mensagem, que está fora do escopo deste objeto.

A codificação é feita de forma síncrona pelo método EncodeRequest. O único outro método público é InsertInProgressUpdateItem, que é chamado pelo SchemaEngine quando precisa enviar um dicionário de volta para a fila.

Construtores e destrutores

UpdateEncoder()
~UpdateEncoder()

Funções públicas

EncodeRequest(Context & aContext)
Codifique um payload de solicitação de atualização do WDM.
InsertInProgressUpdateItem(const TraitPath & aItem)
Adicione um caminho privado na lista de caminhos em andamento, inserindo-o depois daquele que está sendo codificado no momento.

Estruturas

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

Essa estrutura contém os argumentos de E/S para o método EncodeRequest.

Funções públicas

EncodeRequest

WEAVE_ERROR EncodeRequest(
  Context & aContext
)

Codifique um payload de solicitação de atualização do WDM.

Consulte UpdateEncoder::Context. O comprimento de dados do PackageBuffer é atualizado somente em caso de sucesso, mas o conteúdo do buffer não é preservado.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Pelo menos um DataElement foi codificado na DataList do payload.
WEAVE_ERROR_BUFFER_TOO_SMALL
O primeiro DataElement não cabe no payload.
WEAVE_ERROR_INVALID_ARGUMENT
O aContext foi inicializado com valores inválidos.
other
Outros erros de objetos de nível inferior (TLVWriter, SchemaEngine etc.).

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

Adicione um caminho privado na lista de caminhos em andamento, inserindo-o depois daquele que está sendo codificado no momento.

Esse método deve ser chamado pelo SchemaEngine ao atravessar a árvore do esquema e precisa enviar os dicionários de volta para a lista.

Detalhes
Parâmetros
[in] aItem
O TraitPath a ser inserido na lista que está sendo codificada.
Valores de retorno
WEAVE_NO_ERROR
O item foi inserido com sucesso.
WEAVE_NO_MEMORY
Não há espaço no TraitPathStore para inserir o item.

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()