Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef GWENHYWFAR_TLV_H
00012 #define GWENHYWFAR_TLV_H
00013
00014 #include <gwenhywfar/buffer.h>
00015 #include <gwenhywfar/misc.h>
00016
00017
00018 typedef struct GWEN_TLV GWEN_TLV;
00019
00020 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_TLV, GWEN_TLV, GWENHYWFAR_API)
00021
00022
00023 GWENHYWFAR_API
00024 GWEN_TLV *GWEN_TLV_new(void);
00025 GWENHYWFAR_API
00026 void GWEN_TLV_free(GWEN_TLV *tlv);
00027
00028 GWENHYWFAR_API
00029 GWEN_TLV *GWEN_TLV_create(unsigned int tagType,
00030 unsigned int tagMode,
00031 const void *p,
00032 unsigned int dlen,
00033 int isBerTlv);
00034
00035
00036 GWENHYWFAR_API
00037 GWEN_TLV *GWEN_TLV_fromBuffer(GWEN_BUFFER *mbuf, int isBerTlv);
00038
00039 GWENHYWFAR_API
00040 int GWEN_TLV_toBuffer(GWEN_TLV *tlv, GWEN_BUFFER *mbuf);
00041
00042 GWENHYWFAR_API
00043 int GWEN_TLV_DirectlyToBuffer(unsigned int tagType,
00044 unsigned int tagMode,
00045 const void *tagData,
00046 int tagLength,
00047 int isBerTlv,
00048 GWEN_BUFFER *mbuf);
00049
00050
00051 GWENHYWFAR_API
00052 int GWEN_TLV_IsBerTlv(const GWEN_TLV *tlv);
00053
00054 GWENHYWFAR_API
00055 unsigned int GWEN_TLV_GetTagType(const GWEN_TLV *tlv);
00056 GWENHYWFAR_API
00057 unsigned int GWEN_TLV_GetTagLength(const GWEN_TLV *tlv);
00058 GWENHYWFAR_API
00059 const void *GWEN_TLV_GetTagData(const GWEN_TLV *tlv);
00060
00061 GWENHYWFAR_API
00062 int GWEN_TLV_IsContructed(const GWEN_TLV *tlv);
00063 GWENHYWFAR_API
00064 unsigned int GWEN_TLV_GetClass(const GWEN_TLV *tlv);
00065 GWENHYWFAR_API
00066 unsigned int GWEN_TLV_GetTagSize(const GWEN_TLV *tlv);
00067
00068
00078 GWENHYWFAR_API
00079 int GWEN_TLV_ReadHeader(GWEN_TLV *tlv, const uint8_t *p, uint32_t size, int isBerTlv);
00080
00081
00091 GWENHYWFAR_API
00092 int GWEN_TLV_WriteHeader(unsigned int tagType,
00093 unsigned int tagMode,
00094 uint64_t tagLength,
00095 int isBerTlv,
00096 GWEN_BUFFER *mbuf);
00097
00098
00099 #endif
00100