/* */ #ifndef _D_METALINK_ENTRY_H_ #define _D_METALINK_ENTRY_H_ #include "common.h" #include "SharedHandle.h" #include #include namespace aria2 { class MetalinkResource; class FileEntry; #ifdef ENABLE_MESSAGE_DIGEST class Checksum; class ChunkChecksum; #endif // ENABLE_MESSAGE_DIGEST class Signature; class MetalinkEntry { public: SharedHandle file; std::string version; std::string language; std::string os; std::deque > resources; int maxConnections; #ifdef ENABLE_MESSAGE_DIGEST SharedHandle checksum; SharedHandle chunkChecksum; #endif // ENABLE_MESSAGE_DIGEST private: SharedHandle _signature; public: MetalinkEntry(); ~MetalinkEntry(); MetalinkEntry& operator=(const MetalinkEntry& metalinkEntry); std::string getPath() const; uint64_t getLength() const; SharedHandle getFile() const; void dropUnsupportedResource(); void reorderResourcesByPreference(); void setLocationPreference(const std::deque& locations, int preferenceToAdd); void setProtocolPreference(const std::string& protocol, int preferenceToAdd); static void toFileEntry (std::deque >& fileEntries, const std::deque >& metalinkEntries); void setSignature(const SharedHandle& signature); SharedHandle getSignature() const; }; } // namespace aria2 #endif // _D_METALINK_ENTRY_H_