scsl 1.0.1
Shimmering Clarity Standard Library
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
TLV.h File Reference

TLV.h implements basic tag-length-value records. More...

#include <array>
#include <cstdint>
#include "Arena.h"
Include dependency graph for TLV.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  scsl::TLV::Record
 Tag-length-value record with single byte tags and lengths. More...
 

Namespaces

namespace  scsl
 scsl is the top-level namespace containing all the code in this library.
 
namespace  scsl::TLV
 Tag-length-value record tooling.
 

Functions

uint8_t * scsl::TLV::WriteToMemory (Arena &arena, uint8_t *cursor, Record &rec)
 
void scsl::TLV::ReadFromMemory (Record &rec, uint8_t *cursor)
 
void scsl::TLV::SetRecord (Record &rec, uint8_t tag, uint8_t length, const char *data)
 
void scsl::TLV::DeleteRecord (Arena &arena, uint8_t *cursor)
 
uint8_t * scsl::TLV::FindTag (Arena &arena, uint8_t *cursor, Record &rec)
 
uint8_t * scsl::TLV::LocateTag (Arena &arena, uint8_t *cursor, Record &rec)
 
uint8_t * scsl::TLV::FindEmpty (Arena &arena, uint8_t *cursor)
 
uint8_t * scsl::TLV::SkipRecord (Record &rec, uint8_t *cursor)
 

Detailed Description

TLV.h implements basic tag-length-value records.

Author
K. Isom kyle@.nosp@m.imap.nosp@m..cc
Date
2023-10-06

TLV implements tag-length-value (TLV) records. Each record can have a maximum length of 253 bytes; each TLV record occupies a fixed 255 bytes in memory. TLV records don't allocate memory.

This system uses an Arena as a backing store.