gwenhywfar  5.11.1beta
Typedefs | Functions
tlv.h File Reference
#include <gwenhywfar/buffer.h>
#include <gwenhywfar/misc.h>
#include <gwenhywfar/db.h>

Go to the source code of this file.

Typedefs

typedef struct GWEN_TLV GWEN_TLV
 

Functions

GWENHYWFAR_API int GWEN_TLV_Buffer_To_DB (GWEN_DB_NODE *dbRecord, GWEN_BUFFER *mbuf, int len)
 
GWENHYWFAR_API GWEN_TLVGWEN_TLV_create (unsigned int tagType, unsigned int tagMode, const void *p, unsigned int dlen, int isBerTlv)
 
GWENHYWFAR_API int GWEN_TLV_DirectlyToBuffer (unsigned int tagType, unsigned int tagMode, const void *tagData, int tagLength, int isBerTlv, GWEN_BUFFER *mbuf)
 
GWENHYWFAR_API void GWEN_TLV_free (GWEN_TLV *tlv)
 
GWENHYWFAR_API GWEN_TLVGWEN_TLV_fromBuffer (GWEN_BUFFER *mbuf, int isBerTlv)
 
GWENHYWFAR_API unsigned int GWEN_TLV_GetClass (const GWEN_TLV *tlv)
 
GWENHYWFAR_API const void * GWEN_TLV_GetTagData (const GWEN_TLV *tlv)
 
GWENHYWFAR_API unsigned int GWEN_TLV_GetTagLength (const GWEN_TLV *tlv)
 
GWENHYWFAR_API unsigned int GWEN_TLV_GetTagSize (const GWEN_TLV *tlv)
 
GWENHYWFAR_API unsigned int GWEN_TLV_GetTagType (const GWEN_TLV *tlv)
 
GWENHYWFAR_API int GWEN_TLV_IsBerTlv (const GWEN_TLV *tlv)
 
GWENHYWFAR_API int GWEN_TLV_IsContructed (const GWEN_TLV *tlv)
 
GWENHYWFAR_API GWEN_TLVGWEN_TLV_new (void)
 
GWENHYWFAR_API uint32_t GWEN_TLV_ParseLength (GWEN_BUFFER *mbuf, uint32_t *tag_len_len)
 
GWENHYWFAR_API int GWEN_TLV_ReadHeader (GWEN_TLV *tlv, const uint8_t *p, uint32_t size, int isBerTlv)
 
GWENHYWFAR_API int GWEN_TLV_toBuffer (GWEN_TLV *tlv, GWEN_BUFFER *mbuf)
 
GWENHYWFAR_API int GWEN_TLV_WriteHeader (unsigned int tagType, unsigned int tagMode, uint64_t tagLength, int isBerTlv, GWEN_BUFFER *mbuf)
 

Typedef Documentation

◆ GWEN_TLV

typedef struct GWEN_TLV GWEN_TLV

Definition at line 1 of file tlv.h.

Function Documentation

◆ GWEN_TLV_Buffer_To_DB()

GWENHYWFAR_API int GWEN_TLV_Buffer_To_DB ( GWEN_DB_NODE dbRecord,
GWEN_BUFFER mbuf,
int  len 
)

Directly parses a BER-TLV structure do a DB.

Returns
number of bytes parsed
Parameters
dbRecordGWEN_DB database with the parsed TLV structure
mbufbuffer holding the TLV data
lenlength of the data in the buffer

◆ GWEN_TLV_create()

GWENHYWFAR_API GWEN_TLV* GWEN_TLV_create ( unsigned int  tagType,
unsigned int  tagMode,
const void *  p,
unsigned int  dlen,
int  isBerTlv 
)

◆ GWEN_TLV_DirectlyToBuffer()

GWENHYWFAR_API int GWEN_TLV_DirectlyToBuffer ( unsigned int  tagType,
unsigned int  tagMode,
const void *  tagData,
int  tagLength,
int  isBerTlv,
GWEN_BUFFER mbuf 
)

◆ GWEN_TLV_free()

GWENHYWFAR_API void GWEN_TLV_free ( GWEN_TLV tlv)

◆ GWEN_TLV_fromBuffer()

GWENHYWFAR_API GWEN_TLV* GWEN_TLV_fromBuffer ( GWEN_BUFFER mbuf,
int  isBerTlv 
)

◆ GWEN_TLV_GetClass()

GWENHYWFAR_API unsigned int GWEN_TLV_GetClass ( const GWEN_TLV tlv)

◆ GWEN_TLV_GetTagData()

GWENHYWFAR_API const void* GWEN_TLV_GetTagData ( const GWEN_TLV tlv)

◆ GWEN_TLV_GetTagLength()

GWENHYWFAR_API unsigned int GWEN_TLV_GetTagLength ( const GWEN_TLV tlv)

◆ GWEN_TLV_GetTagSize()

GWENHYWFAR_API unsigned int GWEN_TLV_GetTagSize ( const GWEN_TLV tlv)

◆ GWEN_TLV_GetTagType()

GWENHYWFAR_API unsigned int GWEN_TLV_GetTagType ( const GWEN_TLV tlv)

◆ GWEN_TLV_IsBerTlv()

GWENHYWFAR_API int GWEN_TLV_IsBerTlv ( const GWEN_TLV tlv)

◆ GWEN_TLV_IsContructed()

GWENHYWFAR_API int GWEN_TLV_IsContructed ( const GWEN_TLV tlv)

◆ GWEN_TLV_new()

GWENHYWFAR_API GWEN_TLV* GWEN_TLV_new ( void  )

◆ GWEN_TLV_ParseLength()

GWENHYWFAR_API uint32_t GWEN_TLV_ParseLength ( GWEN_BUFFER mbuf,
uint32_t *  tag_len_len 
)

Parses length of a BER-TLV structure.

Returns
number of bytes including the tag itself
Parameters
mbufbuffer holding the TLV data
tag_len_lennumber of bytes used for tag identifier octets and length octets

◆ GWEN_TLV_ReadHeader()

GWENHYWFAR_API int GWEN_TLV_ReadHeader ( GWEN_TLV tlv,
const uint8_t *  p,
uint32_t  size,
int  isBerTlv 
)

Reads a TLV header from a buffer (tag and length) and returns the number of bytes used by the header.

Returns
number of bytes used to specify tag and length (i.e. TLV size without the data part)
Parameters
tlvTLV to read the header into
ppointer to a buffer containing at least the header
sizesiez of the buffer pointed to by p
isBerTlvif !=0 then the TLV is supposed to be a BER-TLV object

◆ GWEN_TLV_toBuffer()

GWENHYWFAR_API int GWEN_TLV_toBuffer ( GWEN_TLV tlv,
GWEN_BUFFER mbuf 
)

◆ GWEN_TLV_WriteHeader()

GWENHYWFAR_API int GWEN_TLV_WriteHeader ( unsigned int  tagType,
unsigned int  tagMode,
uint64_t  tagLength,
int  isBerTlv,
GWEN_BUFFER mbuf 
)

Directly writes a TLV header (tag and length) to the given buffer.

Returns
0 if ok, error code otherwise
Parameters
tagTypetag id
tagModebits 5, 6 and 7 of the first TLV byte (bits 6/7: class, bit 5: constructed)
tagLengthlength of the data part introduced by the TLV header
isBerTlvif !=0 then the TLV is supposed to be a BER-TLV object
mbufbuffer to receive the TLV header