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

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

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

Resumo

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

Funções públicas

Checkpoint(TLV::TLVWriter & aPoint)
Checkpoint do estado da solicitação em um TLVWriter.
EndDataList()
Encerre a construção da matriz da lista de dados.
EndEventList()
Encerre a construção da lista de eventos.
EndNotifyRequest()
Encerre a construçã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)
Reverter o estado da solicitação no 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()
Iniciar 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ística, escreva o elemento de dados associado a esse caminho.

Funções públicas

Check Point

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

Checkpoint do estado da solicitação em um TLVWriter.

Detalhes
Parâmetros
[out] aPoint
Um gravador para verificar o estado do gravador TLV.
Valores de retorno
WEAVE_NO_ERROR
Se der certo.

EndDataList

WEAVE_ERROR EndDataList()

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

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se der certo.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no contêiner DataList.
other
Não foi possível criar o fim da lista de dados.

EndEventList

WEAVE_ERROR EndEventList()

Encerre a construção da lista de eventos.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se der certo.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no contêiner EventList
other
Não foi possível criar o fim da lista de dados.

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

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

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se der certo.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no contêiner Notificar.
other
Não foi possível definir o fim da notificação.

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

Init

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

Inicializa o builder.

Deve ser chamado apenas uma vez.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se der certo.
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 criador de solicitações de notificação que queremos alcançar) e transfere a solicitação para esse estado. Se o estado desejado for o mesmo que o atual, a função não fará nada. Caso contrário, um PackageBuffer é alocado (se necessário). A função primeiro 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 Notificar abrindo o contêiner de dados TLV apropriado ou fechando a solicitação abrangente.

Detalhes
Parâmetros
aDesiredState
O estado desejado para o qual a solicitação deve passar
Valores de retorno
WEAVE_NO_ERROR
Se der certo.
WEAVE_ERROR_NO_MEMORY
Não foi possível fazer a transição para o estado por causa de 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 no design, e não um problema de tempo de execução.

Reverter

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

Reverter o estado da solicitação no TLVWriter com checkpoint.

Detalhes
Parâmetros
[in] aPoint
Um escritor capturou o estado em algum momento no passado
Valores de retorno
WEAVE_NO_ERROR
Se der certo.

StartDataList

WEAVE_ERROR StartDataList(
  void
)

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

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se der certo.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no contêiner "Notificar".
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 der certo.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no contêiner "Notificar".
other
Não foi possível criar o início da lista de dados.

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

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

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se der certo.
WEAVE_ERROR_INCORRECT_STATE
Se a solicitação não estiver no nível superior do buffer.
other
Não foi possível definir o fim da 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ística, escreva o elemento de dados associado a esse caminho.

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

Detalhes
Valores de retorno
WEAVE_NO_ERROR
Se der certo.
other
Não foi possível recuperar e gravar o elemento de dados.