nl::Weave::Profiles::DataManagement_Legacy::ProfileDatabase

Dies ist eine abstrakte Klasse.

#include <src/lib/profiles/data-management/Legacy/ProfileDatabase.h>

Die abstrakte Hilfsklasse ProfileDatabase.

Zusammenfassung

WDM trennt die Protokollimplementierung von der Datenverwaltungsimplementierung und überlässt Letzteres zumindest im Prinzip dem Anwendungsentwickler. Alle interessanten Aufrufe in WDM und alle abstrakten Methoden, die der Profilentwickler implementieren muss, verwenden TLV-codierte Pfad- oder Datenlisten. Dies belastet Profilentwickler und führt in der Praxis zu vielen Codeduplizierungen, wenn der Entwickler denselben Code zum Verpacken und Entpacken von TLV und so weiter geschrieben hat. Zur Vereinfachung stellen wir eine Art „Datenmanagement-Toolkit“ bereit.

Diese Hilfsklasse bietet Unterstützung für das Speichern und Abrufen von Daten, vorausgesetzt, die erforderlichen konkreten ProfileData-Unterklassen wurden bereitgestellt und der LookupProfileData()-Methode unten hinzugefügt.

Öffentliche Funktionen

LookupDataFromProfileDescriptor(nl::Weave::TLV::TLVReader & aDescReader, ProfileData **aProfileData)
Suchen Sie in der Datenbank nach einem ProfileData-Objekt.
LookupProfileData(nl::Weave::TLV::TLVReader & aPathReader, ProfileData **aProfileData)
Suchen Sie in der Datenbank nach einem ProfileData-Objekt.
LookupProfileData(uint32_t aProfileId, nl::Weave::TLV::TLVReader *aInstanceIdRdr, ProfileData **aResult)=0
virtual WEAVE_ERROR
Suchen Sie nach einem ProfileData-Objekt.
Retrieve(ReferencedTLVData & aPathList, ReferencedTLVData & aDataList)
Rufen Sie eine Datenliste anhand einer Pfadliste ab.
Retrieve(ReferencedTLVData & aPathList, nl::Weave::TLV::TLVWriter & aWriter)
Schreiben Sie eine Datenliste anhand einer Pfadliste aus.
Store(ReferencedTLVData & aDataList)
Datenliste speichern.

Geschützte Funktionen

StoreInternal(nl::Weave::TLV::TLVReader & aPathReader, uint64_t aVersion, nl::Weave::TLV::TLVReader & aDataReader)

Klassen

nl::Weave::Profiles::DataManagement_Legacy::ProfileDatabase::ProfileData

Die abstrakte innere Hilfsklasse ProfileData.

Öffentliche Funktionen

LookupDataFromProfileDescriptor

WEAVE_ERROR LookupDataFromProfileDescriptor(
  nl::Weave::TLV::TLVReader & aDescReader,
  ProfileData **aProfileData
)

Suchen Sie in der Datenbank nach einem ProfileData-Objekt.

Diese Dienstprogrammmethode wird verwendet, um ProfileData-Objekte in einer bestimmten ProfileDatabase zu finden. Sie hängt hauptsächlich von den Suchmethoden ab, die vom Implementer der konkreten ProfileDatabase-Unterklasse bereitgestellt werden.

Details
Parameter
[in] aDescReader
Ein Verweis auf einen TLV-Leser, der sich in einem WDM-Pfad befindet, d.h. einen TLV-Pfad, der als erstes Element eine Profilbeschreibung hat.
[out] aProfileData
Ein Zeiger, der einen Zeiger auf das betreffende ProfileData-Objekt zurückgeben soll.
Rückgabe
WEAVE_NO_ERROR bei Erfolg. Andernfalls wird WEAVE_ERROR zurückgegeben, der angibt, dass beim Suchen eines übereinstimmenden ProfileData-Objekts ein Fehler aufgetreten ist.

LookupProfileData

WEAVE_ERROR LookupProfileData(
  nl::Weave::TLV::TLVReader & aPathReader,
  ProfileData **aProfileData
)

Suchen Sie in der Datenbank nach einem ProfileData-Objekt.

Diese Dienstprogrammmethode wird verwendet, um ProfileData-Objekte in einer bestimmten ProfileDatabase zu finden. Sie hängt hauptsächlich von den Suchmethoden ab, die vom Implementer der konkreten ProfileDatabase-Unterklasse bereitgestellt werden.

Details
Parameter
[in] aPathReader
Ein Verweis auf einen TLV-Leser, der sich in einem WDM-Pfad befindet, d.h. einen TLV-Pfad, der als erstes Element eine Profilbeschreibung hat.
[out] aProfileData
Ein Zeiger, der einen Zeiger auf das betreffende ProfileData-Objekt zurückgeben soll.
Rückgabe
WEAVE_NO_ERROR bei Erfolg. Andernfalls wird WEAVE_ERROR zurückgegeben, der angibt, dass beim Suchen eines übereinstimmenden ProfileData-Objekts ein Fehler aufgetreten ist.

LookupProfileData

virtual WEAVE_ERROR LookupProfileData(
  uint32_t aProfileId,
  nl::Weave::TLV::TLVReader *aInstanceIdRdr,
  ProfileData **aResult
)=0

Suchen Sie nach einem ProfileData-Objekt.

Nach einem bestimmten ProfileData-Objekt mit einer Profil-ID und einer (optionalen) Instanz-ID suchen als TLV-Leser verfügbar.

Details
Parameter
[in] aProfileId
Die 32-Bit-Profilnummer des gewünschten Profils.
[in] aInstanceIdRdr
Ein Zeiger auf einen TLV-Leser, der sich bei den Instanzkennungsdaten befindet. Wenn keine Instanzkennung angegeben wurde, ist dieser Wert NULL.
[out] aResult
Ein Zeiger, der einen Zeiger auf das betreffende ProfileData-Objekt zurückgeben soll.
Rückgabe
WEAVE_NO_ERROR Bei Erfolg. Andernfalls wird ein WEAVE_ERROR zurückgegeben, der angibt, dass kein ProfileData-Objekt gefunden werden kann.

Abrufen

WEAVE_ERROR Retrieve(
  ReferencedTLVData & aPathList,
  ReferencedTLVData & aDataList
)

Rufen Sie eine Datenliste anhand einer Pfadliste ab.

Rufen Sie anhand einer Pfadliste eine Datenliste mit Datenlistenelementen für jeden Pfad in der Pfadliste mit den Daten ab, die das Endgerät dieses Pfads sind.

Details
Parameter
[in] aPathList
Ein Verweis auf ein ReferencedTLVData-Objekt, das eine TLV-codierte Liste von Pfaden enthält, die die abzurufenden Daten darstellen. Dieser Parameter bleibt während der gesamten Ausführung dieser Funktion konstant.
[out] aDataList
Ein Verweis auf ein ReferencedTLVData-Objekt, in das die abgerufenen Ergebnisse geschrieben werden sollen. Die Datenlänge wird erst nach erfolgreicher Ausführung dieser Funktion angepasst.
Rückgabe
WEAVE_NO_ERROR Bei Erfolg. Andernfalls wird ein WEAVE_ERROR zurückgegeben. Dieser gibt an, dass die relevante Datenliste nicht abgerufen werden konnte.

Abrufen

WEAVE_ERROR Retrieve(
  ReferencedTLVData & aPathList,
  nl::Weave::TLV::TLVWriter & aWriter
)

Schreiben Sie eine Datenliste anhand einer Pfadliste aus.

Schreiben Sie anhand einer Pfadliste und eines TLV-Autors eine Datenliste mit Datenlistenelementen für jeden Pfad in der Pfadliste und den Daten, die das Endgerät dieses Pfads sind.

Details
Parameter
[in] aPathList
Ein Verweis auf ein ReferencedTLVData-Objekt, das eine Liste von TLV-Pfaden enthält, die die abzurufenden Daten darstellen. Dieser Parameter bleibt während der gesamten Ausführung dieser Funktion konstant.
[in] aWriter
Ein Verweis auf den TLV-Autor zum Schreiben der abgerufenen Pfadliste. Der interne Status für den Autor kann bei einem Fehler möglicherweise nicht wiederhergestellt werden.
Rückgabe
WEAVE_NO_ERROR Bei Erfolg. Andernfalls wird ein WEAVE_ERROR zurückgegeben, der angibt, dass die Daten nicht abgerufen oder die gewünschte Datenliste nicht geschrieben werden konnte.

Shop

WEAVE_ERROR Store(
  ReferencedTLVData & aDataList
)

Datenliste speichern.

Angesichts einer TLV-codierten Datenliste durchläuft diese Methode das Parsen dieser Liste und das Aufrufen der konkreten Methoden, die von den Unterklassen-Implementierern von ProfileDatabase bereitgestellt werden, um die referenzierten Daten an der richtigen Stelle zu platzieren.

Details
Parameter
[in] aDataList
Ein Verweis auf ein ReferencedTLVData-Objekt, das die betreffenden Daten in TLV-codierter Form enthält.
Rückgabe
WEAVE_NO_ERROR Bei Erfolg. Andernfalls wird ein WEAVE_ERROR zurückgegeben, der angibt, dass die gewünschten Daten nicht gespeichert werden konnten.

Geschützte Funktionen

StoreInternal

WEAVE_ERROR StoreInternal(
  nl::Weave::TLV::TLVReader & aPathReader,
  uint64_t aVersion,
  nl::Weave::TLV::TLVReader & aDataReader
)