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

Resumo

Herança

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

Construtores e destruidores

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
Com um identificador de caminho para um nó, um gravador TLV e booleanos que indicam se o valor é nulo ou não está presente, extraia os dados da origem da característica que vai 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 fornecido 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

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

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

Essa função só será chamada para identificadores anuláveis, opcionais, efêmeros ou folhas. Espera-se que as características com identificadores que tenham essas opções ativadas implementarão 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 gravados.
[out] aIsNull
O aHandle está anulado? Em caso afirmativo, o TDM gravará um elemento nulo. Se umHandle 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 ignorará o caminho e os filhos dele.
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
other
Não foi possível recuperar os dados e gravá-los no gravador.

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

Bloquear

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 fornecido tem modificações locais.

O NotificationEngine não modificará 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 de 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 esse coletor.
[in] aPropertyHandle
Qualquer PropertyPathHandle válido para esta instância do Trait.
[in] aIsConditional
True para uma atualização condicional; falso, do contrário.
Valores de retorno
WEAVE_NO_ERROR
se o identificador da propriedade foi adicionado ao conjunto de propriedades que serão enviadas ao proprietário da característica.
WEAVE_ERROR_INVALID_ARGUMENT
se o identificador ou o ponteiro SubscriptionClient forem inválidos.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
se a instância da característica já estiver sendo atualizada com a condicionalidade oposta.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
se aIsConditional for verdadeiro, mas a instância de 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
)