/* */ #ifndef _D_METALINK_PARSER_CONTROLLER_H_ #define _D_METALINK_PARSER_CONTROLLER_H_ #include "common.h" #include #include #include #include "SharedHandle.h" namespace aria2 { class Metalinker; class MetalinkEntry; class MetalinkResource; class MetalinkMetaurl; class Signature; #ifdef ENABLE_MESSAGE_DIGEST class Checksum; class ChunkChecksum; #endif // ENABLE_MESSAGE_DIGEST class MetalinkParserController { private: SharedHandle _metalinker; SharedHandle _tEntry; SharedHandle _tResource; SharedHandle _tMetaurl; #ifdef ENABLE_MESSAGE_DIGEST SharedHandle _tChecksum; SharedHandle _tChunkChecksumV4; // Metalink4Spec std::vector _tempChunkChecksumsV4; // Metalink4Spec SharedHandle _tChunkChecksum; // Metalink3Spec std::vector > _tempChunkChecksums;//Metalink3Spec std::pair _tempHashPair; // Metalink3Spec #endif // ENABLE_MESSAGE_DIGEST SharedHandle _tSignature; public: MetalinkParserController(); ~MetalinkParserController(); const SharedHandle& getResult() const { return _metalinker; } 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 setPriorityOfResource(int priority); 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 newChunkChecksumTransactionV4(); // Metalink4Spec void setTypeOfChunkChecksumV4(const std::string& type); // Metalink4Spec void setLengthOfChunkChecksumV4(size_t length); // Metalink4Spec void addHashOfChunkChecksumV4(const std::string& md); // Metalink4Spec void commitChunkChecksumTransactionV4(); // Metalink4Spec void cancelChunkChecksumTransactionV4(); // Metalink4Spec void newChunkChecksumTransaction(); // Metalink3Spec void setTypeOfChunkChecksum(const std::string& type); // Metalink3Spec void setLengthOfChunkChecksum(size_t length); // Metalink3Spec void addHashOfChunkChecksum(size_t order, const std::string& md);// Metalink3Spec void createNewHashOfChunkChecksum(size_t order); // Metalink3Spec void setMessageDigestOfChunkChecksum(const std::string& md); // Metalink3Spec void addHashOfChunkChecksum(); // Metalink3Spec void commitChunkChecksumTransaction(); // Metalink3Spec void cancelChunkChecksumTransaction(); // Metalink3Spec void newSignatureTransaction(); void setTypeOfSignature(const std::string& type); void setFileOfSignature(const std::string& file); void setBodyOfSignature(const std::string& body); void commitSignatureTransaction(); void cancelSignatureTransaction(); void newMetaurlTransaction(); void setURLOfMetaurl(const std::string& url); void setMediatypeOfMetaurl(const std::string& mediatype); void setPriorityOfMetaurl(int priority); void setNameOfMetaurl(const std::string& name); void commitMetaurlTransaction(); void cancelMetaurlTransaction(); }; } // namespace aria2 #endif // _D_METALINK_PARSER_CONTROLLER_H_