#ifndef BTPD_BENC_H #define BTPD_BENC_H enum be_type { BE_ANY, BE_DCT, BE_INT, BE_LST, BE_STR }; int benc_validate(const char *p, size_t len); int benc_dct_chk(const char *p, int count, ...); int benc_islst(const char *p); int benc_isdct(const char *p); int benc_isint(const char *p); int benc_isstr(const char *p); int benc_strcmp(const char *str1, const char *str2); size_t benc_strlen(const char *p); size_t benc_length(const char *p); size_t benc_nelems(const char *p); const char *benc_first(const char *p); const char *benc_next(const char *p); long long benc_int(const char *p, const char **next); const char *benc_mem(const char *p, size_t *len, const char **next); char *benc_mema(const char *p, size_t *len, const char **next); char *benc_str(const char *p, size_t *len, const char **next); const char *benc_dget_any(const char *p, const char *key); const char *benc_dget_lst(const char *p, const char *key); const char *benc_dget_dct(const char *p, const char *key); long long benc_dget_int(const char *p, const char *key); const char *benc_dget_mem(const char *p, const char *key, size_t *len); char *benc_dget_mema(const char *p, const char *key, size_t *len); char *benc_dget_str(const char *p, const char *key, size_t *len); #endif