diff options
Diffstat (limited to 'rep/ept/popcon/popcon.h.gcov.html')
| -rw-r--r-- | rep/ept/popcon/popcon.h.gcov.html | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/rep/ept/popcon/popcon.h.gcov.html b/rep/ept/popcon/popcon.h.gcov.html new file mode 100644 index 0000000..270736f --- /dev/null +++ b/rep/ept/popcon/popcon.h.gcov.html @@ -0,0 +1,220 @@ +<!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 - ept/popcon/popcon.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">ept/popcon</a> - popcon.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%">25</td> + </tr> + <tr> + <td class="headerItem" width="20%">Code covered:</td> + <td class="headerValue" width="20%">96.0 %</td> + <td width="20%"></td> + <td class="headerItem" width="20%">Executed lines:</td> + <td class="headerValue" width="20%">24</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: c++; tab-width: 4; indent-tabs-mode: t -*- +<span class="lineNum"> 2 </span> : #ifndef EPT_POPCON_POPCON_H +<span class="lineNum"> 3 </span> : #define EPT_POPCON_POPCON_H +<span class="lineNum"> 4 </span> : +<span class="lineNum"> 5 </span> : /** @file +<span class="lineNum"> 6 </span> : * @author Enrico Zini <enrico@enricozini.org> +<span class="lineNum"> 7 </span> : * Access popcon data +<span class="lineNum"> 8 </span> : */ +<span class="lineNum"> 9 </span> : +<span class="lineNum"> 10 </span> : /* +<span class="lineNum"> 11 </span> : * Copyright (C) 2007 Enrico Zini <enrico@debian.org> +<span class="lineNum"> 12 </span> : * +<span class="lineNum"> 13 </span> : * This program is free software; you can redistribute it and/or modify +<span class="lineNum"> 14 </span> : * it under the terms of the GNU General Public License as published by +<span class="lineNum"> 15 </span> : * the Free Software Foundation; either version 2 of the License, or +<span class="lineNum"> 16 </span> : * (at your option) any later version. +<span class="lineNum"> 17 </span> : * +<span class="lineNum"> 18 </span> : * This program is distributed in the hope that it will be useful, +<span class="lineNum"> 19 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of +<span class="lineNum"> 20 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +<span class="lineNum"> 21 </span> : * GNU General Public License for more details. +<span class="lineNum"> 22 </span> : * +<span class="lineNum"> 23 </span> : * You should have received a copy of the GNU General Public License +<span class="lineNum"> 24 </span> : * along with this program; if not, write to the Free Software +<span class="lineNum"> 25 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +<span class="lineNum"> 26 </span> : */ +<span class="lineNum"> 27 </span> : +<span class="lineNum"> 28 </span> : #include <tagcoll/diskindex/mmap.h> +<span class="lineNum"> 29 </span> : #include <string> +<span class="lineNum"> 30 </span> : +<span class="lineNum"> 31 </span> : namespace ept { +<span class="lineNum"> 32 </span> : namespace apt { +<span class="lineNum"> 33 </span> : class Apt; +<span class="lineNum"> 34 </span> : } +<span class="lineNum"> 35 </span> : +<span class="lineNum"> 36 </span> : namespace popcon { +<span class="lineNum"> 37 </span> : +<span class="lineNum"> 38 </span> : /** +<span class="lineNum"> 39 </span> : * Store the score information in the popcon cache. +<span class="lineNum"> 40 </span> : * +<span class="lineNum"> 41 </span> : * Currently, this is only one float; more can be added in the future. +<span class="lineNum"> 42 </span> : */ +<span class="lineNum"> 43 </span> : class Score +<span class="lineNum"> 44 </span> : { +<span class="lineNum"> 45 </span> : protected: +<span class="lineNum"> 46 </span> : unsigned offset; +<span class="lineNum"> 47 </span> : +<span class="lineNum"> 48 </span> : public: +<span class="lineNum"> 49 </span> : float score; +<span class="lineNum"> 50 </span> : +<span class="lineNum"> 51 </span><span class="lineCov"> 69910 : Score(float score) : offset(offset), score(score) {}</span> +<span class="lineNum"> 52 </span> : +<span class="lineNum"> 53 </span> : friend class Popcon; +<span class="lineNum"> 54 </span> : friend class PopconIndexer; +<span class="lineNum"> 55 </span> : friend class PopconGenerator; +<span class="lineNum"> 56 </span> : }; +<span class="lineNum"> 57 </span> : +<span class="lineNum"> 58 </span> : /** +<span class="lineNum"> 59 </span> : * Maps Packages to IDs and vice-versa. +<span class="lineNum"> 60 </span> : * +<span class="lineNum"> 61 </span> : * This is used in building the Debtags fast index, which works representing +<span class="lineNum"> 62 </span> : * tags and packages as int IDs. +<span class="lineNum"> 63 </span> : * +<span class="lineNum"> 64 </span> : * Index building works like this: +<span class="lineNum"> 65 </span> : * 1. The file all-popcon-results.txt.gz is downloaded from +<span class="lineNum"> 66 </span> : * http://popcon.debian.org/all-popcon-results.txt.gz +<span class="lineNum"> 67 </span> : * 2. The file is put in either ~/.popcon/all-popcon-results.txt.gz +<span class="lineNum"> 68 </span> : * or in /var/lib/popcon/all-popcon-results.txt.gz +<span class="lineNum"> 69 </span> : * 3. If the file is newer than the index, it will be automatically used to +<span class="lineNum"> 70 </span> : * recompute the scores and rebuild the index. +<span class="lineNum"> 71 </span> : */ +<span class="lineNum"> 72 </span> : class Popcon : public tagcoll::diskindex::MMap +<span class="lineNum"> 73 </span><span class="lineCov"> 7 : {</span> +<span class="lineNum"> 74 </span> : struct GeneralInfo : public tagcoll::diskindex::MMap +<span class="lineNum"> 75 </span><span class="lineCov"> 7 : {</span> +<span class="lineNum"> 76 </span> : size_t submissions() const; +<span class="lineNum"> 77 </span> : }; +<span class="lineNum"> 78 </span> : +<span class="lineNum"> 79 </span> : tagcoll::diskindex::MasterMMap mastermmap; +<span class="lineNum"> 80 </span> : time_t m_timestamp; +<span class="lineNum"> 81 </span> : +<span class="lineNum"> 82 </span> : GeneralInfo m_info; +<span class="lineNum"> 83 </span> : +<span class="lineNum"> 84 </span> : /// Get the score structure by index +<span class="lineNum"> 85 </span><span class="lineCov"> 102350 : const Score* structByIndex(size_t idx) const</span> +<span class="lineNum"> 86 </span> : { +<span class="lineNum"> 87 </span><span class="lineCov"> 102350 : if (idx >= 0 && idx < size())</span> +<span class="lineNum"> 88 </span><span class="lineCov"> 102350 : return (Score*)m_buf + idx;</span> +<span class="lineNum"> 89 </span><span class="lineNoCov"> 0 : return 0;</span> +<span class="lineNum"> 90 </span> : } +<span class="lineNum"> 91 </span> : +<span class="lineNum"> 92 </span> : public: +<span class="lineNum"> 93 </span> : Popcon(); +<span class="lineNum"> 94 </span> : +<span class="lineNum"> 95 </span> : /// Get the timestamp of when the index was last updated +<span class="lineNum"> 96 </span><span class="lineCov"> 1 : time_t timestamp() const { return m_timestamp; }</span> +<span class="lineNum"> 97 </span> : +<span class="lineNum"> 98 </span> : /// Return true if this data source has data, false if it's empty +<span class="lineNum"> 99 </span><span class="lineCov"> 1 : bool hasData() const { return m_timestamp != 0; }</span> +<span class="lineNum"> 100 </span> : +<span class="lineNum"> 101 </span> : /// Return the total number of popcon submissions +<span class="lineNum"> 102 </span><span class="lineCov"> 3 : size_t submissions() const { return m_info.submissions(); }</span> +<span class="lineNum"> 103 </span> : +<span class="lineNum"> 104 </span> : /// Get the number of packages in the index +<span class="lineNum"> 105 </span><span class="lineCov"> 174055 : size_t size() const</span> +<span class="lineNum"> 106 </span> : { +<span class="lineNum"> 107 </span><span class="lineCov"> 174055 : if (m_buf)</span> +<span class="lineNum"> 108 </span><span class="lineCov"> 174053 : return ((Score*)m_buf)->offset / sizeof(Score);</span> +<span class="lineNum"> 109 </span> : else +<span class="lineNum"> 110 </span><span class="lineCov"> 2 : return 0;</span> +<span class="lineNum"> 111 </span> : } +<span class="lineNum"> 112 </span> : +<span class="lineNum"> 113 </span> : /** +<span class="lineNum"> 114 </span> : * Get a package name by index +<span class="lineNum"> 115 </span> : * +<span class="lineNum"> 116 </span> : * If the index is not valid, returns the empty string. +<span class="lineNum"> 117 </span> : */ +<span class="lineNum"> 118 </span><span class="lineCov"> 30678 : std::string name(size_t idx) const</span> +<span class="lineNum"> 119 </span> : { +<span class="lineNum"> 120 </span><span class="lineCov"> 30678 : const Score* s = structByIndex(idx);</span> +<span class="lineNum"> 121 </span><span class="lineCov"> 30678 : if (s == 0) return std::string();</span> +<span class="lineNum"> 122 </span><span class="lineCov"> 30678 : return std::string(m_buf + s->offset);</span> +<span class="lineNum"> 123 </span> : } +<span class="lineNum"> 124 </span> : +<span class="lineNum"> 125 </span> : /// Get the score by index +<span class="lineNum"> 126 </span><span class="lineCov"> 71672 : float scoreByIndex(size_t idx) const</span> +<span class="lineNum"> 127 </span> : { +<span class="lineNum"> 128 </span><span class="lineCov"> 71672 : const Score* s = structByIndex(idx);</span> +<span class="lineNum"> 129 </span><span class="lineCov"> 71672 : if (!s) return 0;</span> +<span class="lineNum"> 130 </span><span class="lineCov"> 71672 : return s->score;</span> +<span class="lineNum"> 131 </span> : } +<span class="lineNum"> 132 </span> : +<span class="lineNum"> 133 </span> : /// Get the score structure by package name +<span class="lineNum"> 134 </span> : float scoreByName(const std::string& name) const; +<span class="lineNum"> 135 </span> : +<span class="lineNum"> 136 </span> : /// Get the score by index +<span class="lineNum"> 137 </span><span class="lineCov"> 71672 : float score(size_t idx) const { return scoreByIndex(idx); }</span> +<span class="lineNum"> 138 </span> : +<span class="lineNum"> 139 </span> : /// Get the score by index +<span class="lineNum"> 140 </span> : float operator[](int idx) const { return scoreByIndex(idx); } +<span class="lineNum"> 141 </span> : +<span class="lineNum"> 142 </span> : /// Get the score by name +<span class="lineNum"> 143 </span><span class="lineCov"> 1790 : float score(const std::string& name) const { return scoreByName(name); }</span> +<span class="lineNum"> 144 </span> : +<span class="lineNum"> 145 </span> : /// Get the score structure by package name +<span class="lineNum"> 146 </span><span class="lineCov"> 2 : float operator[](const std::string& name) const { return scoreByName(name); }</span> +<span class="lineNum"> 147 </span> : }; +<span class="lineNum"> 148 </span> : +<span class="lineNum"> 149 </span> : } +<span class="lineNum"> 150 </span> : } +<span class="lineNum"> 151 </span> : +<span class="lineNum"> 152 </span> : // vim:set ts=4 sw=4: +<span class="lineNum"> 153 </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> |
