]>
git.saurik.com Git - apt.git/blob - apt-pkg/srcrecords.h
58a5e242fda88ed24b8b4ac61a5a30921f96a65e
   1 // -*- mode: cpp; mode: fold -*- 
   3 // $Id: srcrecords.h,v 1.8.2.1 2003/12/26 16:27:34 mdz Exp $ 
   4 /* ###################################################################### 
   6    Source Package Records - Allows access to source package records 
   8    Parses and allows access to the list of source records and searching by 
   9    source name on that list. 
  11    ##################################################################### */ 
  13 #ifndef PKGLIB_SRCRECORDS_H 
  14 #define PKGLIB_SRCRECORDS_H 
  16 #include <apt-pkg/macros.h> 
  21 #ifndef APT_8_CLEANER_HEADERS 
  32    // Describes a single file 
  42    // Abstract parser for each source record 
  47       const pkgIndexFile 
*iIndex
; 
  51       enum BuildDep 
{BuildDepend
=0x0,BuildDependIndep
=0x1, 
  52                      BuildConflict
=0x2,BuildConflictIndep
=0x3}; 
  62       inline const pkgIndexFile 
&Index() const {return *iIndex
;}; 
  64       virtual bool Restart() = 0; 
  65       virtual bool Step() = 0; 
  66       virtual bool Jump(unsigned long const &Off
) = 0; 
  67       virtual unsigned long Offset() = 0; 
  68       virtual std::string 
AsStr() = 0; 
  70       virtual std::string 
Package() const = 0; 
  71       virtual std::string 
Version() const = 0; 
  72       virtual std::string 
Maintainer() const = 0; 
  73       virtual std::string 
Section() const = 0; 
  74       virtual const char **Binaries() = 0;   // Ownership does not transfer 
  76       //FIXME: Add a parameter to specify which architecture to use for [wildcard] matching 
  77       virtual bool BuildDepends(std::vector
<BuildDepRec
> &BuildDeps
, bool const &ArchOnly
, bool const &StripMultiArch 
= true) = 0; 
  78       static const char *BuildDepType(unsigned char const &Type
) APT_PURE
; 
  80       virtual bool Files(std::vector
<pkgSrcRecords::File
> &F
) = 0; 
  82       Parser(const pkgIndexFile 
*Index
) : iIndex(Index
) {}; 
  87    /** \brief dpointer placeholder (for later in case we need it) */ 
  90    // The list of files and the current parser pointer 
  91    std::vector
<Parser
*> Files
; 
  92    std::vector
<Parser 
*>::iterator Current
; 
  99    // Locate a package by name 
 100    Parser 
*Find(const char *Package
,bool const &SrcOnly 
= false); 
 102    pkgSrcRecords(pkgSourceList 
&List
); 
 103    virtual ~pkgSrcRecords();