/* */ #ifndef _D_METALINK_PARSER_CONTROLLER_H_ #define _D_METALINK_PARSER_CONTROLLER_H_ #include "common.h" #include "SharedHandle.h" #include #include #include namespace aria2 { class Metalinker; class MetalinkEntry; class MetalinkResource; class Signature; #ifdef ENABLE_MESSAGE_DIGEST class Checksum; class ChunkChecksum; #endif // ENABLE_MESSAGE_DIGEST class MetalinkParserController { private: SharedHandle _metalinker; SharedHandle _tEntry; SharedHandle _tResource; #ifdef ENABLE_MESSAGE_DIGEST SharedHandle _tChecksum; SharedHandle _tChunkChecksum; std::deque > _tempChunkChecksums; std::pair _tempHashPair; #endif // ENABLE_MESSAGE_DIGEST SharedHandle _tSignature; static const std::string SHA1; public: MetalinkParserController(); ~MetalinkParserController(); SharedHandle getResult() const; void newEntryTransaction(); void setFileNameOfEntry(const std::string& filename); void setFileLengthOfEntry(uint64_t length); void setVersionOfEntry(const std::string& version); void setLanguageOfEntry(const std::string& language); void setOSOfEntry(const std::string& os); void setMaxConnectionsOfEntry(int maxConnections); void commitEntryTransaction(); void cancelEntryTransaction(); void newResourceTransaction(); void setURLOfResource(const std::string& url); void setTypeOfResource(const std::string& type); void setLocationOfResource(const std::string& location); void setPreferenceOfResource(int preference); void setMaxConnectionsOfResource(int maxConnections); void commitResourceTransaction(); void cancelResourceTransaction(); void newChecksumTransaction(); void setTypeOfChecksum(const std::string& type); void setHashOfChecksum(const std::string& md); void commitChecksumTransaction(); void cancelChecksumTransaction(); void newChunkChecksumTransaction(); void setTypeOfChunkChecksum(const std::string& type); void setLengthOfChunkChecksum(size_t length); void addHashOfChunkChecksum(size_t order, const std::string& md); void createNewHashOfChunkChecksum(size_t order); void setMessageDigestOfChunkChecksum(const std::string& md); void addHashOfChunkChecksum(); void commitChunkChecksumTransaction(); void cancelChunkChecksumTransaction(); void newSignatureTransaction(); void setTypeOfSignature(const std::string& type); void setFileOfSignature(const std::string& file); void setBodyOfSignature(const std::string& body); void commitSignatureTransaction(); void cancelSignatureTransaction(); }; } // namespace aria2 #endif // _D_METALINK_PARSER_CONTROLLER_H_