home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / live / usr / include / apt-pkg / sourcelist.h < prev    next >
C/C++ Source or Header  |  1999-06-21  |  2KB  |  81 lines

  1. // -*- mode: cpp; mode: fold -*-
  2. // Description                                /*{{{*/
  3. // $Id: sourcelist.h,v 1.8 1999/04/07 05:30:18 jgg Exp $
  4. /* ######################################################################
  5.  
  6.    SourceList - Manage a list of sources
  7.    
  8.    The Source List class provides access to a list of sources. It 
  9.    can read them from a file and generate a list of all the distinct
  10.    sources.
  11.    
  12.    All sources have a type associated with them that defines the layout
  13.    of the archive. The exact format of the file is documented in
  14.    files.sgml.
  15.    
  16.    ##################################################################### */
  17.                                     /*}}}*/
  18. // Header section: pkglib
  19. #ifndef PKGLIB_SOURCELIST_H
  20. #define PKGLIB_SOURCELIST_H
  21.  
  22. #include <string>
  23. #include <vector>
  24. #include <iostream.h>
  25. #include <apt-pkg/pkgcache.h>
  26.  
  27. #ifdef __GNUG__
  28. #pragma interface "apt-pkg/sourcelist.h"
  29. #endif
  30.  
  31. class pkgAquire;
  32. class pkgSourceList
  33. {
  34.    public:
  35.    
  36.    /* Each item in the source list, each line can have more than one
  37.       item */
  38.    struct Item
  39.    {
  40.       enum {Deb, DebSrc} Type;
  41.  
  42.       string URI;
  43.       string Dist;
  44.       string Section;
  45.       
  46.       bool SetType(string S);
  47.       bool SetURI(string S);
  48.       string PackagesURI() const;
  49.       string PackagesInfo() const;      
  50.       string ReleaseURI() const;
  51.       string ReleaseInfo() const;
  52.       string SourceInfo(string Pkg,string Ver,string Comp) const;
  53.       string SiteOnly(string URI) const;
  54.       string ArchiveInfo(pkgCache::VerIterator Ver) const;
  55.       string ArchiveURI(string File) const;
  56.    };
  57.    typedef vector<Item>::const_iterator const_iterator;
  58.    
  59.    protected:
  60.    
  61.    vector<Item> List;
  62.    
  63.    public:
  64.  
  65.    bool ReadMainList();
  66.    bool Read(string File);
  67.    
  68.    // List accessors
  69.    inline const_iterator begin() const {return List.begin();};
  70.    inline const_iterator end() const {return List.end();};
  71.    inline unsigned int size() const {return List.size();};
  72.    inline bool empty() const {return List.empty();};
  73.  
  74.    pkgSourceList();
  75.    pkgSourceList(string File);   
  76. };
  77.  
  78. ostream &operator <<(ostream &O,pkgSourceList::Item &Itm);
  79.  
  80. #endif
  81.