diff options
author | Enrico Zini <enrico@enricozini.org> | 2009-09-29 15:08:02 +0100 |
---|---|---|
committer | Enrico Zini <enrico@enricozini.org> | 2009-09-29 15:08:02 +0100 |
commit | 006621455482edd8abf46a05292120745f99f7ec (patch) | |
tree | ff1318ccc409a3dd0519035ce2949ac8a48e969e /rep/usr/include/apt-pkg/algorithms.h.gcov.html | |
download | libept-006621455482edd8abf46a05292120745f99f7ec.tar.gz |
Initial import
Diffstat (limited to 'rep/usr/include/apt-pkg/algorithms.h.gcov.html')
-rw-r--r-- | rep/usr/include/apt-pkg/algorithms.h.gcov.html | 204 |
1 files changed, 204 insertions, 0 deletions
diff --git a/rep/usr/include/apt-pkg/algorithms.h.gcov.html b/rep/usr/include/apt-pkg/algorithms.h.gcov.html new file mode 100644 index 0000000..c11132e --- /dev/null +++ b/rep/usr/include/apt-pkg/algorithms.h.gcov.html @@ -0,0 +1,204 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> + +<html lang="en"> + +<head> + <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title>LCOV - lcov.info - /usr/include/apt-pkg/algorithms.h</title> + <link rel="stylesheet" type="text/css" href="../../../gcov.css"> +</head> + +<body> + + <table width="100%" border=0 cellspacing=0 cellpadding=0> + <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> + <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> + + <tr> + <td width="100%"> + <table cellpadding=1 border=0 width="100%"> + <tr> + <td class="headerItem" width="20%">Current view:</td> + <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">usr/include/apt-pkg</a> - algorithms.h</td> + </tr> + <tr> + <td class="headerItem" width="20%">Test:</td> + <td class="headerValue" width="80%" colspan=4>lcov.info</td> + </tr> + <tr> + <td class="headerItem" width="20%">Date:</td> + <td class="headerValue" width="20%">2008-08-14</td> + <td width="20%"></td> + <td class="headerItem" width="20%">Instrumented lines:</td> + <td class="headerValue" width="20%">3</td> + </tr> + <tr> + <td class="headerItem" width="20%">Code covered:</td> + <td class="headerValue" width="20%">66.7 %</td> + <td width="20%"></td> + <td class="headerItem" width="20%">Executed lines:</td> + <td class="headerValue" width="20%">2</td> + </tr> + </table> + </td> + </tr> + <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> + </table> + + <table cellpadding=0 cellspacing=0 border=0> + <tr> + <td><br></td> + </tr> + <tr> + <td><pre class="source"> +<span class="lineNum"> 1 </span> : // -*- mode: cpp; mode: fold -*- +<span class="lineNum"> 2 </span> : // Description /*{{{*/ +<span class="lineNum"> 3 </span> : // $Id: algorithms.h,v 1.10 2001/05/22 04:17:41 jgg Exp $ +<span class="lineNum"> 4 </span> : /* ###################################################################### +<span class="lineNum"> 5 </span> : +<span class="lineNum"> 6 </span> : Algorithms - A set of misc algorithms +<span class="lineNum"> 7 </span> : +<span class="lineNum"> 8 </span> : This simulate class displays what the ordering code has done and +<span class="lineNum"> 9 </span> : analyses it with a fresh new dependency cache. In this way we can +<span class="lineNum"> 10 </span> : see all of the effects of an upgrade run. +<span class="lineNum"> 11 </span> : +<span class="lineNum"> 12 </span> : pkgDistUpgrade computes an upgrade that causes as many packages as +<span class="lineNum"> 13 </span> : possible to move to the newest verison. +<span class="lineNum"> 14 </span> : +<span class="lineNum"> 15 </span> : pkgApplyStatus sets the target state based on the content of the status +<span class="lineNum"> 16 </span> : field in the status file. It is important to get proper crash recovery. +<span class="lineNum"> 17 </span> : +<span class="lineNum"> 18 </span> : pkgFixBroken corrects a broken system so that it is in a sane state. +<span class="lineNum"> 19 </span> : +<span class="lineNum"> 20 </span> : pkgAllUpgrade attempts to upgade as many packages as possible but +<span class="lineNum"> 21 </span> : without installing new packages. +<span class="lineNum"> 22 </span> : +<span class="lineNum"> 23 </span> : The problem resolver class contains a number of complex algorithms +<span class="lineNum"> 24 </span> : to try to best-guess an upgrade state. It solves the problem of +<span class="lineNum"> 25 </span> : maximizing the number of install state packages while having no broken +<span class="lineNum"> 26 </span> : packages. +<span class="lineNum"> 27 </span> : +<span class="lineNum"> 28 </span> : ##################################################################### */ +<span class="lineNum"> 29 </span> : /*}}}*/ +<span class="lineNum"> 30 </span> : #ifndef PKGLIB_ALGORITHMS_H +<span class="lineNum"> 31 </span> : #define PKGLIB_ALGORITHMS_H +<span class="lineNum"> 32 </span> : +<span class="lineNum"> 33 </span> : +<span class="lineNum"> 34 </span> : #include <apt-pkg/packagemanager.h> +<span class="lineNum"> 35 </span> : #include <apt-pkg/depcache.h> +<span class="lineNum"> 36 </span> : #include <apt-pkg/acquire.h> +<span class="lineNum"> 37 </span> : +<span class="lineNum"> 38 </span> : #include <iostream> +<span class="lineNum"> 39 </span> : +<span class="lineNum"> 40 </span> : using std::ostream; +<span class="lineNum"> 41 </span> : +<span class="lineNum"> 42 </span> : class pkgSimulate : public pkgPackageManager +<span class="lineNum"> 43 </span> : { +<span class="lineNum"> 44 </span> : protected: +<span class="lineNum"> 45 </span> : +<span class="lineNum"> 46 </span> : class Policy : public pkgDepCache::Policy +<span class="lineNum"> 47 </span> : { +<span class="lineNum"> 48 </span> : pkgDepCache *Cache; +<span class="lineNum"> 49 </span> : public: +<span class="lineNum"> 50 </span> : +<span class="lineNum"> 51 </span> : virtual VerIterator GetCandidateVer(PkgIterator Pkg) +<span class="lineNum"> 52 </span> : { +<span class="lineNum"> 53 </span> : return (*Cache)[Pkg].CandidateVerIter(*Cache); +<span class="lineNum"> 54 </span> : } +<span class="lineNum"> 55 </span> : +<span class="lineNum"> 56 </span> : Policy(pkgDepCache *Cache) : Cache(Cache) {}; +<span class="lineNum"> 57 </span> : }; +<span class="lineNum"> 58 </span> : +<span class="lineNum"> 59 </span> : unsigned char *Flags; +<span class="lineNum"> 60 </span> : +<span class="lineNum"> 61 </span> : Policy iPolicy; +<span class="lineNum"> 62 </span> : pkgDepCache Sim; +<span class="lineNum"> 63 </span> : +<span class="lineNum"> 64 </span> : // The Actuall installation implementation +<span class="lineNum"> 65 </span> : virtual bool Install(PkgIterator Pkg,string File); +<span class="lineNum"> 66 </span> : virtual bool Configure(PkgIterator Pkg); +<span class="lineNum"> 67 </span> : virtual bool Remove(PkgIterator Pkg,bool Purge); +<span class="lineNum"> 68 </span> : +<span class="lineNum"> 69 </span> : private: +<span class="lineNum"> 70 </span> : void ShortBreaks(); +<span class="lineNum"> 71 </span> : void Describe(PkgIterator iPkg,ostream &out,bool Current,bool Candidate); +<span class="lineNum"> 72 </span> : +<span class="lineNum"> 73 </span> : public: +<span class="lineNum"> 74 </span> : +<span class="lineNum"> 75 </span> : pkgSimulate(pkgDepCache *Cache); +<span class="lineNum"> 76 </span> : }; +<span class="lineNum"> 77 </span> : +<span class="lineNum"> 78 </span> : class pkgProblemResolver +<span class="lineNum"> 79 </span> : { +<span class="lineNum"> 80 </span> : pkgDepCache &Cache; +<span class="lineNum"> 81 </span> : typedef pkgCache::PkgIterator PkgIterator; +<span class="lineNum"> 82 </span> : typedef pkgCache::VerIterator VerIterator; +<span class="lineNum"> 83 </span> : typedef pkgCache::DepIterator DepIterator; +<span class="lineNum"> 84 </span> : typedef pkgCache::PrvIterator PrvIterator; +<span class="lineNum"> 85 </span> : typedef pkgCache::Version Version; +<span class="lineNum"> 86 </span> : typedef pkgCache::Package Package; +<span class="lineNum"> 87 </span> : +<span class="lineNum"> 88 </span> : enum Flags {Protected = (1 << 0), PreInstalled = (1 << 1), +<span class="lineNum"> 89 </span> : Upgradable = (1 << 2), ReInstateTried = (1 << 3), +<span class="lineNum"> 90 </span> : ToRemove = (1 << 4)}; +<span class="lineNum"> 91 </span> : signed short *Scores; +<span class="lineNum"> 92 </span> : unsigned char *Flags; +<span class="lineNum"> 93 </span> : bool Debug; +<span class="lineNum"> 94 </span> : +<span class="lineNum"> 95 </span> : // Sort stuff +<span class="lineNum"> 96 </span> : static pkgProblemResolver *This; +<span class="lineNum"> 97 </span> : static int ScoreSort(const void *a,const void *b); +<span class="lineNum"> 98 </span> : +<span class="lineNum"> 99 </span> : struct PackageKill +<span class="lineNum"> 100 </span> : { +<span class="lineNum"> 101 </span> : PkgIterator Pkg; +<span class="lineNum"> 102 </span> : DepIterator Dep; +<span class="lineNum"> 103 </span> : }; +<span class="lineNum"> 104 </span> : +<span class="lineNum"> 105 </span> : void MakeScores(); +<span class="lineNum"> 106 </span> : bool DoUpgrade(pkgCache::PkgIterator Pkg); +<span class="lineNum"> 107 </span> : +<span class="lineNum"> 108 </span> : public: +<span class="lineNum"> 109 </span> : +<span class="lineNum"> 110 </span><span class="lineCov"> 4 : inline void Protect(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= Protected;};</span> +<span class="lineNum"> 111 </span><span class="lineNoCov"> 0 : inline void Remove(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= ToRemove;};</span> +<span class="lineNum"> 112 </span><span class="lineCov"> 4 : inline void Clear(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] &= ~(Protected | ToRemove);};</span> +<span class="lineNum"> 113 </span> : +<span class="lineNum"> 114 </span> : // Try to intelligently resolve problems by installing and removing packages +<span class="lineNum"> 115 </span> : bool Resolve(bool BrokenFix = false); +<span class="lineNum"> 116 </span> : +<span class="lineNum"> 117 </span> : // Try to resolve problems only by using keep +<span class="lineNum"> 118 </span> : bool ResolveByKeep(); +<span class="lineNum"> 119 </span> : +<span class="lineNum"> 120 </span> : // Install all protected packages +<span class="lineNum"> 121 </span> : void InstallProtect(); +<span class="lineNum"> 122 </span> : +<span class="lineNum"> 123 </span> : pkgProblemResolver(pkgDepCache *Cache); +<span class="lineNum"> 124 </span> : ~pkgProblemResolver(); +<span class="lineNum"> 125 </span> : }; +<span class="lineNum"> 126 </span> : +<span class="lineNum"> 127 </span> : bool pkgDistUpgrade(pkgDepCache &Cache); +<span class="lineNum"> 128 </span> : bool pkgApplyStatus(pkgDepCache &Cache); +<span class="lineNum"> 129 </span> : bool pkgFixBroken(pkgDepCache &Cache); +<span class="lineNum"> 130 </span> : bool pkgAllUpgrade(pkgDepCache &Cache); +<span class="lineNum"> 131 </span> : bool pkgMinimizeUpgrade(pkgDepCache &Cache); +<span class="lineNum"> 132 </span> : +<span class="lineNum"> 133 </span> : void pkgPrioSortList(pkgCache &Cache,pkgCache::Version **List); +<span class="lineNum"> 134 </span> : +<span class="lineNum"> 135 </span> : bool ListUpdate(pkgAcquireStatus &progress, pkgSourceList &List, int PulseInterval=0); +<span class="lineNum"> 136 </span> : +<span class="lineNum"> 137 </span> : #endif +</pre> + </td> + </tr> + </table> + <br> + + <table width="100%" border=0 cellspacing=0 cellpadding=0> + <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> + <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> + </table> + <br> + +</body> +</html> |