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

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

Isso fornece uma classe auxiliar para compor notificações e abstrair a construção e estrutura da mensagem dos consumidores.

Resumo

Esta é uma versão mais compacta de uma classe semelhante fornecida em MessageDef.cpp, que busca ser sensível às necessidades de flash e RAM do dispositivo.

Funções públicas

Checkpoint(TLV::TLVWriter & aPoint)
Verificar o estado da solicitação em um TLVWriter.
EndDataList()
Encerre a construção da matriz da lista de dados.
EndEventList()
Terminar a construção da lista de eventos.
EndNotifyRequest()
Terminar a criação da notificação.
GetWriter(void)
Init(PacketBuffer *aBuf, TLV::TLVWriter *aWriter, SubscriptionHandler *aSubHandler, uint32_t aMaxPayloadSize)
Inicializa o builder.
MoveToState(NotifyRequestBuilderState aDesiredState)
A principal função de transição de estado.
Rollback(TLV::TLVWriter & aPoint)
Reverta o estado da solicitação para o TLVWriter com checkpoint.
StartDataList(void)
Inicia a construção da matriz da lista de dados.
StartEventList()
Inicia a construção da lista de eventos.
StartNotifyRequest()
Inicie a construção da notificação.
WriteDataElement(TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyPathHandle, SchemaVersion aSchemaVersion, PropertyPathHandle *aMergeDataHandleSet, uint32_t aNumMergeDataHandles, PropertyPathHandle *aDeleteHandleSet, uint32_t aNumDeleteHandles)
Dado um caminho de características, grave o elemento de dados associado a esse caminho.

Funções públicas

Check Point

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

Verificar o estado da solicitação em um TLVWriter.

Detalhes
Parâmetros
[out] aPoint
Um gravador para fazer o checkpoint do estado do gravador no TLV.
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.

EndDataList

WEAVE_ERROR EndDataList()

Encerre a construção da matriz da lista de dados.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no contêiner DataList.
other
Não foi possível definir o fim da lista de dados.

EndEventList

WEAVE_ERROR EndEventList()

Terminar a construção da lista de eventos.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no contêiner EventList.
other
Não foi possível definir o fim da lista de dados.

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

Terminar a criação da notificação.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no contêiner Notificar.
other
Não foi possível concluir a notificação.

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

Init

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

Inicializa o builder.

Só deve ser chamado uma vez.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
other
Não foi possível inicializar o builder.

MoveToState

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

A principal função de transição de estado.

A função usa o estado desejado (ou seja, a fase do builder de solicitações de notificação que gostaríamos de alcançar) e faz a transição da solicitação para esse estado. Se o estado desejado for o mesmo que o atual, a função não terá efeito. Caso contrário, um PackageBuffer é alocado (se necessário); a função faz a transição da solicitação para a solicitação de notificação de nível superior (abrindo a estrutura TLV da solicitação de notificação ou fechando o contêiner de dados TLV atual, conforme necessário) e, em seguida, transfere a solicitação de notificação abrindo o contêiner de dados TLV apropriado ou fechando a solicitação Notify abrangente.

Detalhes
Parâmetros
aDesiredState
O estado desejado para o qual a solicitação deve passar
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
WEAVE_ERROR_NO_MEMORY
Não foi possível fazer a transição para o estado devido à memória insuficiente.
WEAVE_ERROR_INCORRECT_STATE
Corrupção da máquina de estado interno.
other
Quando a máquina de estado não consegue registrar o estado no buffer, isso provavelmente indica uma falha de projeto, e não um problema de tempo de execução.

Reversão

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

Reverta o estado da solicitação para o TLVWriter com checkpoint.

Detalhes
Parâmetros
[in] aPoint
Um escritor que capturou o estado em algum momento no passado
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.

StartDataList

WEAVE_ERROR StartDataList(
  void
)

Inicia a construção da matriz da lista de dados.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no contêiner de notificações.
other
Não foi possível criar o início da lista de dados.

StartEventList

WEAVE_ERROR StartEventList()

Inicia a construção da lista de eventos.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no contêiner de notificações.
other
Não foi possível criar o início da lista de dados.

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

Inicie a construção da notificação.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no nível superior do buffer.
other
Não foi possível concluir a notificação.

WriteDataElement

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

Dado um caminho de características, grave o elemento de dados associado a esse caminho.

O autor da chamada também pode transmitir um conjunto de identificadores para aproveitar a operação de mesclagem com um conjunto mais restrito de nós filhos imediatos do identificador do caminho da propriedade mãe.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
other
Não foi possível recuperar e gravar o elemento de dados.