403Webshell
Server IP : 216.92.14.13  /  Your IP : 216.73.216.171
Web Server : Apache
System : Linux vps4089.pairvps.com 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64
User : rmlac2fmr ( 1040637)
PHP Version : 8.2.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/include/apt-pkg/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/include/apt-pkg/srcrecords.h
// -*- mode: cpp; mode: fold -*-
// Description								/*{{{*/
/* ######################################################################
   
   Source Package Records - Allows access to source package records
   
   Parses and allows access to the list of source records and searching by
   source name on that list.
   
   ##################################################################### */
									/*}}}*/
#ifndef PKGLIB_SRCRECORDS_H
#define PKGLIB_SRCRECORDS_H

#include <apt-pkg/hashes.h>
#include <apt-pkg/macros.h>

#include <string>
#include <vector>


class pkgSourceList;
class pkgIndexFile;
class APT_PUBLIC pkgSrcRecords
{
   public:

   // Describes a single file
   struct File
   {
      std::string Path;
      std::string Type;
      unsigned long long FileSize;
      HashStringList Hashes;
   };

   // Abstract parser for each source record
   class Parser
   {
      void * const d;
      protected:
      
      const pkgIndexFile *iIndex;
      
      public:

      enum BuildDep {BuildDepend=0x0,BuildDependIndep=0x1,
	             BuildConflict=0x2,BuildConflictIndep=0x3,
	             BuildDependArch=0x4,BuildConflictArch=0x5};

      struct BuildDepRec 
      {
	 std::string Package;
	 std::string Version;
	 unsigned int Op;
	 unsigned char Type;
      };
	
      inline const pkgIndexFile &Index() const {return *iIndex;};
      
      virtual bool Restart() = 0;
      virtual bool Step() = 0;
      virtual bool Jump(unsigned long const &Off) = 0;
      virtual unsigned long Offset() = 0;
      virtual std::string AsStr() = 0;
      
      virtual std::string Package() const = 0;
      virtual std::string Version() const = 0;
      virtual std::string Maintainer() const = 0;
      virtual std::string Section() const = 0;
      virtual const char **Binaries() = 0;   // Ownership does not transfer

      //FIXME: Add a parameter to specify which architecture to use for [wildcard] matching
      virtual bool BuildDepends(std::vector<BuildDepRec> &BuildDeps, bool const &ArchOnly, bool const &StripMultiArch = true) = 0;
      static const char *BuildDepType(unsigned char const &Type) APT_PURE;

      virtual bool Files(std::vector<pkgSrcRecords::File> &F) = 0;

      explicit Parser(const pkgIndexFile *Index);
      virtual ~Parser();
   };
   
   private:
   /** \brief dpointer placeholder (for later in case we need it) */
   void * const d;
   
   // The list of files and the current parser pointer
   std::vector<Parser*> Files;
   std::vector<Parser *>::iterator Current;
   
   public:

   // Reset the search
   bool Restart();

   // Step to the next SourcePackage and return pointer to the 
   // next SourceRecord. The pointer is owned by libapt.
   const Parser* Step();

   // Locate a package by name and return pointer to the Parser.
   // The pointer is owned by libapt.
   Parser* Find(const char *Package,bool const &SrcOnly = false);

   explicit pkgSrcRecords(pkgSourceList &List);
   virtual ~pkgSrcRecords();
};

#endif

Youez - 2016 - github.com/yon3zu
LinuXploit