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 WeaveCircularTLVBuffer tant que chaque entrée TLV individuelle s'inscrit entièrement dans l'espace de stockage fourni. La commande nl::Weave::TLV::TLVReader ne peut pas lire plus de la taille du tampon, mais elle peut contenir un retour à la ligne.
Constructeurs et destructeurs |
|
---|---|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength)
|
|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead)
|
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 le traitement de l'élément évincé.
|
mImplicitProfileId
|
uint32_t
|
mProcessEvictedElement
|
Rappel facultatif fourni par l'utilisateur qui traite l'élément avant de l'expulser du tampon circulaire.
|
Fonctions publiques |
|
---|---|
AvailableDataLength(void) const
|
size_t
|
DataLength(void) const
|
size_t
|
EvictHead(void)
|
Évince le plus ancien élément TLV de premier niveau dans WeaveCircularTLVBuffer.
|
FinalizeBuffer(TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen)
|
FinalizeBuffer ajuste l'état de
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 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 vers WeaveCircularTLVBuffer::FinalizeBuffer.
|
GetNewBufferFunct(TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen)
|
Un trampoline permettant de libérer de l'espace pour TLVWriter.
|
GetNextBufferFunct(TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
Un trampoline vers 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 recevra un nl::Weave::TLV::TLVReader placé sur l'élément sur le point d'être supprimé, ainsi qu'un contexte void * où l'utilisateur peut avoir fourni un environnement supplémentaire pour le rappel. Si la fonction a traité correctement l'élément, elle doit renvoyer WEAVE_NO_ERROR. cela signifie dans 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 WeaveCircularTLVBuffer d'expulser l'élément en question.
Remarque: Ce rappel peut être utilisé pour forcer WeaveCircularTLVBuffer à ne pas expulser l'élément. Cela peut être utile dans un certain nombre de cas, lorsqu'un tampon circulaire sous-jacent doit être créé sans pour autant remplacer des éléments qu'il contient.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
Attributs publics
mAppData
void * mAppData
Contexte facultatif fourni par l'utilisateur à utiliser avec le rappel traitant le traitement de l'élément évincé.
mImplicitProfileId
uint32_t mImplicitProfileId
mProcessEvictedElement
ProcessEvictedElementFunct mProcessEvictedElement
Rappel facultatif fourni par l'utilisateur qui traite l'élément avant de l'expulser du tampon circulaire.
Consultez la définition de type ProcessEvictedElementFunct pour obtenir plus d'informations 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 )
Évince l'élément TLV de premier niveau le plus ancien dans WeaveCircularTLVBuffer.
Cette fonction supprime l'élément TLV de premier niveau le plus ancien du tampon. La fonction appelle le rappel enregistré dans mProcessEvictedElement pour traiter l'élément avant sa suppression. Si le rappel renvoie une valeur autre que WEAVE_NO_ERROR, l'élément n'est pas supprimé. De même, si une autre erreur ne se produit aucun élément dans le tampon, etc., le WeaveCircularTLVBuffer sous-jacent reste inchangé.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
FinalizeBuffer
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
FinalizeBuffer ajuste l'état de WeaveCircularTLVBuffer
à la fin de la sortie de TLVWriter.
Cette fonction affecte la position de la fin de la file d'attente.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
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 la tête de cette file d'attente de tampon
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
GetNextBuffer
WEAVE_ERROR GetNextBuffer( TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen )
Obtenez de l'espace supplémentaire pour TLVReader.
Le stockage fourni par WeaveCircularTLVBuffer peut être encapsulé dans la mémoire tampon. Cette fonction nous permet de faire correspondre la mise en mémoire tampon du tampon circulaire aux contraintes TLVReader. Le lecteur lit au maximum mQueueSize
octets du tampon.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
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 )
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead )
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
Fonctions statiques publiques
FinalizeBufferFunct
WEAVE_ERROR FinalizeBufferFunct( TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen )
Un trampoline vers WeaveCircularTLVBuffer::FinalizeBuffer.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs renvoyées |
|
GetNewBufferFunct
WEAVE_ERROR GetNewBufferFunct( TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen )
Un trampoline permettant de libérer de l'espace pour TLVWriter.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs renvoyées |
|
GetNextBufferFunct
WEAVE_ERROR GetNextBufferFunct( TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen )
Un trampoline vers WeaveCircularTLVBuffer::GetNextBuffer
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs renvoyées |
|