X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/b2e465d6d32d2dc884f58b94acb7e35f671a87fe..592d06b6f3c2ef2ae47c38005ae3c4e96a0841f2:/apt-pkg/sourcelist.h diff --git a/apt-pkg/sourcelist.h b/apt-pkg/sourcelist.h index 3a6b274f6..9df0c1d74 100644 --- a/apt-pkg/sourcelist.h +++ b/apt-pkg/sourcelist.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: sourcelist.h,v 1.9 2001/02/20 07:03:17 jgg Exp $ +// $Id: sourcelist.h,v 1.12.2.1 2003/12/24 23:09:17 mdz Exp $ /* ###################################################################### SourceList - Manage a list of sources @@ -14,25 +14,44 @@ files.sgml. The types are mapped through a list of type definitions which handle - the actual construction of the type. After loading a source list all - you have is a list of package index files that have the ability + the actual construction of the back end type. After loading a source + list all you have is a list of package index files that have the ability to be Acquired. + The vendor machanism is similar, except the vendor types are hard + wired. Before loading the source list the vendor list is loaded. + This doesn't load key data, just the checks to perform. + ##################################################################### */ /*}}}*/ #ifndef PKGLIB_SOURCELIST_H #define PKGLIB_SOURCELIST_H +#include +#include +#include + +#include + #include #include -#include -#include - -#ifdef __GNUG__ -#pragma interface "apt-pkg/sourcelist.h" +#include + +#ifndef APT_8_CLEANER_HEADERS +#include #endif +#ifndef APT_8_CLEANER_HEADERS +#include +using std::string; +using std::vector; +#endif + +class FileFd; +class pkgTagSection; +class pkgAcquire; +class pkgIndexFile; +class metaIndex; -class pkgAquire; class pkgSourceList { public: @@ -45,45 +64,61 @@ class pkgSourceList // Global list of Items supported static Type **GlobalList; static unsigned long GlobalListLen; - static Type *GetType(const char *Type); + static Type *GetType(const char *Type) APT_PURE; const char *Name; const char *Label; - bool FixupURI(string &URI) const; - virtual bool ParseLine(vector &List, + bool FixupURI(std::string &URI) const; + virtual bool ParseStanza(std::vector &List, + pkgTagSection &Tags, + int stanza_n, + FileFd &Fd); + virtual bool ParseLine(std::vector &List, const char *Buffer, - unsigned long CurLine,string File) const; - virtual bool CreateItem(vector &List,string URI, - string Dist,string Section) const = 0; - + unsigned long const &CurLine,std::string const &File) const; + virtual bool CreateItem(std::vector &List,std::string const &URI, + std::string const &Dist,std::string const &Section, + std::map const &Options) const = 0; Type(); virtual ~Type() {}; }; - typedef vector::const_iterator const_iterator; + typedef std::vector::const_iterator const_iterator; protected: - - vector List; - + + std::vector SrcList; + + int ParseFileDeb822(std::string File); + bool ParseFileOldStyle(std::string File); + public: bool ReadMainList(); - bool Read(string File); + bool Read(std::string File); + + // CNC:2003-03-03 + void Reset(); + bool ReadAppend(std::string File); + bool ReadSourceDir(std::string Dir); // List accessors - inline const_iterator begin() const {return List.begin();}; - inline const_iterator end() const {return List.end();}; - inline unsigned int size() const {return List.size();}; - inline bool empty() const {return List.empty();}; + inline const_iterator begin() const {return SrcList.begin();}; + inline const_iterator end() const {return SrcList.end();}; + inline unsigned int size() const {return SrcList.size();}; + inline bool empty() const {return SrcList.empty();}; bool FindIndex(pkgCache::PkgFileIterator File, pkgIndexFile *&Found) const; - bool GetIndexes(pkgAcquire *Owner) const; + bool GetIndexes(pkgAcquire *Owner, bool GetAll=false) const; + // query last-modified time + time_t GetLastModifiedTime(); + pkgSourceList(); - pkgSourceList(string File); + pkgSourceList(std::string File); + ~pkgSourceList(); }; #endif