nl:: Weave:: TLV:: WeaveCircularTLVBuffer
#include <src/lib/core/WeaveCircularTLVBuffer.h>
WeaveCircularTLVBuffer fournit un stockage circulaire pour nl::Weave::TLV::TLVWriter et nl::Weave::TLVTLVReader.
Résumé
nl::Weave::TLV::TLVWriter peut écrire un nombre illimité d'entrées TLV dans le WeaveCircularTLVBuffer, à condition que chaque entrée TLV s'inscrive entièrement dans l'espace de stockage fourni. nl::Weave::TLV::TLVReader lit au maximum la taille du tampon, mais s'adapte à la forme de retour à la ligne.
Constructeurs et destructeurs |
|
---|---|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength)
Constructeur WeaveCircularTLVBuffer.
|
|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead)
Constructeur WeaveCircularTLVBuffer.
|
Types publics |
|
---|---|
ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
|
WEAVE_ERROR(* Fonction appelée pour traiter un élément TLV avant qu'il ne soit évincé de nl::Weave::TLV::WeaveCircularTLVBuffer. |
Attributs publics |
|
---|---|
mAppData
|
void *
Contexte facultatif fourni par l'utilisateur à utiliser avec le rappel traitant l'élément évincé.
|
mImplicitProfileId
|
uint32_t
|
mProcessEvictedElement
|
Rappel facultatif fourni par l'utilisateur qui traite l'élément avant de le supprimer du tampon circulaire.
|
Fonctions publiques |
|
---|---|
AvailableDataLength(void) const
|
size_t
|
DataLength(void) const
|
size_t
|
EvictHead(void)
|
Évincer le plus ancien élément TLV de premier niveau dans le WeaveCircularTLVBuffer.
|
FinalizeBuffer(TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen)
|
FinalizeBuffer ajuste l'état
WeaveCircularTLVBuffer à la fin de la sortie de TLVWriter. |
GetNewBuffer(TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen)
|
Obtenez de l'espace supplémentaire pour TLVWriter.
|
GetNextBuffer(TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
Obtenez de l'espace supplémentaire pour le TLVReader.
|
GetQueue(void) const
|
uint8_t *
|
GetQueueSize(void) const
|
size_t
|
QueueHead(void) const
|
uint8_t *
|
QueueTail(void) const
|
uint8_t *
|
SetQueueHead(uint8_t *aQueueHead)
|
void
|
SetQueueLength(size_t aQueueLength)
|
void
|
Fonctions statiques publiques |
|
---|---|
FinalizeBufferFunct(TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen)
|
Un trampoline pour WeaveCircularTLVBuffer::FinalizeBuffer.
|
GetNewBufferFunct(TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen)
|
Un trampoline permettant d'ajouter de l'espace à TLVWriter
|
GetNextBufferFunct(TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
Un trampoline pour WeaveCircularTLVBuffer::GetNextBuffer.
|
Types publics
ProcessEvictedElementFunct
WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
Fonction appelée pour traiter un élément TLV avant qu'il ne soit évincé de nl::Weave::TLV::WeaveCircularTLVBuffer.
Les fonctions de ce type permettent de traiter un élément TLV sur le point d'être évincé du tampon. La fonction reçoit un élément nl::Weave::TLV::TLVReader positionné sur l'élément sur le point d'être supprimé, ainsi qu'un contexte vide * dans lequel l'utilisateur peut avoir fourni un environnement supplémentaire pour le rappel. Si la fonction a traité l'élément avec succès, elle doit renvoyer WEAVE_NO_ERROR. Cela signifie au WeaveCircularTLVBuffer que l'élément peut être évincé en toute sécurité. Toute autre valeur renvoyée est traitée comme une erreur et empêche le WeaveCircularTLVBuffer d'évincer l'élément en question.
Remarque: Ce rappel peut être utilisé pour forcer WeaveCircularTLVBuffer à ne pas évincer l'élément. Cela peut être utile dans un certain nombre de cas, lorsque vous souhaitez disposer d'un tampon circulaire sous-jacent, mais ne pas remplacer les éléments qu'il contient.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
Attributs publics
mAppData
void * mAppData
Contexte facultatif fourni par l'utilisateur à utiliser avec le rappel traitant l'élément évincé.
mImplicitProfileId
uint32_t mImplicitProfileId
mProcessEvictedElement
ProcessEvictedElementFunct mProcessEvictedElement
Rappel facultatif fourni par l'utilisateur qui traite l'élément avant de le supprimer du tampon circulaire.
Consultez la définition du type ProcessEvictedElementFunct pour en savoir plus sur l'implémentation de la fonction mProcessEvictedElement.
Fonctions publiques
AvailableDataLength
size_t AvailableDataLength( void ) const
DataLength
size_t DataLength( void ) const
EvictHead
WEAVE_ERROR EvictHead( void )
Évincer le plus ancien élément TLV de premier niveau dans le WeaveCircularTLVBuffer.
Cette fonction supprime l'élément TLV de niveau supérieur le plus ancien dans le tampon. La fonction appelle le rappel enregistré lors de mProcessEvictedElement pour traiter l'élément avant sa suppression. Si le rappel renvoie autre chose que WEAVE_NO_ERROR, l'élément n'est pas supprimé. De même, si toute autre erreur ne se produit pas d'éléments dans le tampon, etc., le WeaveCircularTLVBuffer sous-jacent reste inchangé.
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
FinalizeBuffer
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
FinalizeBuffer ajuste l'état WeaveCircularTLVBuffer
à la fin de la sortie de TLVWriter.
Cette fonction affecte la position de la queue de la file d'attente.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
GetNewBuffer
WEAVE_ERROR GetNewBuffer( TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen )
Obtenez de l'espace supplémentaire pour TLVWriter.
En réalité, la fonction évince un élément du tampon circulaire et ajuste l'en-tête de cette file d'attente de tampon
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
GetNextBuffer
WEAVE_ERROR GetNextBuffer( TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen )
Obtenez de l'espace supplémentaire pour le TLVReader.
L'espace de stockage fourni par le WeaveCircularTLVBuffer peut être inclus dans le tampon. Cette fonction nous permet de faire correspondre la mise en mémoire tampon du tampon circulaire aux contraintes TLVReader. Le lecteur lira au maximum mQueueSize
octets à partir du tampon.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
GetQueue
uint8_t * GetQueue( void ) const
GetQueueSize
size_t GetQueueSize( void ) const
QueueHead
uint8_t * QueueHead( void ) const
QueueTail
uint8_t * QueueTail( void ) const
SetQueueHead
void SetQueueHead( uint8_t *aQueueHead )
SetQueueLength
void SetQueueLength( size_t aQueueLength )
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength )
Constructeur WeaveCircularTLVBuffer.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead )
Constructeur WeaveCircularTLVBuffer.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
Fonctions statiques publiques
FinalizeBufferFunct
WEAVE_ERROR FinalizeBufferFunct( TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen )
Un trampoline pour WeaveCircularTLVBuffer::FinalizeBuffer.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs de retour |
|
GetNewBufferFunct
WEAVE_ERROR GetNewBufferFunct( TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen )
Un trampoline permettant d'ajouter de l'espace à TLVWriter
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs de retour |
|
GetNextBufferFunct
WEAVE_ERROR GetNextBufferFunct( TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen )
Un trampoline pour WeaveCircularTLVBuffer::GetNextBuffer.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs de retour |
|