/* */ #ifndef _D_METALINK_ENTRY_H_ #define _D_METALINK_ENTRY_H_ #include "common.h" #include "MetalinkResource.h" #include "Checksum.h" #include "FileEntry.h" #ifdef ENABLE_MESSAGE_DIGEST #include "ChunkChecksum.h" #endif // ENABLE_MESSAGE_DIGEST #include class MetalinkEntry; typedef SharedHandle MetalinkEntryHandle; typedef deque MetalinkEntries; class MetalinkEntry { public: FileEntryHandle file; string version; string language; string os; ChecksumHandle checksum; public: MetalinkResources resources; #ifdef ENABLE_MESSAGE_DIGEST ChunkChecksumHandle chunkChecksum; #endif // ENABLE_MESSAGE_DIGEST public: MetalinkEntry(); ~MetalinkEntry(); MetalinkEntry& operator=(const MetalinkEntry& metalinkEntry) { if(this != &metalinkEntry) { this->file = metalinkEntry.file; this->version = metalinkEntry.version; this->language = metalinkEntry.language; this->os = metalinkEntry.os; this->checksum = metalinkEntry.checksum; #ifdef ENABLE_MESSAGE_DIGEST this->chunkChecksum = metalinkEntry.chunkChecksum; #endif // ENABLE_MESSAGE_DIGEST } return *this; } string getPath() const { return file->getPath(); } int64_t getLength() const { return file->getLength(); } void dropUnsupportedResource(); void reorderResourcesByPreference(); void setLocationPreference(const string& location, int32_t preferenceToAdd); static FileEntries toFileEntry(const MetalinkEntries& metalinkEntries); }; #endif // _D_METALINK_ENTRY_H_