00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef GWENHYWFAR_TLV_H
00015 #define GWENHYWFAR_TLV_H
00016
00017 #include <gwenhywfar/buffer.h>
00018 #include <gwenhywfar/misc.h>
00019
00020
00021 typedef struct GWEN_TLV GWEN_TLV;
00022
00023 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_TLV, GWEN_TLV, GWENHYWFAR_API)
00024
00025
00026 GWENHYWFAR_API
00027 GWEN_TLV *GWEN_TLV_new();
00028 GWENHYWFAR_API
00029 void GWEN_TLV_free(GWEN_TLV *tlv);
00030
00031 GWENHYWFAR_API
00032 GWEN_TLV *GWEN_TLV_create(unsigned int tagType,
00033 unsigned int tagMode,
00034 const void *p,
00035 unsigned int dlen,
00036 int isBerTlv);
00037
00038
00039 GWENHYWFAR_API
00040 GWEN_TLV *GWEN_TLV_fromBuffer(GWEN_BUFFER *mbuf, int isBerTlv);
00041
00042 GWENHYWFAR_API
00043 int GWEN_TLV_toBuffer(GWEN_TLV *tlv, GWEN_BUFFER *mbuf);
00044
00045 GWENHYWFAR_API
00046 int GWEN_TLV_DirectlyToBuffer(unsigned int tagType,
00047 unsigned int tagMode,
00048 const void *tagData,
00049 int tagLength,
00050 int isBerTlv,
00051 GWEN_BUFFER *mbuf);
00052
00053
00054 GWENHYWFAR_API
00055 int GWEN_TLV_IsBerTlv(const GWEN_TLV *tlv);
00056
00057 GWENHYWFAR_API
00058 unsigned int GWEN_TLV_GetTagType(const GWEN_TLV *tlv);
00059 GWENHYWFAR_API
00060 unsigned int GWEN_TLV_GetTagLength(const GWEN_TLV *tlv);
00061 GWENHYWFAR_API
00062 const void *GWEN_TLV_GetTagData(const GWEN_TLV *tlv);
00063
00064 GWENHYWFAR_API
00065 int GWEN_TLV_IsContructed(const GWEN_TLV *tlv);
00066 GWENHYWFAR_API
00067 unsigned int GWEN_TLV_GetClass(const GWEN_TLV *tlv);
00068 GWENHYWFAR_API
00069 unsigned int GWEN_TLV_GetTagSize(const GWEN_TLV *tlv);
00070
00071
00072
00073
00074 #endif
00075