/* */ #ifndef _D_META_FILE_UTIL_H_ #define _D_META_FILE_UTIL_H_ #include "common.h" #include namespace aria2 { class MetaEntry; class Dictionary; class List; class Data; class MetaFileUtil { private: MetaFileUtil() {} static MetaEntry* bdecodingR(const unsigned char** pp, const unsigned char* end); static Dictionary* parseDictionaryTree(const unsigned char** pp, const unsigned char* end); static List* parseListTree(const unsigned char** pp, const unsigned char* end); static Data* decodeWord(const unsigned char** pp, const unsigned char* end); static Data* decodeInt(const unsigned char** pp, const unsigned char* end); static std::string decodeWordAsString(const unsigned char** pp, const unsigned char* end); public: static MetaEntry* parseMetaFile(const std::string& file); static MetaEntry* bdecoding(const unsigned char* buf, size_t len); static MetaEntry* bdecoding(const std::string& content) { return bdecoding(reinterpret_cast(content.c_str()), content.size()); } }; } // namespace aria2 #endif // _D_META_FILE_UTIL_H_