// -*- mode: cpp; mode: fold -*- // Description /*{{{*/ // $Id: indexrecords.h,v 1.1.2.1 2003/12/24 23:09:17 mdz Exp $ /*}}}*/ #ifndef PKGLIB_INDEXRECORDS_H #define PKGLIB_INDEXRECORDS_H #include #include #include #include #include #ifndef APT_8_CLEANER_HEADERS #include #endif #ifndef APT_10_CLEANER_HEADERS #include #endif class indexRecords { APT_HIDDEN bool parseSumData(const char *&Start, const char *End, std::string &Name, std::string &Hash, unsigned long long &Size); public: struct checkSum; std::string ErrorText; private: enum APT_HIDDEN { ALWAYS_TRUSTED, NEVER_TRUSTED, CHECK_TRUST } Trusted; // dpointer (for later) void * d; protected: std::string Dist; std::string Suite; std::string ExpectedDist; time_t ValidUntil; bool SupportsAcquireByHash; std::map Entries; public: indexRecords(const std::string &ExpectedDist = ""); // Lookup function virtual checkSum *Lookup(const std::string MetaKey); /** \brief tests if a checksum for this file is available */ bool Exists(std::string const &MetaKey) const; std::vector MetaKeys(); virtual bool Load(std::string Filename); virtual bool CheckDist(const std::string MaybeDist) const; std::string GetDist() const; std::string GetSuite() const; bool GetSupportsAcquireByHash() const; time_t GetValidUntil() const; std::string GetExpectedDist() const; /** \brief check if source is marked as always trusted */ bool IsAlwaysTrusted() const; /** \brief check if source is marked as never trusted */ bool IsNeverTrusted() const; /** \brief sets an explicit trust value * * \b true means that the source should always be considered trusted, * while \b false marks a source as always untrusted, even if we have * a valid signature and everything. */ void SetTrusted(bool const Trusted); virtual ~indexRecords(); }; #if __GNUC__ >= 4 // ensure that con- & de-structor don't trigger this warning #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif struct indexRecords::checkSum { std::string MetaKeyFilename; HashStringList Hashes; unsigned long long Size; APT_DEPRECATED HashString Hash; }; #if __GNUC__ >= 4 #pragma GCC diagnostic pop #endif #endif