nl::Weave::Profiles::DataManagement_Current::TraitUpdatableDataSink

Resumo

Herança

Herdado de:
  nl::Weave::Profiles::DataManagement_Current::TraitDataSink
  nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate

Construtores e destrutores

TraitUpdatableDataSink(const TraitSchemaEngine *aEngine)

Funções públicas

ClearUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
Dado um handle de caminho para um nó, um gravador de TLV e booleanos que indicam se o valor é nulo ou não presente, acesse os dados da origem da característica que criará uma notificação.
GetSubscriptionClient() __OVERRIDE
virtual SubscriptionClient *
GetUpdateEncoder() __OVERRIDE
virtual UpdateEncoder *
IsUpdatableDataSink(void) __OVERRIDE
virtual bool
Lock(SubscriptionClient *apSubClient)
void
ReadData(TraitDataHandle aTraitDataHandle, PropertyPathHandle aHandle, uint64_t aTagToWrite, TLV::TLVWriter & aWriter, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom)
SetSubscriptionClient(SubscriptionClient *apSubClient) __OVERRIDE
virtual WEAVE_ERROR
SetUpdateEncoder(UpdateEncoder *apEncoder) __OVERRIDE
virtual WEAVE_ERROR
SetUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle, bool aIsConditional)
Declara que o PropertyPathHandle especificado tem modificações locais.
Unlock(SubscriptionClient *apSubClient)
void

Funções públicas

ClearUpdated

WEAVE_ERROR ClearUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle
)

GetData

virtual WEAVE_ERROR GetData(
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  nl::Weave::TLV::TLVWriter & aWriter,
  bool & aIsNull,
  bool & aIsPresent
) __OVERRIDE

Dado um handle de caminho para um nó, um gravador de TLV e booleanos que indicam se o valor é nulo ou não presente, acesse os dados da origem da característica que criará uma notificação.

Se o identificador do caminho não for um nó de folha, o TDM processará valores de gravação no gravador (como abrir contêineres, anular a estrutura etc.). Se um nó não folha for nulo ou não estiver presente, o TDM não chamará GetData para os filhos dele.

Essa função só será chamada para identificadores anuláveis, opcionais, temporários ou folhas. A expectativa é que todas as características com identificadores que tenham essas opções ativadas vão implementar a lógica apropriada para preencher aIsNull e aIsPresent.

Detalhes
Parâmetros
[in] aHandle
O PropertyPathHandle em questão.
[in] aTagToWrite
A tag a ser gravada para o aHandle.
[in,out] aWriter
O escritor em que os elementos TLV serão adicionados.
[out] aIsNull
O aHandle é nulo? Em caso afirmativo, o TDM gravará um elemento nulo. Se aHandle não for uma folha, o TDM vai pular os filhos.
[out] aIsPresent
O aHandle está presente? Se não, e se aHandle não for uma folha, o TDM vai pular o caminho e os filhos dele.
Valores de retorno
WEAVE_NO_ERROR
Se der certo.
other
Não foi possível recuperar os dados e gravá-los na gravação.

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

Cadeado

void Lock(
  SubscriptionClient *apSubClient
)

ReadData

WEAVE_ERROR ReadData(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  TLV::TLVWriter & aWriter,
  PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom
)

SetSubscriptionClient

virtual WEAVE_ERROR SetSubscriptionClient(
  SubscriptionClient *apSubClient
) __OVERRIDE

SetUpdateEncoder

virtual WEAVE_ERROR SetUpdateEncoder(
  UpdateEncoder *apEncoder
) __OVERRIDE

SetUpdated

WEAVE_ERROR SetUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle,
  bool aIsConditional
)

Declara que o PropertyPathHandle especificado tem modificações locais.

O NotificationEngine não vai substituir o identificador e os descendentes até que a solicitação de atualização seja processada. O aplicativo receberá callbacks kEvent_OnUpdateComplete para esse identificador ou para um de seus ancestrais com o resultado da operação de atualização. A modificação pode ser condicional ou não. As atualizações de dados condicionais serão perdidas se a cópia local da instância da característica não estiver mais sincronizada com a do editor porque foi modificada pelo próprio editor ou por outro cliente. Mutações condicionais e incondicionais não são aceitas ao mesmo tempo na mesma instância de característica.

Detalhes
Parâmetros
[in] apSubClient
Um ponteiro para o SubscriptionClient que gerencia o coletor.
[in] aPropertyHandle
Qualquer propriedadePathHandle válida para essa instância da Trait.
[in] aIsConditional
Verdadeiro para uma atualização condicional. Caso contrário, será falso.
Valores de retorno
WEAVE_NO_ERROR
se o identificador da propriedade foi adicionado com sucesso ao conjunto de propriedades a serem enviadas ao proprietário da característica.
WEAVE_ERROR_INVALID_ARGUMENT
se o identificador ou o ponteiro SubscriptionClient for inválido.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
se a instância de característica já estiver sendo atualizada com a condicionalidade oposta.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
se aIsConditional for verdadeiro, mas a instância da característica não tiver uma versão válida.
WEAVE_ERROR_WDM_PATH_STORE_FULL
se não houver memória para armazenar o caminho.
Other
WEAVE_ERROR, dependendo da falha.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Desbloquear

void Unlock(
  SubscriptionClient *apSubClient
)