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

Résumé

Héritage

Hérite de:
  nl::Weave::Profiles::DataManagement_Current::TraitDataSink
  nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate

Constructeurs et destructeurs

TraitUpdatableDataSink(const TraitSchemaEngine *aEngine)

Fonctions publiques

ClearUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
À partir d'un handle de chemin vers un nœud, d'un rédacteur TLV et de valeurs booléennes indiquant si la valeur est nulle ou non présente, récupérez les données à partir de la source de la caractéristique qui créera une notification.
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)
Indique que le PropertyPathHandle donné comporte des modifications locales.
Unlock(SubscriptionClient *apSubClient)
void

Fonctions publiques

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

À partir d'un handle de chemin vers un nœud, d'un rédacteur TLV et de valeurs booléennes indiquant si la valeur est nulle ou non présente, récupérez les données à partir de la source de la caractéristique qui créera une notification.

Si le handle de chemin d'accès n'est pas un nœud feuille, TDM gère l'écriture des valeurs dans le rédacteur (comme l'ouverture des conteneurs, la nullité du struct, etc.). Si un nœud non-feuille est nul ou absent, TDM n'appelle pas GetData pour ses enfants.

Cette fonction ne sera appelée que pour les identifiants pouvant avoir une valeur nulle, facultatifs, éphémères ou feuilles. L'objectif est que toute caractéristique avec des identifiants pour lesquels ces options sont activées implémentent la logique appropriée pour renseigner les champs aIsNull et aIsPresent.

Détails
Paramètres
[in] aHandle
Le PropertyPathHandle en question.
[in] aTagToWrite
Balise à écrire pour aHandle.
[in,out] aWriter
Rédacteur dans lequel écrire les éléments TLV.
[out] aIsNull
Un identifiant a-t-il été invalidé ? Si c'est le cas, le TDM écrit un élément nul. Si un handle n'est pas une feuille, TDM ignore ses enfants.
[out] aIsPresent
Un identifiant est-il présent ? Si ce n'est pas le cas et qu'un handle n'est pas une feuille, TDM ignore le chemin et ses enfants.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
other
Impossible de récupérer les données et de les écrire dans le rédacteur.

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

Verrouiller

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
)

Indique que le PropertyPathHandle donné comporte des modifications locales.

NotificationEngine ne remplacera pas le handle et ses descendants tant que la requête de mise à jour n'aura pas été traitée. L'application recevra des rappels kEvent_OnUpdateComplete pour ce handle ou pour l'un de ses ancêtres avec le résultat de l'opération de mise à jour. La modification peut être conditionnelle ou non. Les mises à jour de données conditionnelles seront perdues si la copie locale de l'instance de caractéristique n'est plus synchronisée avec celle de l'éditeur, car elle a été modifiée par l'éditeur lui-même ou par un autre client. Les mutations conditionnelles et inconditionnelles ne sont pas acceptées en même temps dans la même instance de caractéristique.

Détails
Paramètres
[in] apSubClient
Pointeur vers le SubscriptionClient qui gère ce récepteur.
[in] aPropertyHandle
Tout PropertyPathHandle valide pour cette instance Trait.
[in] aIsConditional
"True" pour une mise à jour conditionnelle ; "false" dans le cas contraire.
Valeurs renvoyées
WEAVE_NO_ERROR
si le handle de propriété a bien été ajouté à l'ensemble de propriétés à envoyer au propriétaire du trait.
WEAVE_ERROR_INVALID_ARGUMENT
si le handle ou le pointeur SubscriptionClient n'est pas valide.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
si l'instance de caractéristique est déjà en cours de mise à jour avec la conditionnalité opposée.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
Si aIsConditional est vrai, mais que l'instance de caractéristique n'a pas de version valide.
WEAVE_ERROR_WDM_PATH_STORE_FULL
s'il n'y a pas de mémoire pour stocker le chemin d'accès.
Other
WEAVE_ERROR en fonction de l'échec.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Déverrouiller

void Unlock(
  SubscriptionClient *apSubClient
)