/* */ #ifndef _D_XML2_METALINK_PROCESSOR_H_ #define _D_XML2_METALINK_PROCESSOR_H_ #include "MetalinkProcessor.h" #include #include class Xml2MetalinkProcessor : public MetalinkProcessor { private: xmlDocPtr doc; xmlXPathContextPtr context; MetalinkEntryHandle getEntry(const string& xpath); MetalinkResourceHandle getResource(const string& xpath); #ifdef ENABLE_MESSAGE_DIGEST ChunkChecksumHandle getPieceHash(const string& xpath, int64_t totalSize); #endif // ENABLE_MESSAGE_DIGEST xmlXPathObjectPtr xpathEvaluation(const string& xpath); string xpathContent(const string& xpath); string xmlAttribute(xmlNodePtr node, const string& attrName); string xmlContent(xmlNodePtr node); bool xpathExists(const string& xpath); void release(); public: Xml2MetalinkProcessor(); virtual ~Xml2MetalinkProcessor(); virtual MetalinkerHandle parseFile(const string& filename); }; #endif // _D_XML2_METALINK_PROCESSOR_H_