diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2017-06-21 22:01:46 +0300 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2017-06-21 22:03:32 +0300 |
commit | 9a9a8b3291447aa168876e13768a68db32193f34 (patch) | |
tree | e9e0b2911ff3d928435b5a96e5c732964e88647e /rep/usr/include/tagcoll-2.0.11/tagcoll/coll | |
parent | de77415e8000cbc94c3d345fefb710c65428896d (diff) | |
parent | c5dd516802af50f8e369e9f520b88dcf28dc77df (diff) | |
download | libept-9a9a8b3291447aa168876e13768a68db32193f34.tar.gz |
Merge git://git.debian.org/git/debtags/libept
Diffstat (limited to 'rep/usr/include/tagcoll-2.0.11/tagcoll/coll')
8 files changed, 0 insertions, 2109 deletions
diff --git a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/base.h.gcov.html b/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/base.h.gcov.html deleted file mode 100644 index 99bba0c..0000000 --- a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/base.h.gcov.html +++ /dev/null @@ -1,400 +0,0 @@ -<!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/tagcoll-2.0.11/tagcoll/coll/base.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/tagcoll-2.0.11/tagcoll/coll</a> - base.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%">11</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">100.0 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">11</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> : #ifndef TAGCOLL_COLL_BASE_H -<span class="lineNum"> 2 </span> : #define TAGCOLL_COLL_BASE_H -<span class="lineNum"> 3 </span> : -<span class="lineNum"> 4 </span> : /** \file -<span class="lineNum"> 5 </span> : * Base mixins for tagged collections -<span class="lineNum"> 6 </span> : */ -<span class="lineNum"> 7 </span> : -<span class="lineNum"> 8 </span> : /* -<span class="lineNum"> 9 </span> : * Copyright (C) 2003,2004,2005,2006 Enrico Zini <enrico@debian.org> -<span class="lineNum"> 10 </span> : * -<span class="lineNum"> 11 </span> : * This library is free software; you can redistribute it and/or -<span class="lineNum"> 12 </span> : * modify it under the terms of the GNU Lesser General Public -<span class="lineNum"> 13 </span> : * License as published by the Free Software Foundation; either -<span class="lineNum"> 14 </span> : * version 2.1 of the License, or (at your option) any later version. -<span class="lineNum"> 15 </span> : * -<span class="lineNum"> 16 </span> : * This library is distributed in the hope that it will be useful, -<span class="lineNum"> 17 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of -<span class="lineNum"> 18 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -<span class="lineNum"> 19 </span> : * Lesser General Public License for more details. -<span class="lineNum"> 20 </span> : * -<span class="lineNum"> 21 </span> : * You should have received a copy of the GNU Lesser General Public -<span class="lineNum"> 22 </span> : * License along with this library; if not, write to the Free Software -<span class="lineNum"> 23 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -<span class="lineNum"> 24 </span> : */ -<span class="lineNum"> 25 </span> : -<span class="lineNum"> 26 </span> : #include <wibble/mixin.h> -<span class="lineNum"> 27 </span> : #include <vector> -<span class="lineNum"> 28 </span> : -<span class="lineNum"> 29 </span> : namespace std { -<span class="lineNum"> 30 </span> : template<typename A, typename B> class pair; -<span class="lineNum"> 31 </span> : } -<span class="lineNum"> 32 </span> : -<span class="lineNum"> 33 </span> : namespace tagcoll { -<span class="lineNum"> 34 </span> : namespace coll { -<span class="lineNum"> 35 </span> : -<span class="lineNum"> 36 </span> : template<typename T> -<span class="lineNum"> 37 </span> : class coll_traits; -<span class="lineNum"> 38 </span> : -<span class="lineNum"> 39 </span> : /** -<span class="lineNum"> 40 </span> : * Interface for all collections of tagged items. -<span class="lineNum"> 41 </span> : * -<span class="lineNum"> 42 </span> : * \note The point of a collection is to track the tags attached to items, and -<span class="lineNum"> 43 </span> : * not to store the items themselves. This means that collections are not -<span class="lineNum"> 44 </span> : * required to keep track of items with no tags. -<span class="lineNum"> 45 </span> : */ -<span class="lineNum"> 46 </span> : template<typename Self> -<span class="lineNum"> 47 </span> : class ReadonlyCollection -<span class="lineNum"> 48 </span><span class="lineCov"> 37 : {</span> -<span class="lineNum"> 49 </span><span class="lineCov"> 84611 : const Self& self() const { return *static_cast<const Self*>(this); }</span> -<span class="lineNum"> 50 </span> : -<span class="lineNum"> 51 </span> : class CardinalityOrder -<span class="lineNum"> 52 </span> : { -<span class="lineNum"> 53 </span> : const Self& coll; -<span class="lineNum"> 54 </span> : public: -<span class="lineNum"> 55 </span> : CardinalityOrder(const Self& coll) : coll(coll) {} -<span class="lineNum"> 56 </span> : bool operator()(const typename coll_traits<Self>::tag_type& t1, const typename coll_traits<Self>::tag_type& t2) -<span class="lineNum"> 57 </span> : { -<span class="lineNum"> 58 </span> : // Returns true if t1 precedes t2, and false otherwise -<span class="lineNum"> 59 </span> : return coll.getCardinality(t1) < coll.getCardinality(t2); -<span class="lineNum"> 60 </span> : } -<span class="lineNum"> 61 </span> : }; -<span class="lineNum"> 62 </span> : -<span class="lineNum"> 63 </span> : class DiscriminanceOrder -<span class="lineNum"> 64 </span> : { -<span class="lineNum"> 65 </span> : const Self& coll; -<span class="lineNum"> 66 </span> : public: -<span class="lineNum"> 67 </span> : DiscriminanceOrder(const Self& coll) : coll(coll) {} -<span class="lineNum"> 68 </span> : bool operator()(const typename coll_traits<Self>::tag_type& t1, const typename coll_traits<Self>::tag_type& t2) -<span class="lineNum"> 69 </span> : { -<span class="lineNum"> 70 </span> : // Returns true if t1 precedes t2, and false otherwise -<span class="lineNum"> 71 </span> : return coll.getDiscriminance(t1) < coll.getDiscriminance(t2); -<span class="lineNum"> 72 </span> : } -<span class="lineNum"> 73 </span> : }; -<span class="lineNum"> 74 </span> : -<span class="lineNum"> 75 </span> : template<typename COLL> -<span class="lineNum"> 76 </span> : class RelevanceOrder -<span class="lineNum"> 77 </span> : { -<span class="lineNum"> 78 </span> : const COLL& first; -<span class="lineNum"> 79 </span> : const Self& second; -<span class="lineNum"> 80 </span> : public: -<span class="lineNum"> 81 </span> : RelevanceOrder(const COLL& first, const Self& second) -<span class="lineNum"> 82 </span> : : first(first), second(second) {} -<span class="lineNum"> 83 </span> : bool operator()(const typename coll_traits<Self>::tag_type& t1, const typename coll_traits<Self>::tag_type& t2); -<span class="lineNum"> 84 </span> : }; -<span class="lineNum"> 85 </span> : -<span class="lineNum"> 86 </span> : /** -<span class="lineNum"> 87 </span> : * Get the items which are tagged with at least the tag `tag' -<span class="lineNum"> 88 </span> : * -<span class="lineNum"> 89 </span> : * \return -<span class="lineNum"> 90 </span> : * The items found, or an empty set if no items have that tag -<span class="lineNum"> 91 </span> : */ -<span class="lineNum"> 92 </span> : //virtual std::set<ITEM> getItemsHavingTag(const TAG& tag) const = 0; -<span class="lineNum"> 93 </span> : -<span class="lineNum"> 94 </span> : /** -<span class="lineNum"> 95 </span> : * Get the tags attached to an item. -<span class="lineNum"> 96 </span> : * -<span class="lineNum"> 97 </span> : * \param item -<span class="lineNum"> 98 </span> : * The item to query -<span class="lineNum"> 99 </span> : * \return -<span class="lineNum"> 100 </span> : * The set of tags, or an empty set if the item has no tags or it does -<span class="lineNum"> 101 </span> : * not exist. -<span class="lineNum"> 102 </span> : */ -<span class="lineNum"> 103 </span> : //virtual std::set<TAG> getTagsOfItem(const ITEM& item) const = 0; -<span class="lineNum"> 104 </span> : -<span class="lineNum"> 105 </span> : public: -<span class="lineNum"> 106 </span> : /** -<span class="lineNum"> 107 </span> : * Check if the collection contains a tag -<span class="lineNum"> 108 </span> : * -<span class="lineNum"> 109 </span> : * \param tag -<span class="lineNum"> 110 </span> : * The tag to look for -<span class="lineNum"> 111 </span> : * \return -<span class="lineNum"> 112 </span> : * true if the collection contains tag, false otherwise -<span class="lineNum"> 113 </span> : */ -<span class="lineNum"> 114 </span> : bool hasTag(const typename coll_traits<Self>::tag_type& tag) const; -<span class="lineNum"> 115 </span> : -<span class="lineNum"> 116 </span> : /** -<span class="lineNum"> 117 </span> : * Get the tags of item `item'. Return an empty set if `item' does not exist -<span class="lineNum"> 118 </span> : */ -<span class="lineNum"> 119 </span> : //std::set<Self::tag_type> getTags(const typename Self::item_type& item) const = 0; -<span class="lineNum"> 120 </span> : -<span class="lineNum"> 121 </span> : /** -<span class="lineNum"> 122 </span> : * Get all the tags attached to the items in a set. -<span class="lineNum"> 123 </span> : * -<span class="lineNum"> 124 </span> : * \param items -<span class="lineNum"> 125 </span> : * The items to query -<span class="lineNum"> 126 </span> : * \return -<span class="lineNum"> 127 </span> : * The set of tags, or an empty set if the items have no tags or do not -<span class="lineNum"> 128 </span> : * exist. -<span class="lineNum"> 129 </span> : */ -<span class="lineNum"> 130 </span> : template<typename ITEMS> -<span class="lineNum"> 131 </span> : typename coll_traits<Self>::tagset_type getTagsOfItems(const ITEMS& items) const; -<span class="lineNum"> 132 </span> : -<span class="lineNum"> 133 </span> : /** -<span class="lineNum"> 134 </span> : * Get the items with tag `tag'. Return an empty set if `tag' does not exist -<span class="lineNum"> 135 </span> : */ -<span class="lineNum"> 136 </span> : //std::set<typename Self::item_type> getItems(const TAG& tag) const { return getItemsHavingTag(tag); } -<span class="lineNum"> 137 </span> : -<span class="lineNum"> 138 </span> : /** -<span class="lineNum"> 139 </span> : * Get the items which are tagged with at least the tags `tags' -<span class="lineNum"> 140 </span> : * -<span class="lineNum"> 141 </span> : * \return -<span class="lineNum"> 142 </span> : * The items found, or an empty set if no items have that tag -<span class="lineNum"> 143 </span> : */ -<span class="lineNum"> 144 </span> : template<typename TAGS> -<span class="lineNum"> 145 </span><span class="lineCov"> 2 : typename coll_traits<Self>::itemset_type getItemsHavingTags(const TAGS& tags) const;</span> -<span class="lineNum"> 146 </span> : -<span class="lineNum"> 147 </span> : /** -<span class="lineNum"> 148 </span> : * Get the set of all the items that have tags according to this collection -<span class="lineNum"> 149 </span> : */ -<span class="lineNum"> 150 </span> : //virtual std::set<Self::item_type> getTaggedItems() const = 0; -<span class="lineNum"> 151 </span> : -<span class="lineNum"> 152 </span> : /** -<span class="lineNum"> 153 </span> : * Get the set of all the tags in this collection -<span class="lineNum"> 154 </span> : */ -<span class="lineNum"> 155 </span> : //virtual std::set<Self::tag_type> getAllTags() const = 0; -<span class="lineNum"> 156 </span> : -<span class="lineNum"> 157 </span> : /** -<span class="lineNum"> 158 </span> : * Get all the tags in the collectin, as a vector -<span class="lineNum"> 159 </span> : */ -<span class="lineNum"> 160 </span> : std::vector<typename coll_traits<Self>::tag_type> getAllTagsAsVector() const; -<span class="lineNum"> 161 </span> : -<span class="lineNum"> 162 </span> : /** -<span class="lineNum"> 163 </span> : * Get the cardinality of tag `tag' (that is, the number of items who have it) -<span class="lineNum"> 164 </span> : */ -<span class="lineNum"> 165 </span> : unsigned int getCardinality(const typename coll_traits<Self>::tag_type& tag) const; -<span class="lineNum"> 166 </span> : -<span class="lineNum"> 167 </span> : /** -<span class="lineNum"> 168 </span> : * Return the discriminance value for this tag, that is, the minimum number -<span class="lineNum"> 169 </span> : * of packages that would be eliminated by selecting only those tagged with -<span class="lineNum"> 170 </span> : * this tag or only those not tagged with this tag. -<span class="lineNum"> 171 </span> : */ -<span class="lineNum"> 172 </span> : unsigned int getDiscriminance(const typename coll_traits<Self>::tag_type& tag) const -<span class="lineNum"> 173 </span> : { -<span class="lineNum"> 174 </span> : return self().getCardinality(tag) < self().tagCount() - self().getCardinality(tag) ? -<span class="lineNum"> 175 </span> : self().getCardinality(tag) : -<span class="lineNum"> 176 </span> : self().tagCount() - self().getCardinality(tag); -<span class="lineNum"> 177 </span> : } -<span class="lineNum"> 178 </span> : -<span class="lineNum"> 179 </span> : /** -<span class="lineNum"> 180 </span> : * Get the set of all tags in this collection that appear in tagsets -<span class="lineNum"> 181 </span> : * containing `tags' -<span class="lineNum"> 182 </span> : * -<span class="lineNum"> 183 </span> : * Example: -<span class="lineNum"> 184 </span> : * \code -<span class="lineNum"> 185 </span> : * void refineSelection(const std::set<Tag>& selection) -<span class="lineNum"> 186 </span> : * { -<span class="lineNum"> 187 </span> : * std::set<Tag> extraTags = collection.getCompanionTags(selection); -<span class="lineNum"> 188 </span> : * tagMenu.setAvailableOptions(extraTags); -<span class="lineNum"> 189 </span> : * } -<span class="lineNum"> 190 </span> : * \endcode -<span class="lineNum"> 191 </span> : */ -<span class="lineNum"> 192 </span> : template<typename TAGS> -<span class="lineNum"> 193 </span> : typename coll_traits<Self>::tagset_type getCompanionTags(const TAGS& tags) const; -<span class="lineNum"> 194 </span> : -<span class="lineNum"> 195 </span> : /** -<span class="lineNum"> 196 </span> : * Get the related items at the given maximum distance -<span class="lineNum"> 197 </span> : * -<span class="lineNum"> 198 </span> : * Examples: -<span class="lineNum"> 199 </span> : * \code -<span class="lineNum"> 200 </span> : * // Get the items related to a given one, at the given distance -<span class="lineNum"> 201 </span> : * std::set<Item> getRelated(const Item& item, int distance) -<span class="lineNum"> 202 </span> : * { -<span class="lineNum"> 203 </span> : * std::set<Item> res = collection.getRelatedItems(collection.getTags(item), distance); -<span class="lineNum"> 204 </span> : * return res - item; -<span class="lineNum"> 205 </span> : * } -<span class="lineNum"> 206 </span> : * -<span class="lineNum"> 207 </span> : * // Get the items related to the given ones, at the given distance -<span class="lineNum"> 208 </span> : * std::set<Item> getRelated(const std::set<Item>& items, int distance) -<span class="lineNum"> 209 </span> : * { -<span class="lineNum"> 210 </span> : * std::set<Item> res = collection.getRelatedItems(collection.getTags(items), distance); -<span class="lineNum"> 211 </span> : * return res - items; -<span class="lineNum"> 212 </span> : * } -<span class="lineNum"> 213 </span> : * -<span class="lineNum"> 214 </span> : * // Get the related items, increasing the distance until it finds at -<span class="lineNum"> 215 </span> : * // least 'minimum' items -<span class="lineNum"> 216 </span> : * std::set<Item> getRelated(const Item& item, int minimum) -<span class="lineNum"> 217 </span> : * { -<span class="lineNum"> 218 </span> : * std::set<Tag> tags = collection.getTags(item); -<span class="lineNum"> 219 </span> : * std::set<Item> res; -<span class="lineNum"> 220 </span> : * for (int i = 0; i < tags.size() && res.size() < minimum; i++) -<span class="lineNum"> 221 </span> : * res += collection.getRelatedItems(tags, i); -<span class="lineNum"> 222 </span> : * return res - item; -<span class="lineNum"> 223 </span> : * } -<span class="lineNum"> 224 </span> : * \endcode -<span class="lineNum"> 225 </span> : */ -<span class="lineNum"> 226 </span> : template<typename TAGS> -<span class="lineNum"> 227 </span> : typename coll_traits<Self>::itemset_type getRelatedItems(const TAGS& tags, int maxdistance = 1) const; -<span class="lineNum"> 228 </span> : -<span class="lineNum"> 229 </span> : /** -<span class="lineNum"> 230 </span> : * Output all the contents of the collection to an output iterator -<span class="lineNum"> 231 </span> : */ -<span class="lineNum"> 232 </span> : template<typename OUT> -<span class="lineNum"> 233 </span><span class="lineCov"> 5 : void output(OUT out) const;</span> -<span class="lineNum"> 234 </span> : -<span class="lineNum"> 235 </span> : /** -<span class="lineNum"> 236 </span> : * Send to a consumer all the items which are tagged with at least the -<span class="lineNum"> 237 </span> : * given tags -<span class="lineNum"> 238 </span> : */ -<span class="lineNum"> 239 </span> : template<typename TAGS, typename OUT> -<span class="lineNum"> 240 </span> : void outputHavingTags(const TAGS& tags, OUT out) const; -<span class="lineNum"> 241 </span> : -<span class="lineNum"> 242 </span> : /** -<span class="lineNum"> 243 </span> : * Get a vector containing all tags in this collection, sorted by -<span class="lineNum"> 244 </span> : * increasing cardinality -<span class="lineNum"> 245 </span> : */ -<span class="lineNum"> 246 </span> : std::vector<typename coll_traits<Self>::tag_type> tagsInCardinalityOrder() const; -<span class="lineNum"> 247 </span> : -<span class="lineNum"> 248 </span> : /** -<span class="lineNum"> 249 </span> : * Get a vector containing all tags in this collection, sorted by -<span class="lineNum"> 250 </span> : * increasing discriminance value (@see getDiscriminance) -<span class="lineNum"> 251 </span> : */ -<span class="lineNum"> 252 </span> : std::vector<typename coll_traits<Self>::tag_type> tagsInDiscriminanceOrder() const; -<span class="lineNum"> 253 </span> : -<span class="lineNum"> 254 </span> : /** -<span class="lineNum"> 255 </span> : * Get a vector containing all tags in this collection, sorted by -<span class="lineNum"> 256 </span> : * increasing relevance to the filtering applied between coll and this -<span class="lineNum"> 257 </span> : * collection -<span class="lineNum"> 258 </span> : */ -<span class="lineNum"> 259 </span> : template<typename COLL> -<span class="lineNum"> 260 </span> : std::vector<typename coll_traits<Self>::tag_type> tagsInRelevanceOrder(const COLL& coll) const; -<span class="lineNum"> 261 </span> : }; -<span class="lineNum"> 262 </span> : -<span class="lineNum"> 263 </span> : -<span class="lineNum"> 264 </span> : /** -<span class="lineNum"> 265 </span> : * Interface for all collections of tagged items. -<span class="lineNum"> 266 </span> : * -<span class="lineNum"> 267 </span> : * \note The point of a collection is to track the tags attached to items, and -<span class="lineNum"> 268 </span> : * not to store the items themselves. This means that collections are not -<span class="lineNum"> 269 </span> : * required to keep track of items with no tags. -<span class="lineNum"> 270 </span> : */ -<span class="lineNum"> 271 </span> : template<typename Self> -<span class="lineNum"> 272 </span> : class Collection : public ReadonlyCollection<Self> -<span class="lineNum"> 273 </span><span class="lineCov"> 27 : {</span> -<span class="lineNum"> 274 </span> : //protected: -<span class="lineNum"> 275 </span> : /* -<span class="lineNum"> 276 </span> : * Implementation note: to avoid problems with classes implementing only -<span class="lineNum"> 277 </span> : * some of the virtual methods, they are given different names. The common -<span class="lineNum"> 278 </span> : * 'comsume' methods are just inlined calls to the right virtual functions, -<span class="lineNum"> 279 </span> : * and are a way of keeping the unoverridden methods from being hidden. -<span class="lineNum"> 280 </span> : */ -<span class="lineNum"> 281 </span> : -<span class="lineNum"> 282 </span> : //void consumeItemUntagged(const ITEM&) {} -<span class="lineNum"> 283 </span> : //void consumeItemsUntagged(const std::set<ITEM>&) {} -<span class="lineNum"> 284 </span> : -<span class="lineNum"> 285 </span> : public: -<span class="lineNum"> 286 </span> : //virtual ~Collection() {} -<span class="lineNum"> 287 </span> : -<span class="lineNum"> 288 </span> : /** -<span class="lineNum"> 289 </span> : * Apply a patch to the collection -<span class="lineNum"> 290 </span> : * -<span class="lineNum"> 291 </span> : * Example: -<span class="lineNum"> 292 </span> : * \code -<span class="lineNum"> 293 </span> : * void perform(const PatchList<ITEM, TAG>& change) -<span class="lineNum"> 294 </span> : * { -<span class="lineNum"> 295 </span> : * collection.applyChange(change); -<span class="lineNum"> 296 </span> : * undo.push_back(change.getReverse()); -<span class="lineNum"> 297 </span> : * } -<span class="lineNum"> 298 </span> : * \endcode -<span class="lineNum"> 299 </span> : */ -<span class="lineNum"> 300 </span> : // void applyChange( -<span class="lineNum"> 301 </span> : // const PatchList< -<span class="lineNum"> 302 </span> : // typename coll_traits<Self>::item_type, -<span class="lineNum"> 303 </span> : // typename coll_traits<Self>::tag_type>& change); -<span class="lineNum"> 304 </span> : }; -<span class="lineNum"> 305 </span> : -<span class="lineNum"> 306 </span> : -<span class="lineNum"> 307 </span> : template<typename COLL> -<span class="lineNum"> 308 </span> : class Inserter : public wibble::mixin::OutputIterator< Inserter<COLL> > -<span class="lineNum"> 309 </span> : { -<span class="lineNum"> 310 </span> : COLL& coll; -<span class="lineNum"> 311 </span> : -<span class="lineNum"> 312 </span> : public: -<span class="lineNum"> 313 </span><span class="lineCov"> 10 : Inserter(COLL& coll) : coll(coll) {}</span> -<span class="lineNum"> 314 </span> : -<span class="lineNum"> 315 </span> : template<typename Items, typename Tags> -<span class="lineNum"> 316 </span><span class="lineCov"> 63426 : Inserter<COLL>& operator=(const std::pair<Items, Tags>& data)</span> -<span class="lineNum"> 317 </span> : { -<span class="lineNum"> 318 </span><span class="lineCov"> 63426 : coll.insert(data.first, data.second);</span> -<span class="lineNum"> 319 </span><span class="lineCov"> 63426 : return *this;</span> -<span class="lineNum"> 320 </span> : } -<span class="lineNum"> 321 </span> : }; -<span class="lineNum"> 322 </span> : -<span class="lineNum"> 323 </span> : template<typename COLL> -<span class="lineNum"> 324 </span><span class="lineCov"> 10 : Inserter<COLL> inserter(COLL& target)</span> -<span class="lineNum"> 325 </span> : { -<span class="lineNum"> 326 </span><span class="lineCov"> 10 : return Inserter<COLL>(target);</span> -<span class="lineNum"> 327 </span> : } -<span class="lineNum"> 328 </span> : -<span class="lineNum"> 329 </span> : } -<span class="lineNum"> 330 </span> : } -<span class="lineNum"> 331 </span> : -<span class="lineNum"> 332 </span> : // vim:set ts=4 sw=4: -<span class="lineNum"> 333 </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> diff --git a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/base.tcc.gcov.html b/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/base.tcc.gcov.html deleted file mode 100644 index 5389355..0000000 --- a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/base.tcc.gcov.html +++ /dev/null @@ -1,258 +0,0 @@ -<!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/tagcoll-2.0.11/tagcoll/coll/base.tcc</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/tagcoll-2.0.11/tagcoll/coll</a> - base.tcc</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%">18</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">88.9 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">16</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> : #ifndef TAGCOLL_COLL_BASE_TCC -<span class="lineNum"> 2 </span> : #define TAGCOLL_COLL_BASE_TCC -<span class="lineNum"> 3 </span> : -<span class="lineNum"> 4 </span> : /** \file -<span class="lineNum"> 5 </span> : * Base mixins for tagged collections -<span class="lineNum"> 6 </span> : */ -<span class="lineNum"> 7 </span> : -<span class="lineNum"> 8 </span> : /* -<span class="lineNum"> 9 </span> : * Copyright (C) 2003,2004,2005,2006 Enrico Zini <enrico@debian.org> -<span class="lineNum"> 10 </span> : * -<span class="lineNum"> 11 </span> : * This library is free software; you can redistribute it and/or -<span class="lineNum"> 12 </span> : * modify it under the terms of the GNU Lesser General Public -<span class="lineNum"> 13 </span> : * License as published by the Free Software Foundation; either -<span class="lineNum"> 14 </span> : * version 2.1 of the License, or (at your option) any later version. -<span class="lineNum"> 15 </span> : * -<span class="lineNum"> 16 </span> : * This library is distributed in the hope that it will be useful, -<span class="lineNum"> 17 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of -<span class="lineNum"> 18 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -<span class="lineNum"> 19 </span> : * Lesser General Public License for more details. -<span class="lineNum"> 20 </span> : * -<span class="lineNum"> 21 </span> : * You should have received a copy of the GNU Lesser General Public -<span class="lineNum"> 22 </span> : * License along with this library; if not, write to the Free Software -<span class="lineNum"> 23 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -<span class="lineNum"> 24 </span> : */ -<span class="lineNum"> 25 </span> : -<span class="lineNum"> 26 </span> : #include <tagcoll/coll/base.h> -<span class="lineNum"> 27 </span> : #include <tagcoll/utils/set.h> -<span class="lineNum"> 28 </span> : #include <algorithm> -<span class="lineNum"> 29 </span> : -<span class="lineNum"> 30 </span> : namespace tagcoll { -<span class="lineNum"> 31 </span> : namespace coll { -<span class="lineNum"> 32 </span> : -<span class="lineNum"> 33 </span> : template<typename T> -<span class="lineNum"> 34 </span> : class coll_traits; -<span class="lineNum"> 35 </span> : -<span class="lineNum"> 36 </span> : template<typename Self> template<typename COLL> -<span class="lineNum"> 37 </span> : bool ReadonlyCollection<Self>::RelevanceOrder<COLL>::operator()( -<span class="lineNum"> 38 </span> : const typename coll_traits<Self>::tag_type& t1, -<span class="lineNum"> 39 </span> : const typename coll_traits<Self>::tag_type& t2) -<span class="lineNum"> 40 </span> : { -<span class="lineNum"> 41 </span> : // New cardinality divided by the square root of the old cardinality. -<span class="lineNum"> 42 </span> : // The square root is used to downplay the very common tags a bit -<span class="lineNum"> 43 </span> : int csub1 = second.getCardinality(t1); -<span class="lineNum"> 44 </span> : float cfull1 = first.getCardinality(t1); -<span class="lineNum"> 45 </span> : int csub2 = second.getCardinality(t2); -<span class="lineNum"> 46 </span> : float cfull2 = first.getCardinality(t2); -<span class="lineNum"> 47 </span> : float rel1 = (float)(csub1 * csub1) / cfull1; -<span class="lineNum"> 48 </span> : float rel2 = (float)(csub2 * csub2) / cfull2; -<span class="lineNum"> 49 </span> : -<span class="lineNum"> 50 </span> : return rel1 < rel2; -<span class="lineNum"> 51 </span> : // return 10000 * second.getCardinality(t1) / first.getCardinality(t1) -<span class="lineNum"> 52 </span> : // < 10000 * second.getCardinality(t2) / first.getCardinality(t2); -<span class="lineNum"> 53 </span> : } -<span class="lineNum"> 54 </span> : -<span class="lineNum"> 55 </span> : -<span class="lineNum"> 56 </span> : template<typename Self> -<span class="lineNum"> 57 </span> : bool ReadonlyCollection<Self>::hasTag(const typename coll_traits<Self>::tag_type& tag) const -<span class="lineNum"> 58 </span> : { -<span class="lineNum"> 59 </span> : return !self().getItemsHavingTag(tag).empty(); -<span class="lineNum"> 60 </span> : } -<span class="lineNum"> 61 </span> : -<span class="lineNum"> 62 </span> : template<typename Self> template<typename ITEMS> -<span class="lineNum"> 63 </span><span class="lineCov"> 1 : typename coll_traits<Self>::tagset_type ReadonlyCollection<Self>::getTagsOfItems(const ITEMS& items) const</span> -<span class="lineNum"> 64 </span> : { -<span class="lineNum"> 65 </span> : using namespace wibble::operators; -<span class="lineNum"> 66 </span><span class="lineCov"> 1 : typename coll_traits<Self>::tagset_type res;</span> -<span class="lineNum"> 67 </span><span class="lineCov"> 2 : for (typename ITEMS::const_iterator i = items.begin();</span> -<span class="lineNum"> 68 </span> : i != items.end(); i++) -<span class="lineNum"> 69 </span><span class="lineCov"> 1 : res |= self().getTagsOfItem(*i);</span> -<span class="lineNum"> 70 </span><span class="lineNoCov"> 0 : return res;</span> -<span class="lineNum"> 71 </span> : } -<span class="lineNum"> 72 </span> : -<span class="lineNum"> 73 </span> : template<typename Self> template<typename TAGS> -<span class="lineNum"> 74 </span> : typename coll_traits<Self>::itemset_type ReadonlyCollection<Self>::getItemsHavingTags(const TAGS& tags) const -<span class="lineNum"> 75 </span> : { -<span class="lineNum"> 76 </span> : using namespace wibble::operators; -<span class="lineNum"> 77 </span><span class="lineCov"> 2 : if (tags.empty())</span> -<span class="lineNum"> 78 </span><span class="lineNoCov"> 0 : return typename coll_traits<Self>::itemset_type();</span> -<span class="lineNum"> 79 </span> : -<span class="lineNum"> 80 </span><span class="lineCov"> 2 : typename TAGS::const_iterator i = tags.begin();</span> -<span class="lineNum"> 81 </span><span class="lineCov"> 2 : typename coll_traits<Self>::itemset_type res = self().getItemsHavingTag(*i);</span> -<span class="lineNum"> 82 </span> : -<span class="lineNum"> 83 </span><span class="lineCov"> 9 : for (++i ; i != tags.end(); ++i)</span> -<span class="lineNum"> 84 </span><span class="lineCov"> 7 : res &= self().getItemsHavingTag(*i);</span> -<span class="lineNum"> 85 </span> : -<span class="lineNum"> 86 </span><span class="lineCov"> 2 : return res;</span> -<span class="lineNum"> 87 </span> : } -<span class="lineNum"> 88 </span> : -<span class="lineNum"> 89 </span> : template<typename Self> -<span class="lineNum"> 90 </span> : std::vector<typename coll_traits<Self>::tag_type> ReadonlyCollection<Self>::getAllTagsAsVector() const -<span class="lineNum"> 91 </span> : { -<span class="lineNum"> 92 </span> : std::set<typename coll_traits<Self>::tag_type> asSet = self().getAllTags(); -<span class="lineNum"> 93 </span> : std::vector<typename coll_traits<Self>::tag_type> res; -<span class="lineNum"> 94 </span> : res.reserve(asSet.size()); -<span class="lineNum"> 95 </span> : std::copy(asSet.begin(), asSet.end(), back_inserter(res)); -<span class="lineNum"> 96 </span> : return res; -<span class="lineNum"> 97 </span> : } -<span class="lineNum"> 98 </span> : -<span class="lineNum"> 99 </span> : template<typename Self> -<span class="lineNum"> 100 </span> : unsigned int ReadonlyCollection<Self>::getCardinality(const typename coll_traits<Self>::tag_type& tag) const -<span class="lineNum"> 101 </span> : { -<span class="lineNum"> 102 </span> : return self().getItemsHavingTag(tag).size(); -<span class="lineNum"> 103 </span> : } -<span class="lineNum"> 104 </span> : -<span class="lineNum"> 105 </span> : template<typename Self> template<typename TAGS> -<span class="lineNum"> 106 </span> : typename coll_traits<Self>::tagset_type ReadonlyCollection<Self>::getCompanionTags(const TAGS& tags) const -<span class="lineNum"> 107 </span> : { -<span class="lineNum"> 108 </span> : using namespace wibble::operators; -<span class="lineNum"> 109 </span> : return self().getTagsOfItems(self().getItemsHavingTags(tags)) - tags; -<span class="lineNum"> 110 </span> : } -<span class="lineNum"> 111 </span> : -<span class="lineNum"> 112 </span> : template<typename Self> template<typename TAGS> -<span class="lineNum"> 113 </span> : typename coll_traits<Self>::itemset_type ReadonlyCollection<Self>::getRelatedItems(const TAGS& tags, int maxdistance) const -<span class="lineNum"> 114 </span> : { -<span class="lineNum"> 115 </span> : using namespace wibble::operators; -<span class="lineNum"> 116 </span> : -<span class="lineNum"> 117 </span> : typename coll_traits<Self>::itemset_type packages; -<span class="lineNum"> 118 </span> : typename coll_traits<Self>::itemset_type res; -<span class="lineNum"> 119 </span> : -<span class="lineNum"> 120 </span> : // First get a list of packages that have a non-empty intersection with `tags' -<span class="lineNum"> 121 </span> : for (typename TAGS::const_iterator i = tags.begin(); i != tags.end(); i++) -<span class="lineNum"> 122 </span> : packages |= self().getItemsHavingTag(*i); -<span class="lineNum"> 123 </span> : -<span class="lineNum"> 124 </span> : // Then keep only those within the given distance -<span class="lineNum"> 125 </span> : for (typename coll_traits<Self>::itemset_type::const_iterator i = packages.begin(); i != packages.end(); i++) -<span class="lineNum"> 126 </span> : { -<span class="lineNum"> 127 </span> : int dist = utils::set_distance(tags, self().getTagsOfItem(*i)); -<span class="lineNum"> 128 </span> : if (dist >= 0 && dist <= maxdistance) -<span class="lineNum"> 129 </span> : res |= *i; -<span class="lineNum"> 130 </span> : } -<span class="lineNum"> 131 </span> : -<span class="lineNum"> 132 </span> : return res; -<span class="lineNum"> 133 </span> : } -<span class="lineNum"> 134 </span> : -<span class="lineNum"> 135 </span> : template<typename Self> template<typename OUT> -<span class="lineNum"> 136 </span><span class="lineCov"> 4 : void ReadonlyCollection<Self>::output(OUT out) const</span> -<span class="lineNum"> 137 </span> : { -<span class="lineNum"> 138 </span><span class="lineCov"> 126890 : for (typename Self::const_iterator i = self().begin();</span> -<span class="lineNum"> 139 </span> : i != self().end(); ++i) -<span class="lineNum"> 140 </span> : { -<span class="lineNum"> 141 </span><span class="lineCov"> 84583 : *out = make_pair(wibble::singleton(i->first), i->second);</span> -<span class="lineNum"> 142 </span><span class="lineCov"> 84587 : ++out;</span> -<span class="lineNum"> 143 </span> : } -<span class="lineNum"> 144 </span><span class="lineCov"> 9 : }</span> -<span class="lineNum"> 145 </span> : -<span class="lineNum"> 146 </span> : template<typename Self> template<typename TAGS, typename OUT> -<span class="lineNum"> 147 </span> : void ReadonlyCollection<Self>::outputHavingTags(const TAGS& tags, OUT out) const -<span class="lineNum"> 148 </span> : { -<span class="lineNum"> 149 </span> : typename coll_traits<Self>::itemset_type items = self().getItemsHavingTags(tags); -<span class="lineNum"> 150 </span> : for (typename coll_traits<Self>::itemset_type::const_iterator i = items.begin(); -<span class="lineNum"> 151 </span> : i != items.end(); ++i) -<span class="lineNum"> 152 </span> : { -<span class="lineNum"> 153 </span> : *out = std::make_pair(wibble::singleton(*i), self().getTagsOfItem(*i)); -<span class="lineNum"> 154 </span> : ++out; -<span class="lineNum"> 155 </span> : } -<span class="lineNum"> 156 </span> : } -<span class="lineNum"> 157 </span> : -<span class="lineNum"> 158 </span> : template<typename Self> -<span class="lineNum"> 159 </span> : std::vector<typename coll_traits<Self>::tag_type> ReadonlyCollection<Self>::tagsInCardinalityOrder() const -<span class="lineNum"> 160 </span> : { -<span class="lineNum"> 161 </span> : std::vector<typename coll_traits<Self>::tag_type> res = self().getAllTagsAsVector(); -<span class="lineNum"> 162 </span> : std::sort(res.begin(), res.end(), CardinalityOrder(self())); -<span class="lineNum"> 163 </span> : return res; -<span class="lineNum"> 164 </span> : } -<span class="lineNum"> 165 </span> : -<span class="lineNum"> 166 </span> : template<typename Self> -<span class="lineNum"> 167 </span> : std::vector<typename coll_traits<Self>::tag_type> ReadonlyCollection<Self>::tagsInDiscriminanceOrder() const -<span class="lineNum"> 168 </span> : { -<span class="lineNum"> 169 </span> : std::vector<typename coll_traits<Self>::tag_type> res = self().getAllTagsAsVector(); -<span class="lineNum"> 170 </span> : std::sort(res.begin(), res.end(), DiscriminanceOrder(self())); -<span class="lineNum"> 171 </span> : return res; -<span class="lineNum"> 172 </span> : } -<span class="lineNum"> 173 </span> : -<span class="lineNum"> 174 </span> : /** -<span class="lineNum"> 175 </span> : * Get a vector containing all tags in this collection, sorted by -<span class="lineNum"> 176 </span> : * increasing relevance to the filtering applied between coll and this -<span class="lineNum"> 177 </span> : * collection -<span class="lineNum"> 178 </span> : */ -<span class="lineNum"> 179 </span> : template<typename Self> template<typename COLL> -<span class="lineNum"> 180 </span> : std::vector<typename coll_traits<Self>::tag_type> ReadonlyCollection<Self>::tagsInRelevanceOrder(const COLL& coll) const -<span class="lineNum"> 181 </span> : { -<span class="lineNum"> 182 </span> : std::vector<typename coll_traits<Self>::tag_type> res = self().getAllTagsAsVector(); -<span class="lineNum"> 183 </span> : std::sort(res.begin(), res.end(), RelevanceOrder<COLL>(coll, self())); -<span class="lineNum"> 184 </span> : return res; -<span class="lineNum"> 185 </span> : } -<span class="lineNum"> 186 </span> : -<span class="lineNum"> 187 </span> : } -<span class="lineNum"> 188 </span><span class="lineCov"> 6 : }</span> -<span class="lineNum"> 189 </span> : -<span class="lineNum"> 190 </span> : // vim:set ts=4 sw=4: -<span class="lineNum"> 191 </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> diff --git a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/index.html b/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/index.html deleted file mode 100644 index 0623d19..0000000 --- a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/index.html +++ /dev/null @@ -1,137 +0,0 @@ -<!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/tagcoll-2.0.11/tagcoll/coll</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> - /usr/include/tagcoll-2.0.11/tagcoll/coll</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%">177</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">79.7 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">141</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../../../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <center> - <table width="80%" cellpadding=2 cellspacing=1 border=0> - - <tr> - <td width="50%"><br></td> - <td width="15%"></td> - <td width="15%"></td> - <td width="20%"></td> - </tr> - - <tr> - <td class="tableHead">Filename</td> - <td class="tableHead" colspan=3>Coverage</td> - </tr> - - <tr> - <td class="coverFile"><a href="base.h.gcov.html">base.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table> - </td> - <td class="coverPerHi">100.0 %</td> - <td class="coverNumHi">11 / 11 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="base.tcc.gcov.html">base.tcc</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../../../emerald.png" width=89 height=10 alt="88.9%"><img src="../../../../../snow.png" width=11 height=10 alt="88.9%"></td></tr></table> - </td> - <td class="coverPerHi">88.9 %</td> - <td class="coverNumHi">16 / 18 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="intdiskindex.h.gcov.html">intdiskindex.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../../../emerald.png" width=92 height=10 alt="92.1%"><img src="../../../../../snow.png" width=8 height=10 alt="92.1%"></td></tr></table> - </td> - <td class="coverPerHi">92.1 %</td> - <td class="coverNumHi">35 / 38 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="patched.h.gcov.html">patched.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../../../emerald.png" width=67 height=10 alt="66.7%"><img src="../../../../../snow.png" width=33 height=10 alt="66.7%"></td></tr></table> - </td> - <td class="coverPerHi">66.7 %</td> - <td class="coverNumHi">38 / 57 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="patched.tcc.gcov.html">patched.tcc</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../../../emerald.png" width=59 height=10 alt="59.1%"><img src="../../../../../snow.png" width=41 height=10 alt="59.1%"></td></tr></table> - </td> - <td class="coverPerHi">59.1 %</td> - <td class="coverNumHi">13 / 22 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="simple.h.gcov.html">simple.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table> - </td> - <td class="coverPerHi">100.0 %</td> - <td class="coverNumHi">14 / 14 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="simple.tcc.gcov.html">simple.tcc</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../../../emerald.png" width=82 height=10 alt="82.4%"><img src="../../../../../snow.png" width=18 height=10 alt="82.4%"></td></tr></table> - </td> - <td class="coverPerHi">82.4 %</td> - <td class="coverNumHi">14 / 17 lines</td> - </tr> - - </table> - </center> - <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">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/intdiskindex.h.gcov.html b/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/intdiskindex.h.gcov.html deleted file mode 100644 index 19678ae..0000000 --- a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/intdiskindex.h.gcov.html +++ /dev/null @@ -1,265 +0,0 @@ -<!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/tagcoll-2.0.11/tagcoll/coll/intdiskindex.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/tagcoll-2.0.11/tagcoll/coll</a> - intdiskindex.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%">38</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">92.1 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">35</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> : #ifndef TAGCOLL_COLL_INT_DISK_INDEX_H -<span class="lineNum"> 2 </span> : #define TAGCOLL_COLL_INT_DISK_INDEX_H -<span class="lineNum"> 3 </span> : -<span class="lineNum"> 4 </span> : /** \file -<span class="lineNum"> 5 </span> : * Fast on-disk index for tag data -<span class="lineNum"> 6 </span> : */ -<span class="lineNum"> 7 </span> : -<span class="lineNum"> 8 </span> : /* -<span class="lineNum"> 9 </span> : * Copyright (C) 2006 Enrico Zini <enrico@debian.org> -<span class="lineNum"> 10 </span> : * -<span class="lineNum"> 11 </span> : * This program is free software; you can redistribute it and/or modify -<span class="lineNum"> 12 </span> : * it under the terms of the GNU General Public License as published by -<span class="lineNum"> 13 </span> : * the Free Software Foundation; either version 2 of the License, or -<span class="lineNum"> 14 </span> : * (at your option) any later version. -<span class="lineNum"> 15 </span> : * -<span class="lineNum"> 16 </span> : * This program is distributed in the hope that it will be useful, -<span class="lineNum"> 17 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of -<span class="lineNum"> 18 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -<span class="lineNum"> 19 </span> : * GNU General Public License for more details. -<span class="lineNum"> 20 </span> : * -<span class="lineNum"> 21 </span> : * You should have received a copy of the GNU General Public License -<span class="lineNum"> 22 </span> : * along with this program; if not, write to the Free Software -<span class="lineNum"> 23 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -<span class="lineNum"> 24 </span> : */ -<span class="lineNum"> 25 </span> : -<span class="lineNum"> 26 </span> : #include <tagcoll/coll/base.h> -<span class="lineNum"> 27 </span> : #include <tagcoll/diskindex/int.h> -<span class="lineNum"> 28 </span> : -<span class="lineNum"> 29 </span> : namespace tagcoll { -<span class="lineNum"> 30 </span> : template<typename ITEM, typename TAG> -<span class="lineNum"> 31 </span> : class PatchList; -<span class="lineNum"> 32 </span> : -<span class="lineNum"> 33 </span> : namespace coll { -<span class="lineNum"> 34 </span> : -<span class="lineNum"> 35 </span> : class IntDiskIndex; -<span class="lineNum"> 36 </span> : -<span class="lineNum"> 37 </span> : template<> -<span class="lineNum"> 38 </span> : struct coll_traits< IntDiskIndex > -<span class="lineNum"> 39 </span> : { -<span class="lineNum"> 40 </span> : typedef int item_type; -<span class="lineNum"> 41 </span> : typedef int tag_type; -<span class="lineNum"> 42 </span> : typedef std::set<int> tagset_type; -<span class="lineNum"> 43 </span> : typedef std::set<int> itemset_type; -<span class="lineNum"> 44 </span> : }; -<span class="lineNum"> 45 </span> : -<span class="lineNum"> 46 </span> : /** -<span class="lineNum"> 47 </span> : * Full TaggedCollection implementation on top of a persistent on-disk TDB -<span class="lineNum"> 48 </span> : * database. -<span class="lineNum"> 49 </span> : * -<span class="lineNum"> 50 </span> : * It allows to efficiently query a collection without having to store it all -<span class="lineNum"> 51 </span> : * into memory. -<span class="lineNum"> 52 </span> : * -<span class="lineNum"> 53 </span> : * If used for heavy modifications, the performance is slower compared to other -<span class="lineNum"> 54 </span> : * in-memory collections. If database writes are mainly used for populating -<span class="lineNum"> 55 </span> : * the index, then TDBIndexer should be used to create the index and -<span class="lineNum"> 56 </span> : * TDBDiskIndex to access it afterwards. -<span class="lineNum"> 57 </span> : */ -<span class="lineNum"> 58 </span> : class IntDiskIndex : public coll::ReadonlyCollection< IntDiskIndex > -<span class="lineNum"> 59 </span> : -<span class="lineNum"> 60 </span> : { -<span class="lineNum"> 61 </span> : protected: -<span class="lineNum"> 62 </span> : diskindex::Int pkgidx; -<span class="lineNum"> 63 </span> : diskindex::Int tagidx; -<span class="lineNum"> 64 </span> : -<span class="lineNum"> 65 </span> : public: -<span class="lineNum"> 66 </span> : class const_iterator -<span class="lineNum"> 67 </span> : { -<span class="lineNum"> 68 </span> : const IntDiskIndex& index; -<span class="lineNum"> 69 </span> : int idx; -<span class="lineNum"> 70 </span> : mutable std::pair< int, std::set<int> >* cached; -<span class="lineNum"> 71 </span> : -<span class="lineNum"> 72 </span> : public: -<span class="lineNum"> 73 </span> : // Builds an iterator -<span class="lineNum"> 74 </span><span class="lineCov"> 8 : const_iterator(const IntDiskIndex& index, int idx)</span> -<span class="lineNum"> 75 </span><span class="lineCov"> 8 : : index(index), idx(idx), cached(0) {}</span> -<span class="lineNum"> 76 </span> : // Builds the end iterator -<span class="lineNum"> 77 </span><span class="lineCov"> 274893 : const_iterator(const IntDiskIndex& index)</span> -<span class="lineNum"> 78 </span><span class="lineCov"> 274893 : : index(index), idx(index.pkgidx.size()), cached(0) {}</span> -<span class="lineNum"> 79 </span><span class="lineCov"> 528661 : ~const_iterator() { if (cached) delete cached; }</span> -<span class="lineNum"> 80 </span> : -<span class="lineNum"> 81 </span><span class="lineCov"> 105725 : std::pair< int, std::set<int> > operator*() const</span> -<span class="lineNum"> 82 </span> : { -<span class="lineNum"> 83 </span><span class="lineCov"> 105725 : return std::make_pair(idx, index.getTagsOfItem(idx));</span> -<span class="lineNum"> 84 </span> : } -<span class="lineNum"> 85 </span><span class="lineCov"> 42290 : std::pair< int, std::set<int> >* operator->() const</span> -<span class="lineNum"> 86 </span> : { -<span class="lineNum"> 87 </span><span class="lineCov"> 42290 : if (!cached)</span> -<span class="lineNum"> 88 </span><span class="lineCov"> 21145 : cached = new std::pair< int, std::set<int> >(operator*());</span> -<span class="lineNum"> 89 </span><span class="lineCov"> 42290 : return cached;</span> -<span class="lineNum"> 90 </span> : } -<span class="lineNum"> 91 </span> : -<span class="lineNum"> 92 </span><span class="lineCov"> 105725 : const_iterator operator++()</span> -<span class="lineNum"> 93 </span> : { -<span class="lineNum"> 94 </span><span class="lineCov"> 105725 : ++idx;</span> -<span class="lineNum"> 95 </span><span class="lineCov"> 105725 : if (cached) { delete cached; cached = 0; }</span> -<span class="lineNum"> 96 </span><span class="lineCov"> 105725 : return *this;</span> -<span class="lineNum"> 97 </span> : } -<span class="lineNum"> 98 </span><span class="lineCov"> 169161 : bool operator==(const const_iterator& iter) const</span> -<span class="lineNum"> 99 </span> : { -<span class="lineNum"> 100 </span><span class="lineCov"> 169161 : return idx == iter.idx;</span> -<span class="lineNum"> 101 </span> : } -<span class="lineNum"> 102 </span><span class="lineCov"> 105732 : bool operator!=(const const_iterator& iter) const</span> -<span class="lineNum"> 103 </span> : { -<span class="lineNum"> 104 </span><span class="lineCov"> 105732 : return idx != iter.idx;</span> -<span class="lineNum"> 105 </span> : } -<span class="lineNum"> 106 </span> : }; -<span class="lineNum"> 107 </span><span class="lineCov"> 8 : const_iterator begin() const { return const_iterator(*this, 0); }</span> -<span class="lineNum"> 108 </span><span class="lineCov"> 274893 : const_iterator end() const { return const_iterator(*this); }</span> -<span class="lineNum"> 109 </span> : -<span class="lineNum"> 110 </span> : /** -<span class="lineNum"> 111 </span> : * Create a new IntDiskIndex -<span class="lineNum"> 112 </span> : * -<span class="lineNum"> 113 </span> : * @param filename -<span class="lineNum"> 114 </span> : * The file name of the package index -<span class="lineNum"> 115 </span> : * @param tagidx -<span class="lineNum"> 116 </span> : * The file name of the tag index -<span class="lineNum"> 117 </span> : * @param fromitem, fromtag, toitem, totag -<span class="lineNum"> 118 </span> : * The Converter-s used to convert int and int to and from strings. -<span class="lineNum"> 119 </span> : * If 0 is passed, this TDBDiskIndex will only be able to work with -<span class="lineNum"> 120 </span> : * string items and string tags. -<span class="lineNum"> 121 </span> : * @param write -<span class="lineNum"> 122 </span> : * Set to false if the index should be opened in read-only mode. If -<span class="lineNum"> 123 </span> : * opened in read-only mode, all non-const methods of this class will -<span class="lineNum"> 124 </span> : * throw an exception if invoked. -<span class="lineNum"> 125 </span> : * It defaults to true. -<span class="lineNum"> 126 </span> : */ -<span class="lineNum"> 127 </span><span class="lineCov"> 10 : IntDiskIndex() {}</span> -<span class="lineNum"> 128 </span> : IntDiskIndex( -<span class="lineNum"> 129 </span> : const diskindex::MasterMMap& master, -<span class="lineNum"> 130 </span> : int pkgindex, int tagindex) -<span class="lineNum"> 131 </span> : : pkgidx(master, pkgindex), tagidx(master, tagindex) {} -<span class="lineNum"> 132 </span> : -<span class="lineNum"> 133 </span><span class="lineCov"> 9 : void init(const diskindex::MasterMMap& master, int pkgindex, int tagindex)</span> -<span class="lineNum"> 134 </span> : { -<span class="lineNum"> 135 </span><span class="lineCov"> 9 : pkgidx.init(master, pkgindex);</span> -<span class="lineNum"> 136 </span><span class="lineCov"> 9 : tagidx.init(master, tagindex);</span> -<span class="lineNum"> 137 </span><span class="lineCov"> 9 : }</span> -<span class="lineNum"> 138 </span> : -<span class="lineNum"> 139 </span> : std::set<int> getItemsHavingTag(const int& tag) const; -<span class="lineNum"> 140 </span> : std::set<int> getItemsHavingTags(const std::set<int>& tags) const; -<span class="lineNum"> 141 </span> : std::set<int> getTagsOfItem(const int& item) const; -<span class="lineNum"> 142 </span> : std::set<int> getTagsOfItems(const std::set<int>& items) const; -<span class="lineNum"> 143 </span> : -<span class="lineNum"> 144 </span> : bool hasTag(const int& tag) const -<span class="lineNum"> 145 </span> : { -<span class="lineNum"> 146 </span> : return tagidx.size(tag) > 0; -<span class="lineNum"> 147 </span> : } -<span class="lineNum"> 148 </span> : -<span class="lineNum"> 149 </span> : std::set<int> getTaggedItems() const; -<span class="lineNum"> 150 </span> : -<span class="lineNum"> 151 </span> : std::set<int> getAllTags() const; -<span class="lineNum"> 152 </span> : std::vector<int> getAllTagsAsVector() const; -<span class="lineNum"> 153 </span> : -<span class="lineNum"> 154 </span> : unsigned int itemCount() const { return pkgidx.size(); } -<span class="lineNum"> 155 </span> : unsigned int tagCount() const { return tagidx.size(); } -<span class="lineNum"> 156 </span> : -<span class="lineNum"> 157 </span><span class="lineNoCov"> 0 : unsigned int getCardinality(const int& tag) const</span> -<span class="lineNum"> 158 </span> : { -<span class="lineNum"> 159 </span><span class="lineNoCov"> 0 : return tagidx.size(tag);</span> -<span class="lineNum"> 160 </span> : } -<span class="lineNum"> 161 </span> : -<span class="lineNum"> 162 </span> : std::set<int> getCompanionTags(const std::set<int>& tags) const; -<span class="lineNum"> 163 </span> : -<span class="lineNum"> 164 </span> : //void output(Consumer<int, int>& consumer) const; -<span class="lineNum"> 165 </span> : }; -<span class="lineNum"> 166 </span> : -<span class="lineNum"> 167 </span> : class IntDiskIndexer -<span class="lineNum"> 168 </span><span class="lineCov"> 2 : {</span> -<span class="lineNum"> 169 </span> : protected: -<span class="lineNum"> 170 </span> : diskindex::IntIndexer pkgidx; -<span class="lineNum"> 171 </span> : diskindex::IntIndexer tagidx; -<span class="lineNum"> 172 </span> : -<span class="lineNum"> 173 </span> : public: -<span class="lineNum"> 174 </span><span class="lineCov"> 1 : const diskindex::MMapIndexer& pkgIndexer() const { return pkgidx; }</span> -<span class="lineNum"> 175 </span><span class="lineCov"> 1 : const diskindex::MMapIndexer& tagIndexer() const { return tagidx; }</span> -<span class="lineNum"> 176 </span> : -<span class="lineNum"> 177 </span> : template<typename ITEMS, typename TAGS> -<span class="lineNum"> 178 </span><span class="lineCov"> 21133 : void insert(const ITEMS& items, const TAGS& tags)</span> -<span class="lineNum"> 179 </span> : { -<span class="lineNum"> 180 </span><span class="lineCov"> 21133 : if (tags.empty())</span> -<span class="lineNum"> 181 </span><span class="lineNoCov"> 0 : return;</span> -<span class="lineNum"> 182 </span><span class="lineCov"> 42266 : for (typename ITEMS::const_iterator it = items.begin();</span> -<span class="lineNum"> 183 </span> : it != items.end(); ++it) -<span class="lineNum"> 184 </span><span class="lineCov"> 126731 : for (typename TAGS::const_iterator ta = tags.begin();</span> -<span class="lineNum"> 185 </span> : ta != tags.end(); ++ta) -<span class="lineNum"> 186 </span> : { -<span class="lineNum"> 187 </span><span class="lineCov"> 105598 : pkgidx.map(*it, *ta);</span> -<span class="lineNum"> 188 </span><span class="lineCov"> 105598 : tagidx.map(*ta, *it);</span> -<span class="lineNum"> 189 </span> : } -<span class="lineNum"> 190 </span> : } -<span class="lineNum"> 191 </span> : }; -<span class="lineNum"> 192 </span> : -<span class="lineNum"> 193 </span> : -<span class="lineNum"> 194 </span> : } -<span class="lineNum"> 195 </span> : } -<span class="lineNum"> 196 </span> : -<span class="lineNum"> 197 </span> : // vim:set ts=4 sw=4: -<span class="lineNum"> 198 </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> diff --git a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/patched.h.gcov.html b/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/patched.h.gcov.html deleted file mode 100644 index 78a82c0..0000000 --- a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/patched.h.gcov.html +++ /dev/null @@ -1,307 +0,0 @@ -<!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/tagcoll-2.0.11/tagcoll/coll/patched.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/tagcoll-2.0.11/tagcoll/coll</a> - patched.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%">57</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%">38</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> : #ifndef TAGCOLL_COLL_PATCHED_H -<span class="lineNum"> 2 </span> : #define TAGCOLL_COLL_PATCHED_H -<span class="lineNum"> 3 </span> : -<span class="lineNum"> 4 </span> : /** \file -<span class="lineNum"> 5 </span> : * Wrap a Collection, preserving modifications as patches -<span class="lineNum"> 6 </span> : */ -<span class="lineNum"> 7 </span> : -<span class="lineNum"> 8 </span> : /* -<span class="lineNum"> 9 </span> : * Copyright (C) 2005,2006 Enrico Zini <enrico@debian.org> -<span class="lineNum"> 10 </span> : * -<span class="lineNum"> 11 </span> : * This program is free software; you can redistribute it and/or modify -<span class="lineNum"> 12 </span> : * it under the terms of the GNU General Public License as published by -<span class="lineNum"> 13 </span> : * the Free Software Foundation; either version 2 of the License, or -<span class="lineNum"> 14 </span> : * (at your option) any later version. -<span class="lineNum"> 15 </span> : * -<span class="lineNum"> 16 </span> : * This program is distributed in the hope that it will be useful, -<span class="lineNum"> 17 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of -<span class="lineNum"> 18 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -<span class="lineNum"> 19 </span> : * GNU General Public License for more details. -<span class="lineNum"> 20 </span> : * -<span class="lineNum"> 21 </span> : * You should have received a copy of the GNU General Public License -<span class="lineNum"> 22 </span> : * along with this program; if not, write to the Free Software -<span class="lineNum"> 23 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -<span class="lineNum"> 24 </span> : */ -<span class="lineNum"> 25 </span> : -<span class="lineNum"> 26 </span> : #include <tagcoll/coll/base.h> -<span class="lineNum"> 27 </span> : #include <tagcoll/patch.h> -<span class="lineNum"> 28 </span> : -<span class="lineNum"> 29 </span> : namespace tagcoll { -<span class="lineNum"> 30 </span> : template<typename T1, typename T2> class PatchList; -<span class="lineNum"> 31 </span> : -<span class="lineNum"> 32 </span> : namespace coll { -<span class="lineNum"> 33 </span> : template<typename ROCOLL> -<span class="lineNum"> 34 </span> : class Patched; -<span class="lineNum"> 35 </span> : -<span class="lineNum"> 36 </span> : template<typename ROCOLL> -<span class="lineNum"> 37 </span> : struct coll_traits< Patched<ROCOLL> > -<span class="lineNum"> 38 </span> : { -<span class="lineNum"> 39 </span> : typedef typename coll_traits<ROCOLL>::item_type item_type; -<span class="lineNum"> 40 </span> : typedef typename coll_traits<ROCOLL>::tag_type tag_type; -<span class="lineNum"> 41 </span> : typedef typename coll_traits<ROCOLL>::tagset_type tagset_type; -<span class="lineNum"> 42 </span> : typedef typename coll_traits<ROCOLL>::itemset_type itemset_type; -<span class="lineNum"> 43 </span> : }; -<span class="lineNum"> 44 </span> : -<span class="lineNum"> 45 </span> : /** -<span class="lineNum"> 46 </span> : * Wraps a collection by intercepting all changes to it and preserving them as -<span class="lineNum"> 47 </span> : * a PatchList. -<span class="lineNum"> 48 </span> : */ -<span class="lineNum"> 49 </span> : template<typename ROCOLL> -<span class="lineNum"> 50 </span> : class Patched : public coll::Collection< Patched<ROCOLL> > -<span class="lineNum"> 51 </span><span class="lineCov"> 10 : {</span> -<span class="lineNum"> 52 </span> : public: -<span class="lineNum"> 53 </span> : typedef tagcoll::Patch< -<span class="lineNum"> 54 </span> : typename coll_traits<ROCOLL>::item_type, -<span class="lineNum"> 55 </span> : typename coll_traits<ROCOLL>::tag_type> Patch; -<span class="lineNum"> 56 </span> : typedef tagcoll::PatchList< -<span class="lineNum"> 57 </span> : typename coll_traits<ROCOLL>::item_type, -<span class="lineNum"> 58 </span> : typename coll_traits<ROCOLL>::tag_type> Patches; -<span class="lineNum"> 59 </span> : typedef tagcoll::Patch< -<span class="lineNum"> 60 </span> : typename coll_traits<ROCOLL>::tag_type, -<span class="lineNum"> 61 </span> : typename coll_traits<ROCOLL>::item_type> RPatch; -<span class="lineNum"> 62 </span> : typedef tagcoll::PatchList< -<span class="lineNum"> 63 </span> : typename coll_traits<ROCOLL>::tag_type, -<span class="lineNum"> 64 </span> : typename coll_traits<ROCOLL>::item_type> RPatches; -<span class="lineNum"> 65 </span> : -<span class="lineNum"> 66 </span> : protected: -<span class="lineNum"> 67 </span> : typedef typename coll_traits<ROCOLL>::item_type Item; -<span class="lineNum"> 68 </span> : typedef typename coll_traits<ROCOLL>::tag_type Tag; -<span class="lineNum"> 69 </span> : typedef typename coll_traits<ROCOLL>::itemset_type ItemSet; -<span class="lineNum"> 70 </span> : typedef typename coll_traits<ROCOLL>::tagset_type TagSet; -<span class="lineNum"> 71 </span> : -<span class="lineNum"> 72 </span> : const ROCOLL& coll; -<span class="lineNum"> 73 </span> : Patches m_changes; -<span class="lineNum"> 74 </span> : RPatches m_rchanges; -<span class="lineNum"> 75 </span> : -<span class="lineNum"> 76 </span> : #if 0 -<span class="lineNum"> 77 </span> : virtual void consumeItem(const ITEM& item, const std::set<TAG>& tags); -<span class="lineNum"> 78 </span> : -<span class="lineNum"> 79 </span> : virtual std::set<ITEM> getItemsHavingTag(const TAG& tag) const; -<span class="lineNum"> 80 </span> : virtual std::set<TAG> getTagsOfItem(const ITEM& item) const; -<span class="lineNum"> 81 </span> : #endif -<span class="lineNum"> 82 </span> : -<span class="lineNum"> 83 </span> : public: -<span class="lineNum"> 84 </span> : typedef std::pair<Item, TagSet> value_type; -<span class="lineNum"> 85 </span> : -<span class="lineNum"> 86 </span> : class const_iterator -<span class="lineNum"> 87 </span> : { -<span class="lineNum"> 88 </span> : const Patched<ROCOLL>& coll; -<span class="lineNum"> 89 </span> : typename ROCOLL::const_iterator ci; -<span class="lineNum"> 90 </span> : typename Patches::const_iterator pi; -<span class="lineNum"> 91 </span> : mutable typename Patched<ROCOLL>::value_type* cached_val; -<span class="lineNum"> 92 </span> : -<span class="lineNum"> 93 </span> : protected: -<span class="lineNum"> 94 </span> : const_iterator(const Patched<ROCOLL>& coll, -<span class="lineNum"> 95 </span> : const typename ROCOLL::const_iterator& ci, -<span class="lineNum"> 96 </span><span class="lineCov"> 84592 : const typename Patches::const_iterator& pi)</span> -<span class="lineNum"> 97 </span><span class="lineCov"> 84592 : : coll(coll), ci(ci), pi(pi), cached_val(0) {}</span> -<span class="lineNum"> 98 </span> : -<span class="lineNum"> 99 </span> : public: -<span class="lineNum"> 100 </span><span class="lineCov"> 148035 : ~const_iterator()</span> -<span class="lineNum"> 101 </span> : { -<span class="lineNum"> 102 </span><span class="lineCov"> 148035 : if (cached_val)</span> -<span class="lineNum"> 103 </span><span class="lineNoCov"> 0 : delete cached_val;</span> -<span class="lineNum"> 104 </span><span class="lineCov"> 148035 : }</span> -<span class="lineNum"> 105 </span><span class="lineCov"> 84580 : const typename Patched<ROCOLL>::value_type operator*() const</span> -<span class="lineNum"> 106 </span> : { -<span class="lineNum"> 107 </span><span class="lineCov"> 84580 : if (cached_val)</span> -<span class="lineNum"> 108 </span><span class="lineNoCov"> 0 : return *cached_val;</span> -<span class="lineNum"> 109 </span> : -<span class="lineNum"> 110 </span><span class="lineCov"> 84580 : if (ci == coll.coll.end() && pi == coll.m_changes.end())</span> -<span class="lineNum"> 111 </span><span class="lineNoCov"> 0 : return *(typename Patched<ROCOLL>::value_type*)0;</span> -<span class="lineNum"> 112 </span><span class="lineCov"> 84580 : else if (pi == coll.m_changes.end())</span> -<span class="lineNum"> 113 </span><span class="lineCov"> 84580 : return *ci;</span> -<span class="lineNum"> 114 </span><span class="lineNoCov"> 0 : else if (ci == coll.coll.end())</span> -<span class="lineNum"> 115 </span><span class="lineNoCov"> 0 : return make_pair(pi->first, pi->second.added);</span> -<span class="lineNum"> 116 </span><span class="lineNoCov"> 0 : else if (ci->first < pi->first)</span> -<span class="lineNum"> 117 </span><span class="lineNoCov"> 0 : return *ci;</span> -<span class="lineNum"> 118 </span><span class="lineNoCov"> 0 : else if (ci->first > pi->first)</span> -<span class="lineNum"> 119 </span><span class="lineNoCov"> 0 : return make_pair(pi->first, pi->second.added);</span> -<span class="lineNum"> 120 </span> : else -<span class="lineNum"> 121 </span><span class="lineNoCov"> 0 : return make_pair(ci->first, pi->second.apply(ci->second));</span> -<span class="lineNum"> 122 </span> : } -<span class="lineNum"> 123 </span><span class="lineCov"> 211450 : const typename Patched<ROCOLL>::value_type* operator->() const</span> -<span class="lineNum"> 124 </span> : { -<span class="lineNum"> 125 </span><span class="lineCov"> 211450 : if (cached_val)</span> -<span class="lineNum"> 126 </span><span class="lineCov"> 126870 : return cached_val;</span> -<span class="lineNum"> 127 </span><span class="lineCov"> 84580 : return cached_val = new typename Patched<ROCOLL>::value_type(*(*this));</span> -<span class="lineNum"> 128 </span> : } -<span class="lineNum"> 129 </span><span class="lineCov"> 84580 : const_iterator& operator++()</span> -<span class="lineNum"> 130 </span> : { -<span class="lineNum"> 131 </span><span class="lineCov"> 84580 : if (ci == coll.coll.end() && pi == coll.m_changes.end())</span> -<span class="lineNum"> 132 </span> : ; -<span class="lineNum"> 133 </span><span class="lineCov"> 84580 : else if (pi == coll.m_changes.end())</span> -<span class="lineNum"> 134 </span><span class="lineCov"> 84580 : ++ci;</span> -<span class="lineNum"> 135 </span><span class="lineNoCov"> 0 : else if (ci == coll.coll.end())</span> -<span class="lineNum"> 136 </span><span class="lineNoCov"> 0 : ++pi;</span> -<span class="lineNum"> 137 </span><span class="lineNoCov"> 0 : else if (ci->first < pi->first)</span> -<span class="lineNum"> 138 </span><span class="lineNoCov"> 0 : ++ci;</span> -<span class="lineNum"> 139 </span><span class="lineNoCov"> 0 : else if (ci->first > pi->first)</span> -<span class="lineNum"> 140 </span><span class="lineNoCov"> 0 : ++pi;</span> -<span class="lineNum"> 141 </span> : else -<span class="lineNum"> 142 </span> : { -<span class="lineNum"> 143 </span><span class="lineNoCov"> 0 : ++ci;</span> -<span class="lineNum"> 144 </span><span class="lineNoCov"> 0 : ++pi;</span> -<span class="lineNum"> 145 </span> : } -<span class="lineNum"> 146 </span><span class="lineCov"> 84580 : if (cached_val)</span> -<span class="lineNum"> 147 </span> : { -<span class="lineNum"> 148 </span><span class="lineCov"> 84580 : delete cached_val;</span> -<span class="lineNum"> 149 </span><span class="lineCov"> 84580 : cached_val = 0;</span> -<span class="lineNum"> 150 </span> : } -<span class="lineNum"> 151 </span><span class="lineCov"> 84580 : return *this;</span> -<span class="lineNum"> 152 </span> : } -<span class="lineNum"> 153 </span><span class="lineCov"> 1 : bool operator==(const const_iterator& iter) const</span> -<span class="lineNum"> 154 </span> : { -<span class="lineNum"> 155 </span><span class="lineCov"> 1 : return ci == iter.ci && pi == iter.pi;</span> -<span class="lineNum"> 156 </span> : } -<span class="lineNum"> 157 </span><span class="lineCov"> 84585 : bool operator!=(const const_iterator& iter) const</span> -<span class="lineNum"> 158 </span> : { -<span class="lineNum"> 159 </span><span class="lineCov"> 84585 : return ci != iter.ci || pi != iter.pi;</span> -<span class="lineNum"> 160 </span> : } -<span class="lineNum"> 161 </span> : -<span class="lineNum"> 162 </span> : friend class Patched<ROCOLL>; -<span class="lineNum"> 163 </span> : }; -<span class="lineNum"> 164 </span><span class="lineCov"> 6 : const_iterator begin() const { return const_iterator(*this, coll.begin(), m_changes.begin()); }</span> -<span class="lineNum"> 165 </span><span class="lineCov"> 84586 : const_iterator end() const { return const_iterator(*this, coll.end(), m_changes.end()); }</span> -<span class="lineNum"> 166 </span> : -<span class="lineNum"> 167 </span><span class="lineCov"> 10 : Patched(const ROCOLL& coll) : coll(coll) {}</span> -<span class="lineNum"> 168 </span> : -<span class="lineNum"> 169 </span> : template<typename ITEMS, typename TAGS> -<span class="lineNum"> 170 </span> : void insert(const ITEMS& items, const TAGS& tags); -<span class="lineNum"> 171 </span> : -<span class="lineNum"> 172 </span> : template<typename ITEMS> -<span class="lineNum"> 173 </span> : void insert(const ITEMS& items, const wibble::Empty<Tag>& tags) -<span class="lineNum"> 174 </span> : { -<span class="lineNum"> 175 </span> : // Nothing to do in this case -<span class="lineNum"> 176 </span> : } -<span class="lineNum"> 177 </span> : -<span class="lineNum"> 178 </span> : /** -<span class="lineNum"> 179 </span> : * Removes all items from the collection -<span class="lineNum"> 180 </span> : */ -<span class="lineNum"> 181 </span> : void clear(); -<span class="lineNum"> 182 </span> : -<span class="lineNum"> 183 </span> : /** -<span class="lineNum"> 184 </span> : * Get the changes that have been applied to this collection -<span class="lineNum"> 185 </span> : */ -<span class="lineNum"> 186 </span><span class="lineCov"> 4 : const Patches& changes() const { return m_changes; }</span> -<span class="lineNum"> 187 </span> : -<span class="lineNum"> 188 </span> : /** -<span class="lineNum"> 189 </span> : * Throw away all changes previously applied to this collection -<span class="lineNum"> 190 </span> : */ -<span class="lineNum"> 191 </span> : void resetChanges() { m_changes.clear(); m_rchanges.clear(); } -<span class="lineNum"> 192 </span> : -<span class="lineNum"> 193 </span> : /** -<span class="lineNum"> 194 </span> : * Set the changes list to a specific patch list -<span class="lineNum"> 195 </span> : */ -<span class="lineNum"> 196 </span><span class="lineNoCov"> 0 : void setChanges(const Patches& changes);</span> -<span class="lineNum"> 197 </span> : -<span class="lineNum"> 198 </span> : /** -<span class="lineNum"> 199 </span> : * Add a specific patch list to the changes list -<span class="lineNum"> 200 </span> : */ -<span class="lineNum"> 201 </span><span class="lineCov"> 2 : void addChanges(const Patches& changes);</span> -<span class="lineNum"> 202 </span> : -<span class="lineNum"> 203 </span> : bool hasTag(const Tag& tag) const; -<span class="lineNum"> 204 </span> : -<span class="lineNum"> 205 </span><span class="lineCov"> 5 : TagSet getTagsOfItem(const Item& item) const</span> -<span class="lineNum"> 206 </span> : { -<span class="lineNum"> 207 </span><span class="lineCov"> 5 : return m_changes.patch(item, coll.getTagsOfItem(item));</span> -<span class="lineNum"> 208 </span> : } -<span class="lineNum"> 209 </span><span class="lineCov"> 9 : ItemSet getItemsHavingTag(const typename coll_traits<ROCOLL>::tag_type& tag) const</span> -<span class="lineNum"> 210 </span> : { -<span class="lineNum"> 211 </span><span class="lineCov"> 9 : return m_rchanges.patch(tag, coll.getItemsHavingTag(tag));</span> -<span class="lineNum"> 212 </span> : } -<span class="lineNum"> 213 </span> : -<span class="lineNum"> 214 </span> : ItemSet getTaggedItems() const; -<span class="lineNum"> 215 </span><span class="lineCov"> 1 : TagSet getAllTags() const;</span> -<span class="lineNum"> 216 </span> : -<span class="lineNum"> 217 </span> : unsigned int tagCount() const { return getAllTags().size(); } -<span class="lineNum"> 218 </span> : -<span class="lineNum"> 219 </span> : unsigned int getCardinality(const Tag& tag) const; -<span class="lineNum"> 220 </span> : -<span class="lineNum"> 221 </span><span class="lineCov"> 2 : void applyChange(const Patches& change) { this->addChanges(change); }</span> -<span class="lineNum"> 222 </span> : -<span class="lineNum"> 223 </span> : #if 0 -<span class="lineNum"> 224 </span> : template<typename OUT> -<span class="lineNum"> 225 </span> : void output(OUT out) const -<span class="lineNum"> 226 </span> : { -<span class="lineNum"> 227 </span> : for (const_iterator i = begin(); i != end(); ++i) -<span class="lineNum"> 228 </span> : { -<span class="lineNum"> 229 </span> : *out = *i; -<span class="lineNum"> 230 </span> : ++out; -<span class="lineNum"> 231 </span> : } -<span class="lineNum"> 232 </span> : } -<span class="lineNum"> 233 </span> : #endif -<span class="lineNum"> 234 </span> : }; -<span class="lineNum"> 235 </span> : -<span class="lineNum"> 236 </span> : } -<span class="lineNum"> 237 </span> : } -<span class="lineNum"> 238 </span> : -<span class="lineNum"> 239 </span> : // vim:set ts=4 sw=4: -<span class="lineNum"> 240 </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> diff --git a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/patched.tcc.gcov.html b/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/patched.tcc.gcov.html deleted file mode 100644 index d6a3fec..0000000 --- a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/patched.tcc.gcov.html +++ /dev/null @@ -1,274 +0,0 @@ -<!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/tagcoll-2.0.11/tagcoll/coll/patched.tcc</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/tagcoll-2.0.11/tagcoll/coll</a> - patched.tcc</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%">22</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">59.1 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">13</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> : /* -<span class="lineNum"> 2 </span> : * Wrap a Collection, preserving modifications as patches -<span class="lineNum"> 3 </span> : * -<span class="lineNum"> 4 </span> : * Copyright (C) 2005,2006 Enrico Zini <enrico@debian.org> -<span class="lineNum"> 5 </span> : * -<span class="lineNum"> 6 </span> : * This program is free software; you can redistribute it and/or modify -<span class="lineNum"> 7 </span> : * it under the terms of the GNU General Public License as published by -<span class="lineNum"> 8 </span> : * the Free Software Foundation; either version 2 of the License, or -<span class="lineNum"> 9 </span> : * (at your option) any later version. -<span class="lineNum"> 10 </span> : * -<span class="lineNum"> 11 </span> : * This program is distributed in the hope that it will be useful, -<span class="lineNum"> 12 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of -<span class="lineNum"> 13 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -<span class="lineNum"> 14 </span> : * GNU General Public License for more details. -<span class="lineNum"> 15 </span> : * -<span class="lineNum"> 16 </span> : * You should have received a copy of the GNU General Public License -<span class="lineNum"> 17 </span> : * along with this program; if not, write to the Free Software -<span class="lineNum"> 18 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -<span class="lineNum"> 19 </span> : */ -<span class="lineNum"> 20 </span> : -<span class="lineNum"> 21 </span> : #ifndef TAGCOLL_COLL_PATCHED_TCC -<span class="lineNum"> 22 </span> : #define TAGCOLL_COLL_PATCHED_TCC -<span class="lineNum"> 23 </span> : -<span class="lineNum"> 24 </span> : #include <tagcoll/coll/patched.h> -<span class="lineNum"> 25 </span> : #include <tagcoll/utils/set.h> -<span class="lineNum"> 26 </span> : -<span class="lineNum"> 27 </span> : #include <wibble/operators.h> -<span class="lineNum"> 28 </span> : -<span class="lineNum"> 29 </span> : using namespace std; -<span class="lineNum"> 30 </span> : using namespace wibble::operators; -<span class="lineNum"> 31 </span> : -<span class="lineNum"> 32 </span> : namespace tagcoll { -<span class="lineNum"> 33 </span> : namespace coll { -<span class="lineNum"> 34 </span> : -<span class="lineNum"> 35 </span> : template<typename ROCOLL> template<typename ITEMS, typename TAGS> -<span class="lineNum"> 36 </span> : void Patched<ROCOLL>::insert(const ITEMS& items, const TAGS& tags) -<span class="lineNum"> 37 </span> : { -<span class="lineNum"> 38 </span> : Patches changes; -<span class="lineNum"> 39 </span> : for (typename ITEMS::const_iterator i = items.begin(); -<span class="lineNum"> 40 </span> : i != items.end(); ++i) -<span class="lineNum"> 41 </span> : changes.addPatch(Patch(*i, tags, TagSet())); -<span class="lineNum"> 42 </span> : addChanges(changes); -<span class="lineNum"> 43 </span> : } -<span class="lineNum"> 44 </span> : -<span class="lineNum"> 45 </span> : -<span class="lineNum"> 46 </span> : template<typename ROCOLL> -<span class="lineNum"> 47 </span> : void Patched<ROCOLL>::clear() -<span class="lineNum"> 48 </span> : { -<span class="lineNum"> 49 </span> : // Remove all patches -<span class="lineNum"> 50 </span> : m_changes.clear(); -<span class="lineNum"> 51 </span> : m_rchanges.clear(); -<span class="lineNum"> 52 </span> : -<span class="lineNum"> 53 </span> : // Add all tagsets of the underlying collection as removed tags in the patch -<span class="lineNum"> 54 </span> : for (typename ROCOLL::const_iterator i = coll.begin(); -<span class="lineNum"> 55 </span> : i != coll.end(); ++i) -<span class="lineNum"> 56 </span> : { -<span class="lineNum"> 57 </span> : m_changes.addPatch(Patch(i->first, std::set<Tag>(), i->second)); -<span class="lineNum"> 58 </span> : -<span class="lineNum"> 59 </span> : for (typename TagSet::const_iterator j = i->second.begin(); -<span class="lineNum"> 60 </span> : j != i->second.end(); ++j) -<span class="lineNum"> 61 </span> : m_rchanges.addPatch(Patch(*j, wibble::Empty<Tag>(), wibble::singleton(i->first))); -<span class="lineNum"> 62 </span> : } -<span class="lineNum"> 63 </span> : } -<span class="lineNum"> 64 </span> : -<span class="lineNum"> 65 </span> : template<typename ROCOLL> -<span class="lineNum"> 66 </span> : void Patched<ROCOLL>::setChanges(const Patches& changes) -<span class="lineNum"> 67 </span> : { -<span class="lineNum"> 68 </span><span class="lineNoCov"> 0 : this->m_changes.clear();</span> -<span class="lineNum"> 69 </span><span class="lineNoCov"> 0 : this->m_rchanges.clear();</span> -<span class="lineNum"> 70 </span> : -<span class="lineNum"> 71 </span><span class="lineNoCov"> 0 : addChanges(changes);</span> -<span class="lineNum"> 72 </span><span class="lineNoCov"> 0 : }</span> -<span class="lineNum"> 73 </span> : -<span class="lineNum"> 74 </span> : template<typename ROCOLL> -<span class="lineNum"> 75 </span> : void Patched<ROCOLL>::addChanges(const Patches& changes) -<span class="lineNum"> 76 </span> : { -<span class="lineNum"> 77 </span> : // Simplify the patch against the contents of `coll' before adding it. -<span class="lineNum"> 78 </span><span class="lineCov"> 4 : for (typename Patches::const_iterator i = changes.begin(); i != changes.end(); ++i)</span> -<span class="lineNum"> 79 </span> : // Consider only valid items -<span class="lineNum"> 80 </span><span class="lineCov"> 2 : if (i->first != Item())</span> -<span class="lineNum"> 81 </span> : { -<span class="lineNum"> 82 </span> : // Merge with existing patches -<span class="lineNum"> 83 </span><span class="lineCov"> 2 : this->m_changes.addPatch(i->second);</span> -<span class="lineNum"> 84 </span> : // Simplify the result -<span class="lineNum"> 85 </span><span class="lineCov"> 2 : this->m_changes.removeRedundant(i->first, coll.getTagsOfItem(i->first));</span> -<span class="lineNum"> 86 </span> : } -<span class="lineNum"> 87 </span> : -<span class="lineNum"> 88 </span><span class="lineCov"> 2 : RPatches rchanges;</span> -<span class="lineNum"> 89 </span><span class="lineCov"> 2 : rchanges.addPatchInverted(changes);</span> -<span class="lineNum"> 90 </span><span class="lineCov"> 4 : for (typename RPatches::const_iterator i = rchanges.begin(); i != rchanges.end(); ++i)</span> -<span class="lineNum"> 91 </span> : // Consider only valid tags -<span class="lineNum"> 92 </span><span class="lineCov"> 2 : if (i->first != Tag())</span> -<span class="lineNum"> 93 </span> : { -<span class="lineNum"> 94 </span> : // Merge with existing patches -<span class="lineNum"> 95 </span><span class="lineCov"> 2 : this->m_rchanges.addPatch(i->second);</span> -<span class="lineNum"> 96 </span> : // Simplify the result -<span class="lineNum"> 97 </span><span class="lineCov"> 4 : this->m_rchanges.removeRedundant(i->first, coll.getItemsHavingTag(i->first));</span> -<span class="lineNum"> 98 </span> : } -<span class="lineNum"> 99 </span><span class="lineCov"> 2 : }</span> -<span class="lineNum"> 100 </span> : -<span class="lineNum"> 101 </span> : template<typename ROCOLL> -<span class="lineNum"> 102 </span> : bool Patched<ROCOLL>::hasTag(const Tag& tag) const -<span class="lineNum"> 103 </span> : { -<span class="lineNum"> 104 </span> : typename RPatches::const_iterator i = m_rchanges.find(tag); -<span class="lineNum"> 105 </span> : if (i == m_rchanges.end()) -<span class="lineNum"> 106 </span> : return coll.hasTag(tag); -<span class="lineNum"> 107 </span> : if (! i->second.added.empty()) -<span class="lineNum"> 108 </span> : return true; -<span class="lineNum"> 109 </span> : return !this->getItemsHavingTag(tag).empty(); -<span class="lineNum"> 110 </span> : } -<span class="lineNum"> 111 </span> : -<span class="lineNum"> 112 </span> : template<typename ROCOLL> -<span class="lineNum"> 113 </span> : typename coll_traits<ROCOLL>::itemset_type Patched<ROCOLL>::getTaggedItems() const -<span class="lineNum"> 114 </span> : { -<span class="lineNum"> 115 </span> : ItemSet res(coll.getTaggedItems()); -<span class="lineNum"> 116 </span> : for (typename Patches::const_iterator i = m_changes.begin(); -<span class="lineNum"> 117 </span> : i != m_changes.end(); ++i) -<span class="lineNum"> 118 </span> : if (!i->second.added.empty()) -<span class="lineNum"> 119 </span> : // Add packages for which tags are added -<span class="lineNum"> 120 </span> : res |= i->first; -<span class="lineNum"> 121 </span> : else if (getTagsOfItem(i->first).empty()) -<span class="lineNum"> 122 </span> : // Remove the packages to which the patch removes all tags -<span class="lineNum"> 123 </span> : res -= i->first; -<span class="lineNum"> 124 </span> : return res; -<span class="lineNum"> 125 </span> : } -<span class="lineNum"> 126 </span> : -<span class="lineNum"> 127 </span> : template<typename ROCOLL> -<span class="lineNum"> 128 </span> : typename coll_traits<ROCOLL>::tagset_type Patched<ROCOLL>::getAllTags() const -<span class="lineNum"> 129 </span> : { -<span class="lineNum"> 130 </span><span class="lineCov"> 1 : TagSet res(coll.getAllTags());</span> -<span class="lineNum"> 131 </span><span class="lineCov"> 1 : for (typename RPatches::const_iterator i = m_rchanges.begin();</span> -<span class="lineNum"> 132 </span> : i != m_rchanges.end(); ++i) -<span class="lineNum"> 133 </span><span class="lineNoCov"> 0 : if (!i->second.added.empty())</span> -<span class="lineNum"> 134 </span> : // Add tags for which packages are added -<span class="lineNum"> 135 </span><span class="lineNoCov"> 0 : res |= i->first;</span> -<span class="lineNum"> 136 </span><span class="lineNoCov"> 0 : else if (coll.getCardinality(i->first) - i->second.removed.size() <= 0)</span> -<span class="lineNum"> 137 </span> : // Remove the tags to which the patch removes all items -<span class="lineNum"> 138 </span><span class="lineNoCov"> 0 : res -= i->first;</span> -<span class="lineNum"> 139 </span><span class="lineNoCov"> 0 : return res;</span> -<span class="lineNum"> 140 </span> : } -<span class="lineNum"> 141 </span> : -<span class="lineNum"> 142 </span> : #if 0 -<span class="lineNum"> 143 </span> : template<typename ITEM, typename TAG, typename OUT> -<span class="lineNum"> 144 </span> : class UnpatchedOnly : public wibble::mixin::OutputIterator< UnpatchedOnly<ITEM, TAG, OUT> > -<span class="lineNum"> 145 </span> : { -<span class="lineNum"> 146 </span> : protected: -<span class="lineNum"> 147 </span> : OUT out; -<span class="lineNum"> 148 </span> : const PatchList<ITEM, TAG>& changes; -<span class="lineNum"> 149 </span> : -<span class="lineNum"> 150 </span> : public: -<span class="lineNum"> 151 </span> : UnpatchedOnly(const PatchList<ITEM, TAG>& changes, const OUT& out) : out(out), changes(changes) {} -<span class="lineNum"> 152 </span> : -<span class="lineNum"> 153 </span> : UnpatchedOnly<ITEM, TAG, OUT>& operator++() { return *this; } -<span class="lineNum"> 154 </span> : -<span class="lineNum"> 155 </span> : template<typename Items, typename Tags> -<span class="lineNum"> 156 </span> : UnpatchedOnly<ITEM, TAG, OUT>& operator=(const std::pair<Items, Tags>& data) -<span class="lineNum"> 157 </span> : { -<span class="lineNum"> 158 </span> : for (typename Items::const_iterator i = data.first.begin(); -<span class="lineNum"> 159 </span> : i != data.first.end(); ++i) -<span class="lineNum"> 160 </span> : if (changes.find(*i) == changes.end()) -<span class="lineNum"> 161 </span> : { -<span class="lineNum"> 162 </span> : *out = data; -<span class="lineNum"> 163 </span> : ++out; -<span class="lineNum"> 164 </span> : } -<span class="lineNum"> 165 </span> : return *this; -<span class="lineNum"> 166 </span> : } -<span class="lineNum"> 167 </span> : }; -<span class="lineNum"> 168 </span> : -<span class="lineNum"> 169 </span> : template<typename ITEM, typename TAG, typename OUT> -<span class="lineNum"> 170 </span> : UnpatchedOnly<ITEM, TAG, OUT> unpatchedOnly(const PatchList<ITEM, TAG>& changes, const OUT& out) -<span class="lineNum"> 171 </span> : { -<span class="lineNum"> 172 </span> : return UnpatchedOnly<ITEM, TAG, OUT>(changes, out); -<span class="lineNum"> 173 </span> : } -<span class="lineNum"> 174 </span> : -<span class="lineNum"> 175 </span> : template<class ITEM, class TAG> -<span class="lineNum"> 176 </span> : void Patched<ITEM, TAG>::output(Consumer<ITEM, TAG>& cons) const -<span class="lineNum"> 177 </span> : { -<span class="lineNum"> 178 </span> : // First, only pass the unpatched items -<span class="lineNum"> 179 </span> : coll.outputToIterator(unpatchedOnly(changes, consumer(cons))); -<span class="lineNum"> 180 </span> : -<span class="lineNum"> 181 </span> : // Then output the items in the patch -<span class="lineNum"> 182 </span> : for (typename PatchList<ITEM, TAG>::const_iterator i = changes.begin(); -<span class="lineNum"> 183 </span> : i != changes.end(); i++) -<span class="lineNum"> 184 </span> : cons.consume(i->first, -<span class="lineNum"> 185 </span> : changes.patch(i->first, coll.getTags(i->first))); -<span class="lineNum"> 186 </span> : } -<span class="lineNum"> 187 </span> : #endif -<span class="lineNum"> 188 </span> : -<span class="lineNum"> 189 </span> : template<typename ROCOLL> -<span class="lineNum"> 190 </span> : unsigned int Patched<ROCOLL>::getCardinality(const Tag& tag) const -<span class="lineNum"> 191 </span> : { -<span class="lineNum"> 192 </span> : typename RPatches::const_iterator i = m_rchanges.find(tag); -<span class="lineNum"> 193 </span> : if (i == m_rchanges.end()) -<span class="lineNum"> 194 </span> : return coll.getCardinality(tag); -<span class="lineNum"> 195 </span> : else -<span class="lineNum"> 196 </span> : return coll.getCardinality(tag) + i->second.added.size() - i->second.removed.size(); -<span class="lineNum"> 197 </span> : } -<span class="lineNum"> 198 </span> : -<span class="lineNum"> 199 </span> : } -<span class="lineNum"> 200 </span> : } -<span class="lineNum"> 201 </span> : -<span class="lineNum"> 202 </span> : #include <tagcoll/coll/base.tcc> -<span class="lineNum"> 203 </span> : #include <tagcoll/patch.tcc> -<span class="lineNum"> 204 </span> : -<span class="lineNum"> 205 </span> : #endif -<span class="lineNum"> 206 </span> : -<span class="lineNum"> 207 </span> : // vim:set ts=4 sw=4: -</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> diff --git a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/simple.h.gcov.html b/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/simple.h.gcov.html deleted file mode 100644 index 3ffdd0c..0000000 --- a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/simple.h.gcov.html +++ /dev/null @@ -1,205 +0,0 @@ -<!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/tagcoll-2.0.11/tagcoll/coll/simple.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/tagcoll-2.0.11/tagcoll/coll</a> - simple.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%">14</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">100.0 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">14</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> : #ifndef TAGCOLL_COLL_SIMPLE_H -<span class="lineNum"> 2 </span> : #define TAGCOLL_COLL_SIMPLE_H -<span class="lineNum"> 3 </span> : -<span class="lineNum"> 4 </span> : /** \file -<span class="lineNum"> 5 </span> : * Simple tagged collection. -<span class="lineNum"> 6 </span> : * -<span class="lineNum"> 7 </span> : * Also used for merging tags of items appearing multiple times in a stream of -<span class="lineNum"> 8 </span> : * tagged items -<span class="lineNum"> 9 </span> : */ -<span class="lineNum"> 10 </span> : -<span class="lineNum"> 11 </span> : /* -<span class="lineNum"> 12 </span> : * Copyright (C) 2003,2004,2005,2006 Enrico Zini <enrico@debian.org> -<span class="lineNum"> 13 </span> : * -<span class="lineNum"> 14 </span> : * This library is free software; you can redistribute it and/or -<span class="lineNum"> 15 </span> : * modify it under the terms of the GNU Lesser General Public -<span class="lineNum"> 16 </span> : * License as published by the Free Software Foundation; either -<span class="lineNum"> 17 </span> : * version 2.1 of the License, or (at your option) any later version. -<span class="lineNum"> 18 </span> : * -<span class="lineNum"> 19 </span> : * This library is distributed in the hope that it will be useful, -<span class="lineNum"> 20 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of -<span class="lineNum"> 21 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -<span class="lineNum"> 22 </span> : * Lesser General Public License for more details. -<span class="lineNum"> 23 </span> : * -<span class="lineNum"> 24 </span> : * You should have received a copy of the GNU Lesser General Public -<span class="lineNum"> 25 </span> : * License along with this library; if not, write to the Free Software -<span class="lineNum"> 26 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -<span class="lineNum"> 27 </span> : */ -<span class="lineNum"> 28 </span> : -<span class="lineNum"> 29 </span> : #include <tagcoll/coll/base.h> -<span class="lineNum"> 30 </span> : #include <set> -<span class="lineNum"> 31 </span> : #include <map> -<span class="lineNum"> 32 </span> : -<span class="lineNum"> 33 </span> : namespace tagcoll { -<span class="lineNum"> 34 </span> : template<typename ITEM, typename TAG> -<span class="lineNum"> 35 </span> : class PatchList; -<span class="lineNum"> 36 </span> : -<span class="lineNum"> 37 </span> : namespace coll { -<span class="lineNum"> 38 </span> : -<span class="lineNum"> 39 </span> : template<typename ITEM, typename TAG> -<span class="lineNum"> 40 </span> : class Simple; -<span class="lineNum"> 41 </span> : -<span class="lineNum"> 42 </span> : template<typename ITEM, typename TAG> -<span class="lineNum"> 43 </span> : struct coll_traits< Simple<ITEM, TAG> > -<span class="lineNum"> 44 </span> : { -<span class="lineNum"> 45 </span> : typedef ITEM item_type; -<span class="lineNum"> 46 </span> : typedef TAG tag_type; -<span class="lineNum"> 47 </span> : typedef std::set<ITEM> tagset_type; -<span class="lineNum"> 48 </span> : typedef std::set<TAG> itemset_type; -<span class="lineNum"> 49 </span> : }; -<span class="lineNum"> 50 </span> : -<span class="lineNum"> 51 </span> : -<span class="lineNum"> 52 </span> : /** -<span class="lineNum"> 53 </span> : * Simple Collection. -<span class="lineNum"> 54 </span> : * -<span class="lineNum"> 55 </span> : * It can be used to merge input values: if an item is added multiple times, -<span class="lineNum"> 56 </span> : * its various tagsets are merged in a single one. -<span class="lineNum"> 57 </span> : * -<span class="lineNum"> 58 </span> : * It is also a full-featured collection, although not very optimized. -<span class="lineNum"> 59 </span> : */ -<span class="lineNum"> 60 </span> : template<typename ITEM, typename TAG> -<span class="lineNum"> 61 </span> : class Simple : public coll::Collection< Simple<ITEM, TAG> > -<span class="lineNum"> 62 </span><span class="lineCov"> 14 : {</span> -<span class="lineNum"> 63 </span> : protected: -<span class="lineNum"> 64 </span> : std::map< ITEM, std::set<TAG> > coll; -<span class="lineNum"> 65 </span> : -<span class="lineNum"> 66 </span> : #if 0 -<span class="lineNum"> 67 </span> : virtual void consumeItem(const ITEM& item, const std::set<TAG>& tags); -<span class="lineNum"> 68 </span> : -<span class="lineNum"> 69 </span> : virtual std::set<ITEM> getItemsHavingTags(const std::set<TAG>& tags) const; -<span class="lineNum"> 70 </span> : #endif -<span class="lineNum"> 71 </span> : -<span class="lineNum"> 72 </span> : public: -<span class="lineNum"> 73 </span> : typedef typename std::map< ITEM, std::set<TAG> >::const_iterator const_iterator; -<span class="lineNum"> 74 </span> : typedef typename std::map< ITEM, std::set<TAG> >::iterator iterator; -<span class="lineNum"> 75 </span> : typedef typename std::map< ITEM, std::set<TAG> >::value_type value_type; -<span class="lineNum"> 76 </span> : -<span class="lineNum"> 77 </span><span class="lineCov"> 5 : const_iterator begin() const { return coll.begin(); }</span> -<span class="lineNum"> 78 </span><span class="lineCov"> 42298 : const_iterator end() const { return coll.end(); }</span> -<span class="lineNum"> 79 </span><span class="lineCov"> 1 : iterator begin() { return coll.begin(); }</span> -<span class="lineNum"> 80 </span><span class="lineCov"> 21146 : iterator end() { return coll.end(); }</span> -<span class="lineNum"> 81 </span> : -<span class="lineNum"> 82 </span><span class="lineCov"> 2 : bool empty() const { return coll.empty(); }</span> -<span class="lineNum"> 83 </span> : -<span class="lineNum"> 84 </span> : template<typename ITEMS, typename TAGS> -<span class="lineNum"> 85 </span><span class="lineCov"> 2 : void insert(const ITEMS& items, const TAGS& tags);</span> -<span class="lineNum"> 86 </span> : -<span class="lineNum"> 87 </span> : bool hasItem(const ITEM& item) const { return coll.find(item) != coll.end(); } -<span class="lineNum"> 88 </span> : -<span class="lineNum"> 89 </span><span class="lineCov"> 2 : std::set<TAG> getTagsOfItem(const ITEM& item) const;</span> -<span class="lineNum"> 90 </span> : std::set<ITEM> getItemsHavingTag(const TAG& tag) const; -<span class="lineNum"> 91 </span> : template<typename TAGS> -<span class="lineNum"> 92 </span> : std::set<ITEM> getItemsHavingTags(const TAGS& tag) const; -<span class="lineNum"> 93 </span> : -<span class="lineNum"> 94 </span> : template<typename TAGS, typename OUT> -<span class="lineNum"> 95 </span> : void outputHavingTags(const TAGS& tags, OUT out) const; -<span class="lineNum"> 96 </span> : -<span class="lineNum"> 97 </span> : #if 0 -<span class="lineNum"> 98 </span> : void output(Consumer<ITEM, TAG>& consumer) const; -<span class="lineNum"> 99 </span> : void outputHavingTags(const std::set<TAG>& ts, Consumer<ITEM, TAG>& consumer) const; -<span class="lineNum"> 100 </span> : -<span class="lineNum"> 101 </span> : /** -<span class="lineNum"> 102 </span> : * Send the merged data to a consumer, but reversed: the tag become items, -<span class="lineNum"> 103 </span> : * and they are tagged with the items that had them -<span class="lineNum"> 104 </span> : */ -<span class="lineNum"> 105 </span> : void outputReversed(Consumer<TAG, ITEM>& consumer) const; -<span class="lineNum"> 106 </span> : #endif -<span class="lineNum"> 107 </span> : -<span class="lineNum"> 108 </span> : void applyChange(const PatchList<ITEM, TAG>& change); -<span class="lineNum"> 109 </span> : -<span class="lineNum"> 110 </span> : std::set<ITEM> getTaggedItems() const; -<span class="lineNum"> 111 </span> : -<span class="lineNum"> 112 </span><span class="lineCov"> 3 : std::set<TAG> getAllTags() const;</span> -<span class="lineNum"> 113 </span> : -<span class="lineNum"> 114 </span> : std::set<TAG> getCompanionTags(const std::set<TAG>& ts) const; -<span class="lineNum"> 115 </span> : -<span class="lineNum"> 116 </span> : std::set<ITEM> getRelatedItems(const std::set<TAG>& ts, int maxdistance = 1) const; -<span class="lineNum"> 117 </span> : -<span class="lineNum"> 118 </span> : /** -<span class="lineNum"> 119 </span> : * Count the number of items -<span class="lineNum"> 120 </span> : */ -<span class="lineNum"> 121 </span><span class="lineCov"> 5 : unsigned int itemCount() const;</span> -<span class="lineNum"> 122 </span> : -<span class="lineNum"> 123 </span><span class="lineCov"> 3 : unsigned int tagCount() const { return getAllTags().size(); }</span> -<span class="lineNum"> 124 </span> : -<span class="lineNum"> 125 </span> : /** -<span class="lineNum"> 126 </span> : * Empty the collection -<span class="lineNum"> 127 </span> : */ -<span class="lineNum"> 128 </span><span class="lineCov"> 1 : void clear()</span> -<span class="lineNum"> 129 </span> : { -<span class="lineNum"> 130 </span><span class="lineCov"> 1 : coll.clear();</span> -<span class="lineNum"> 131 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 132 </span> : }; -<span class="lineNum"> 133 </span> : -<span class="lineNum"> 134 </span> : } -<span class="lineNum"> 135 </span> : } -<span class="lineNum"> 136 </span> : -<span class="lineNum"> 137 </span> : // vim:set ts=4 sw=4: -<span class="lineNum"> 138 </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> diff --git a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/simple.tcc.gcov.html b/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/simple.tcc.gcov.html deleted file mode 100644 index ae0c51f..0000000 --- a/rep/usr/include/tagcoll-2.0.11/tagcoll/coll/simple.tcc.gcov.html +++ /dev/null @@ -1,263 +0,0 @@ -<!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/tagcoll-2.0.11/tagcoll/coll/simple.tcc</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/tagcoll-2.0.11/tagcoll/coll</a> - simple.tcc</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%">17</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">82.4 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">14</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> : /* -<span class="lineNum"> 2 </span> : * Merge tags of items appearing multiple times in a stream of tagged items -<span class="lineNum"> 3 </span> : * -<span class="lineNum"> 4 </span> : * Copyright (C) 2003--2006 Enrico Zini <enrico@debian.org> -<span class="lineNum"> 5 </span> : * -<span class="lineNum"> 6 </span> : * This library is free software; you can redistribute it and/or -<span class="lineNum"> 7 </span> : * modify it under the terms of the GNU Lesser General Public -<span class="lineNum"> 8 </span> : * License as published by the Free Software Foundation; either -<span class="lineNum"> 9 </span> : * version 2.1 of the License, or (at your option) any later version. -<span class="lineNum"> 10 </span> : * -<span class="lineNum"> 11 </span> : * This library is distributed in the hope that it will be useful, -<span class="lineNum"> 12 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of -<span class="lineNum"> 13 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -<span class="lineNum"> 14 </span> : * Lesser General Public License for more details. -<span class="lineNum"> 15 </span> : * -<span class="lineNum"> 16 </span> : * You should have received a copy of the GNU Lesser General Public -<span class="lineNum"> 17 </span> : * License along with this library; if not, write to the Free Software -<span class="lineNum"> 18 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -<span class="lineNum"> 19 </span> : */ -<span class="lineNum"> 20 </span> : -<span class="lineNum"> 21 </span> : #ifndef TAGCOLL_COLL_SIMPLE_TCC -<span class="lineNum"> 22 </span> : #define TAGCOLL_COLL_SIMPLE_TCC -<span class="lineNum"> 23 </span> : -<span class="lineNum"> 24 </span> : #include <tagcoll/utils/set.h> -<span class="lineNum"> 25 </span> : #include <tagcoll/coll/simple.h> -<span class="lineNum"> 26 </span> : #include <tagcoll/patch.h> -<span class="lineNum"> 27 </span> : -<span class="lineNum"> 28 </span> : #include <wibble/operators.h> -<span class="lineNum"> 29 </span> : -<span class="lineNum"> 30 </span> : using namespace std; -<span class="lineNum"> 31 </span> : using namespace wibble::operators; -<span class="lineNum"> 32 </span> : -<span class="lineNum"> 33 </span> : namespace tagcoll { -<span class="lineNum"> 34 </span> : namespace coll { -<span class="lineNum"> 35 </span> : -<span class="lineNum"> 36 </span> : -<span class="lineNum"> 37 </span> : template<class ITEM, class TAG> template<typename ITEMS, typename TAGS> -<span class="lineNum"> 38 </span><span class="lineCov"> 42293 : void Simple<ITEM, TAG>::insert(const ITEMS& items, const TAGS& tags)</span> -<span class="lineNum"> 39 </span> : { -<span class="lineNum"> 40 </span> : using namespace wibble::operators; -<span class="lineNum"> 41 </span> : -<span class="lineNum"> 42 </span><span class="lineCov"> 42295 : if (tags.empty())</span> -<span class="lineNum"> 43 </span><span class="lineNoCov"> 0 : return;</span> -<span class="lineNum"> 44 </span><span class="lineCov"> 84590 : for (typename ITEMS::const_iterator i = items.begin();</span> -<span class="lineNum"> 45 </span> : i != items.end(); ++i) -<span class="lineNum"> 46 </span> : { -<span class="lineNum"> 47 </span><span class="lineCov"> 42295 : typename std::map< ITEM, std::set<TAG> >::iterator iter = coll.find(*i);</span> -<span class="lineNum"> 48 </span><span class="lineCov"> 42295 : if (iter == coll.end())</span> -<span class="lineNum"> 49 </span><span class="lineCov"> 21149 : coll.insert(std::make_pair(*i, std::set<TAG>() | tags));</span> -<span class="lineNum"> 50 </span> : else -<span class="lineNum"> 51 </span><span class="lineCov"> 21146 : iter->second |= tags;</span> -<span class="lineNum"> 52 </span> : } -<span class="lineNum"> 53 </span> : } -<span class="lineNum"> 54 </span> : -<span class="lineNum"> 55 </span> : template<class ITEM, class TAG> -<span class="lineNum"> 56 </span> : std::set<TAG> Simple<ITEM, TAG>::getTagsOfItem(const ITEM& item) const -<span class="lineNum"> 57 </span> : { -<span class="lineNum"> 58 </span><span class="lineCov"> 2 : typename map< ITEM, std::set<TAG> >::const_iterator i = coll.find(item);</span> -<span class="lineNum"> 59 </span> : -<span class="lineNum"> 60 </span><span class="lineCov"> 2 : if (i == coll.end())</span> -<span class="lineNum"> 61 </span><span class="lineNoCov"> 0 : return std::set<TAG>();</span> -<span class="lineNum"> 62 </span> : else -<span class="lineNum"> 63 </span><span class="lineCov"> 2 : return i->second;</span> -<span class="lineNum"> 64 </span> : } -<span class="lineNum"> 65 </span> : -<span class="lineNum"> 66 </span> : template<class ITEM, class TAG> -<span class="lineNum"> 67 </span> : std::set<ITEM> Simple<ITEM, TAG>::getItemsHavingTag(const TAG& tag) const -<span class="lineNum"> 68 </span> : { -<span class="lineNum"> 69 </span> : std::set<ITEM> res; -<span class="lineNum"> 70 </span> : for (typename map< ITEM, std::set<TAG> >::const_iterator i = coll.begin(); -<span class="lineNum"> 71 </span> : i != coll.end(); i++) -<span class="lineNum"> 72 </span> : if (i->second.find(tag) != i->second.end()) -<span class="lineNum"> 73 </span> : res |= i->first; -<span class="lineNum"> 74 </span> : return res; -<span class="lineNum"> 75 </span> : } -<span class="lineNum"> 76 </span> : -<span class="lineNum"> 77 </span> : template<class ITEM, class TAG> template<typename TAGS> -<span class="lineNum"> 78 </span> : std::set<ITEM> Simple<ITEM, TAG>::getItemsHavingTags(const TAGS& tags) const -<span class="lineNum"> 79 </span> : { -<span class="lineNum"> 80 </span> : std::set<ITEM> res; -<span class="lineNum"> 81 </span> : for (typename map< ITEM, std::set<TAG> >::const_iterator i = coll.begin(); -<span class="lineNum"> 82 </span> : i != coll.end(); i++) -<span class="lineNum"> 83 </span> : if (utils::set_contains(i->second, tags)) -<span class="lineNum"> 84 </span> : res |= i->first; -<span class="lineNum"> 85 </span> : return res; -<span class="lineNum"> 86 </span> : } -<span class="lineNum"> 87 </span> : -<span class="lineNum"> 88 </span> : #if 0 -<span class="lineNum"> 89 </span> : template<class T, class Tag> -<span class="lineNum"> 90 </span> : void Simple<T, Tag>::outputReversed(Consumer<Tag, T>& consumer) const -<span class="lineNum"> 91 </span> : { -<span class="lineNum"> 92 </span> : for (typename map< T, std::set<Tag> >::const_iterator i = coll.begin(); -<span class="lineNum"> 93 </span> : i != coll.end(); i++) -<span class="lineNum"> 94 </span> : { -<span class="lineNum"> 95 </span> : std::set<T> items; -<span class="lineNum"> 96 </span> : items |= i->first; -<span class="lineNum"> 97 </span> : consumer.consume(i->second, items); -<span class="lineNum"> 98 </span> : } -<span class="lineNum"> 99 </span> : } -<span class="lineNum"> 100 </span> : #endif -<span class="lineNum"> 101 </span> : -<span class="lineNum"> 102 </span> : template<class ITEM, class TAG> template<typename TAGS, typename OUT> -<span class="lineNum"> 103 </span> : void Simple<ITEM, TAG>::outputHavingTags(const TAGS& ts, OUT out) const -<span class="lineNum"> 104 </span> : { -<span class="lineNum"> 105 </span> : for (typename map< ITEM, std::set<TAG> >::const_iterator i = coll.begin(); -<span class="lineNum"> 106 </span> : i != coll.end(); ++i) -<span class="lineNum"> 107 </span> : if (utils::set_contains(i->second, ts)) -<span class="lineNum"> 108 </span> : { -<span class="lineNum"> 109 </span> : *out = *i; -<span class="lineNum"> 110 </span> : ++out; -<span class="lineNum"> 111 </span> : } -<span class="lineNum"> 112 </span> : } -<span class="lineNum"> 113 </span> : -<span class="lineNum"> 114 </span> : -<span class="lineNum"> 115 </span> : -<span class="lineNum"> 116 </span> : template<class T, class Tag> -<span class="lineNum"> 117 </span> : void Simple<T, Tag>::applyChange(const PatchList<T, Tag>& change) -<span class="lineNum"> 118 </span> : { -<span class="lineNum"> 119 </span> : for (typename PatchList<T, Tag>::const_iterator i = change.begin(); i != change.end(); i++) -<span class="lineNum"> 120 </span> : { -<span class="lineNum"> 121 </span> : typename map< T, std::set<Tag> >::iterator it = coll.find(i->first); -<span class="lineNum"> 122 </span> : if (it == coll.end()) -<span class="lineNum"> 123 </span> : { -<span class="lineNum"> 124 </span> : // If the item doesn't exist, create it -<span class="lineNum"> 125 </span> : coll.insert(make_pair(i->first, i->second.added)); -<span class="lineNum"> 126 </span> : } else { -<span class="lineNum"> 127 </span> : it->second = i->second.apply(it->second); -<span class="lineNum"> 128 </span> : } -<span class="lineNum"> 129 </span> : } -<span class="lineNum"> 130 </span> : } -<span class="lineNum"> 131 </span> : -<span class="lineNum"> 132 </span> : template<typename ITEM, typename TAG> -<span class="lineNum"> 133 </span> : std::set<ITEM> Simple<ITEM, TAG>::getTaggedItems() const -<span class="lineNum"> 134 </span> : { -<span class="lineNum"> 135 </span> : std::set<ITEM> res; -<span class="lineNum"> 136 </span> : for (typename std::map< ITEM, std::set<TAG> >::const_iterator i = coll.begin(); -<span class="lineNum"> 137 </span> : i != coll.end(); i++) -<span class="lineNum"> 138 </span> : res.insert(i->first); -<span class="lineNum"> 139 </span> : return res; -<span class="lineNum"> 140 </span> : } -<span class="lineNum"> 141 </span> : -<span class="lineNum"> 142 </span> : template<class T, class Tag> -<span class="lineNum"> 143 </span> : std::set<Tag> Simple<T, Tag>::getAllTags() const -<span class="lineNum"> 144 </span> : { -<span class="lineNum"> 145 </span><span class="lineCov"> 3 : std::set<Tag> tags;</span> -<span class="lineNum"> 146 </span> : -<span class="lineNum"> 147 </span><span class="lineCov"> 6 : for (typename map< T, std::set<Tag> >::const_iterator i = coll.begin();</span> -<span class="lineNum"> 148 </span> : i != coll.end(); i++) -<span class="lineNum"> 149 </span><span class="lineCov"> 3 : tags |= i->second;</span> -<span class="lineNum"> 150 </span> : -<span class="lineNum"> 151 </span><span class="lineNoCov"> 0 : return tags;</span> -<span class="lineNum"> 152 </span> : } -<span class="lineNum"> 153 </span> : -<span class="lineNum"> 154 </span> : template<class T, class Tag> -<span class="lineNum"> 155 </span> : std::set<Tag> Simple<T, Tag>::getCompanionTags(const std::set<Tag>& ts) const -<span class="lineNum"> 156 </span> : { -<span class="lineNum"> 157 </span> : std::set<Tag> tags; -<span class="lineNum"> 158 </span> : -<span class="lineNum"> 159 </span> : for (typename map< T, std::set<Tag> >::const_iterator i = coll.begin(); -<span class="lineNum"> 160 </span> : i != coll.end(); i++) -<span class="lineNum"> 161 </span> : if (utils::set_contains(i->second, (ts))) -<span class="lineNum"> 162 </span> : tags |= i->second - ts; -<span class="lineNum"> 163 </span> : -<span class="lineNum"> 164 </span> : return tags; -<span class="lineNum"> 165 </span> : } -<span class="lineNum"> 166 </span> : -<span class="lineNum"> 167 </span> : template<class T, class Tag> -<span class="lineNum"> 168 </span> : std::set<T> Simple<T, Tag>::getRelatedItems(const std::set<Tag>& tags, int maxdistance) const -<span class="lineNum"> 169 </span> : { -<span class="lineNum"> 170 </span> : std::set<T> res; -<span class="lineNum"> 171 </span> : -<span class="lineNum"> 172 </span> : for (typename map< T, std::set<Tag> >::const_iterator i = coll.begin(); -<span class="lineNum"> 173 </span> : i != coll.end(); i++) -<span class="lineNum"> 174 </span> : { -<span class="lineNum"> 175 </span> : int dist = utils::set_distance(tags, i->second); -<span class="lineNum"> 176 </span> : if (dist >= 0 && dist <= maxdistance) -<span class="lineNum"> 177 </span> : res |= i->first; -<span class="lineNum"> 178 </span> : } -<span class="lineNum"> 179 </span> : -<span class="lineNum"> 180 </span> : return res; -<span class="lineNum"> 181 </span> : } -<span class="lineNum"> 182 </span> : -<span class="lineNum"> 183 </span> : template<class T, class Tag> -<span class="lineNum"> 184 </span> : unsigned int Simple<T, Tag>::itemCount() const -<span class="lineNum"> 185 </span> : { -<span class="lineNum"> 186 </span><span class="lineCov"> 5 : return coll.size();</span> -<span class="lineNum"> 187 </span> : } -<span class="lineNum"> 188 </span> : -<span class="lineNum"> 189 </span> : } -<span class="lineNum"> 190 </span> : } -<span class="lineNum"> 191 </span> : -<span class="lineNum"> 192 </span> : #include <tagcoll/coll/base.tcc> -<span class="lineNum"> 193 </span> : -<span class="lineNum"> 194 </span> : #endif -<span class="lineNum"> 195 </span> : -<span class="lineNum"> 196 </span> : // vim:set ts=4 sw=4: -</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> |