File: pkgcache.h.gcov.html

package info (click to toggle)
libept 1.0.4
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 14,296 kB
  • ctags: 776
  • sloc: cpp: 4,359; sh: 35; makefile: 17
file content (422 lines) | stat: -rw-r--r-- 32,708 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html lang="en">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>LCOV - lcov.info - /usr/include/apt-pkg/pkgcache.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&nbsp;view:</td>
          <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">usr/include/apt-pkg</a> - pkgcache.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&nbsp;lines:</td>
          <td class="headerValue" width="20%">2</td>
        </tr>
        <tr>
          <td class="headerItem" width="20%">Code&nbsp;covered:</td>
          <td class="headerValue" width="20%">100.0 %</td>
          <td width="20%"></td>
          <td class="headerItem" width="20%">Executed&nbsp;lines:</td>
          <td class="headerValue" width="20%">2</td>
        </tr>
        </table>
      </td>
    </tr>
    <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
  </table>

  <table cellpadding=0 cellspacing=0 border=0>
    <tr>
      <td><br></td>
    </tr>
    <tr>
      <td><pre class="source">
<span class="lineNum">       1 </span>                : // -*- mode: cpp; mode: fold -*-
<span class="lineNum">       2 </span>                : // Description                                                          /*{{{*/
<span class="lineNum">       3 </span>                : // $Id: pkgcache.h,v 1.25 2001/07/01 22:28:24 jgg Exp $
<span class="lineNum">       4 </span>                : /* ######################################################################
<span class="lineNum">       5 </span>                :    
<span class="lineNum">       6 </span>                :    Cache - Structure definitions for the cache file
<span class="lineNum">       7 </span>                :    
<span class="lineNum">       8 </span>                :    Please see doc/apt-pkg/cache.sgml for a more detailed description of 
<span class="lineNum">       9 </span>                :    this format. Also be sure to keep that file up-to-date!!
<span class="lineNum">      10 </span>                :    
<span class="lineNum">      11 </span>                :    Clients should always use the CacheIterators classes for access to the
<span class="lineNum">      12 </span>                :    cache. They provide a simple STL-like method for traversing the links
<span class="lineNum">      13 </span>                :    of the datastructure.
<span class="lineNum">      14 </span>                :    
<span class="lineNum">      15 </span>                :    See pkgcachegen.h for information about generating cache structures.
<span class="lineNum">      16 </span>                :    
<span class="lineNum">      17 </span>                :    ##################################################################### */
<span class="lineNum">      18 </span>                :                                                                         /*}}}*/
<span class="lineNum">      19 </span>                : #ifndef PKGLIB_PKGCACHE_H
<span class="lineNum">      20 </span>                : #define PKGLIB_PKGCACHE_H
<span class="lineNum">      21 </span>                : 
<span class="lineNum">      22 </span>                : 
<span class="lineNum">      23 </span>                : #include &lt;string&gt;
<span class="lineNum">      24 </span>                : #include &lt;time.h&gt;
<span class="lineNum">      25 </span>                : #include &lt;apt-pkg/mmap.h&gt;
<span class="lineNum">      26 </span>                : 
<span class="lineNum">      27 </span>                : using std::string;
<span class="lineNum">      28 </span>                :     
<span class="lineNum">      29 </span>                : class pkgVersioningSystem;
<span class="lineNum">      30 </span>                : class pkgCache
<span class="lineNum">      31 </span>                : {
<span class="lineNum">      32 </span>                :    public:
<span class="lineNum">      33 </span>                :    // Cache element predeclarations
<span class="lineNum">      34 </span>                :    struct Header;
<span class="lineNum">      35 </span>                :    struct Package;
<span class="lineNum">      36 </span>                :    struct PackageFile;
<span class="lineNum">      37 </span>                :    struct Version;
<span class="lineNum">      38 </span>                :    struct Description;
<span class="lineNum">      39 </span>                :    struct Provides;
<span class="lineNum">      40 </span>                :    struct Dependency;
<span class="lineNum">      41 </span>                :    struct StringItem;
<span class="lineNum">      42 </span>                :    struct VerFile;
<span class="lineNum">      43 </span>                :    struct DescFile;
<span class="lineNum">      44 </span>                :    
<span class="lineNum">      45 </span>                :    // Iterators
<span class="lineNum">      46 </span>                :    class PkgIterator;
<span class="lineNum">      47 </span>                :    class VerIterator;
<span class="lineNum">      48 </span>                :    class DescIterator;
<span class="lineNum">      49 </span>                :    class DepIterator;
<span class="lineNum">      50 </span>                :    class PrvIterator;
<span class="lineNum">      51 </span>                :    class PkgFileIterator;
<span class="lineNum">      52 </span>                :    class VerFileIterator;
<span class="lineNum">      53 </span>                :    class DescFileIterator;
<span class="lineNum">      54 </span>                :    friend class PkgIterator;
<span class="lineNum">      55 </span>                :    friend class VerIterator;
<span class="lineNum">      56 </span>                :    friend class DescInterator;
<span class="lineNum">      57 </span>                :    friend class DepIterator;
<span class="lineNum">      58 </span>                :    friend class PrvIterator;
<span class="lineNum">      59 </span>                :    friend class PkgFileIterator;
<span class="lineNum">      60 </span>                :    friend class VerFileIterator;
<span class="lineNum">      61 </span>                :    friend class DescFileIterator;
<span class="lineNum">      62 </span>                :    
<span class="lineNum">      63 </span>                :    class Namespace;
<span class="lineNum">      64 </span>                :    
<span class="lineNum">      65 </span>                :    // These are all the constants used in the cache structures
<span class="lineNum">      66 </span>                : 
<span class="lineNum">      67 </span>                :    // WARNING - if you change these lists you must also edit
<span class="lineNum">      68 </span>                :    // the stringification in pkgcache.cc and also consider whether
<span class="lineNum">      69 </span>                :    // the cache file will become incompatible.
<span class="lineNum">      70 </span>                :    struct Dep
<span class="lineNum">      71 </span>                :    {
<span class="lineNum">      72 </span>                :       enum DepType {Depends=1,PreDepends=2,Suggests=3,Recommends=4,
<span class="lineNum">      73 </span>                :          Conflicts=5,Replaces=6,Obsoletes=7,DpkgBreaks=8};
<span class="lineNum">      74 </span>                :       enum DepCompareOp {Or=0x10,NoOp=0,LessEq=0x1,GreaterEq=0x2,Less=0x3,
<span class="lineNum">      75 </span>                :          Greater=0x4,Equals=0x5,NotEquals=0x6};
<span class="lineNum">      76 </span>                :    };
<span class="lineNum">      77 </span>                :    
<span class="lineNum">      78 </span>                :    struct State
<span class="lineNum">      79 </span>                :    {
<span class="lineNum">      80 </span>                :       enum VerPriority {Important=1,Required=2,Standard=3,Optional=4,Extra=5};
<span class="lineNum">      81 </span>                :       enum PkgSelectedState {Unknown=0,Install=1,Hold=2,DeInstall=3,Purge=4};
<span class="lineNum">      82 </span>                :       enum PkgInstState {Ok=0,ReInstReq=1,HoldInst=2,HoldReInstReq=3};
<span class="lineNum">      83 </span>                :       enum PkgCurrentState {NotInstalled=0,UnPacked=1,HalfConfigured=2,
<span class="lineNum">      84 </span>                :            HalfInstalled=4,ConfigFiles=5,Installed=6,
<span class="lineNum">      85 </span>                :            TriggersAwaited=7,TriggersPending=8};
<span class="lineNum">      86 </span>                :    };
<span class="lineNum">      87 </span>                :    
<span class="lineNum">      88 </span>                :    struct Flag
<span class="lineNum">      89 </span>                :    {
<span class="lineNum">      90 </span>                :       enum PkgFlags {Auto=(1&lt;&lt;0),Essential=(1&lt;&lt;3),Important=(1&lt;&lt;4)};
<span class="lineNum">      91 </span>                :       enum PkgFFlags {NotSource=(1&lt;&lt;0),NotAutomatic=(1&lt;&lt;1)};
<span class="lineNum">      92 </span>                :    };
<span class="lineNum">      93 </span>                :    
<span class="lineNum">      94 </span>                :    protected:
<span class="lineNum">      95 </span>                :    
<span class="lineNum">      96 </span>                :    // Memory mapped cache file
<span class="lineNum">      97 </span>                :    string CacheFile;
<span class="lineNum">      98 </span>                :    MMap &amp;Map;
<span class="lineNum">      99 </span>                : 
<span class="lineNum">     100 </span>                :    unsigned long sHash(const string &amp;S) const;
<span class="lineNum">     101 </span>                :    unsigned long sHash(const char *S) const;
<span class="lineNum">     102 </span>                :    
<span class="lineNum">     103 </span>                :    public:
<span class="lineNum">     104 </span>                :    
<span class="lineNum">     105 </span>                :    // Pointers to the arrays of items
<span class="lineNum">     106 </span>                :    Header *HeaderP;
<span class="lineNum">     107 </span>                :    Package *PkgP;
<span class="lineNum">     108 </span>                :    VerFile *VerFileP;
<span class="lineNum">     109 </span>                :    DescFile *DescFileP;
<span class="lineNum">     110 </span>                :    PackageFile *PkgFileP;
<span class="lineNum">     111 </span>                :    Version *VerP;
<span class="lineNum">     112 </span>                :    Description *DescP;
<span class="lineNum">     113 </span>                :    Provides *ProvideP;
<span class="lineNum">     114 </span>                :    Dependency *DepP;
<span class="lineNum">     115 </span>                :    StringItem *StringItemP;
<span class="lineNum">     116 </span>                :    char *StrP;
<span class="lineNum">     117 </span>                : 
<span class="lineNum">     118 </span>                :    virtual bool ReMap();
<span class="lineNum">     119 </span>                :    inline bool Sync() {return Map.Sync();};
<span class="lineNum">     120 </span>                :    inline MMap &amp;GetMap() {return Map;};
<span class="lineNum">     121 </span>                :    inline void *DataEnd() {return ((unsigned char *)Map.Data()) + Map.Size();};
<span class="lineNum">     122 </span>                :       
<span class="lineNum">     123 </span>                :    // String hashing function (512 range)
<span class="lineNum">     124 </span>                :    inline unsigned long Hash(const string &amp;S) const {return sHash(S);};
<span class="lineNum">     125 </span>                :    inline unsigned long Hash(const char *S) const {return sHash(S);};
<span class="lineNum">     126 </span>                : 
<span class="lineNum">     127 </span>                :    // Usefull transformation things
<span class="lineNum">     128 </span>                :    const char *Priority(unsigned char Priority);
<span class="lineNum">     129 </span>                :    
<span class="lineNum">     130 </span>                :    // Accessors
<span class="lineNum">     131 </span>                :    PkgIterator FindPkg(const string &amp;Name);
<span class="lineNum">     132 </span>                :    Header &amp;Head() {return *HeaderP;};
<span class="lineNum">     133 </span>                :    inline PkgIterator PkgBegin();
<span class="lineNum">     134 </span>                :    inline PkgIterator PkgEnd();
<span class="lineNum">     135 </span>                :    inline PkgFileIterator FileBegin();
<span class="lineNum">     136 </span>                :    inline PkgFileIterator FileEnd();
<span class="lineNum">     137 </span>                : 
<span class="lineNum">     138 </span>                :    // Make me a function
<span class="lineNum">     139 </span>                :    pkgVersioningSystem *VS;
<span class="lineNum">     140 </span>                :    
<span class="lineNum">     141 </span>                :    // Converters
<span class="lineNum">     142 </span>                :    static const char *CompTypeDeb(unsigned char Comp);
<span class="lineNum">     143 </span>                :    static const char *CompType(unsigned char Comp);
<span class="lineNum">     144 </span>                :    static const char *DepType(unsigned char Dep);
<span class="lineNum">     145 </span>                :    
<span class="lineNum">     146 </span>                :    pkgCache(MMap *Map,bool DoMap = true);
<span class="lineNum">     147 </span>                :    virtual ~pkgCache() {};
<span class="lineNum">     148 </span>                : };
<span class="lineNum">     149 </span>                : 
<span class="lineNum">     150 </span>                : // Header structure
<span class="lineNum">     151 </span>                : struct pkgCache::Header
<span class="lineNum">     152 </span>                : {
<span class="lineNum">     153 </span>                :    // Signature information
<span class="lineNum">     154 </span>                :    unsigned long Signature;
<span class="lineNum">     155 </span>                :    short MajorVersion;
<span class="lineNum">     156 </span>                :    short MinorVersion;
<span class="lineNum">     157 </span>                :    bool Dirty;
<span class="lineNum">     158 </span>                :    
<span class="lineNum">     159 </span>                :    // Size of structure values
<span class="lineNum">     160 </span>                :    unsigned short HeaderSz;
<span class="lineNum">     161 </span>                :    unsigned short PackageSz;
<span class="lineNum">     162 </span>                :    unsigned short PackageFileSz;
<span class="lineNum">     163 </span>                :    unsigned short VersionSz;
<span class="lineNum">     164 </span>                :    unsigned short DescriptionSz;
<span class="lineNum">     165 </span>                :    unsigned short DependencySz;
<span class="lineNum">     166 </span>                :    unsigned short ProvidesSz;
<span class="lineNum">     167 </span>                :    unsigned short VerFileSz;
<span class="lineNum">     168 </span>                :    unsigned short DescFileSz;
<span class="lineNum">     169 </span>                :    
<span class="lineNum">     170 </span>                :    // Structure counts
<span class="lineNum">     171 </span>                :    unsigned long PackageCount;
<span class="lineNum">     172 </span>                :    unsigned long VersionCount;
<span class="lineNum">     173 </span>                :    unsigned long DescriptionCount;
<span class="lineNum">     174 </span>                :    unsigned long DependsCount;
<span class="lineNum">     175 </span>                :    unsigned long PackageFileCount;
<span class="lineNum">     176 </span>                :    unsigned long VerFileCount;
<span class="lineNum">     177 </span>                :    unsigned long DescFileCount;
<span class="lineNum">     178 </span>                :    unsigned long ProvidesCount;
<span class="lineNum">     179 </span>                :    
<span class="lineNum">     180 </span>                :    // Offsets
<span class="lineNum">     181 </span>                :    map_ptrloc FileList;              // struct PackageFile
<span class="lineNum">     182 </span>                :    map_ptrloc StringList;            // struct StringItem
<span class="lineNum">     183 </span>                :    map_ptrloc VerSysName;            // StringTable
<span class="lineNum">     184 </span>                :    map_ptrloc Architecture;          // StringTable
<span class="lineNum">     185 </span>                :    unsigned long MaxVerFileSize;
<span class="lineNum">     186 </span>                :    unsigned long MaxDescFileSize;
<span class="lineNum">     187 </span>                : 
<span class="lineNum">     188 </span>                :    /* Allocation pools, there should be one of these for each structure
<span class="lineNum">     189 </span>                :       excluding the header */
<span class="lineNum">     190 </span>                :    DynamicMMap::Pool Pools[8];
<span class="lineNum">     191 </span>                :    
<span class="lineNum">     192 </span>                :    // Rapid package name lookup
<span class="lineNum">     193 </span>                :    map_ptrloc HashTable[2*1048];
<span class="lineNum">     194 </span>                : 
<span class="lineNum">     195 </span>                :    bool CheckSizes(Header &amp;Against) const;
<span class="lineNum">     196 </span>                :    Header();
<span class="lineNum">     197 </span>                : };
<span class="lineNum">     198 </span>                : 
<span class="lineNum">     199 </span>                : struct pkgCache::Package
<span class="lineNum">     200 </span>                : {
<span class="lineNum">     201 </span>                :    // Pointers
<span class="lineNum">     202 </span>                :    map_ptrloc Name;              // Stringtable
<span class="lineNum">     203 </span>                :    map_ptrloc VersionList;       // Version
<span class="lineNum">     204 </span>                :    map_ptrloc CurrentVer;        // Version
<span class="lineNum">     205 </span>                :    map_ptrloc Section;           // StringTable (StringItem)
<span class="lineNum">     206 </span>                :       
<span class="lineNum">     207 </span>                :    // Linked list 
<span class="lineNum">     208 </span>                :    map_ptrloc NextPackage;       // Package
<span class="lineNum">     209 </span>                :    map_ptrloc RevDepends;        // Dependency
<span class="lineNum">     210 </span>                :    map_ptrloc ProvidesList;      // Provides
<span class="lineNum">     211 </span>                : 
<span class="lineNum">     212 </span>                :    // Install/Remove/Purge etc
<span class="lineNum">     213 </span>                :    unsigned char SelectedState;     // What
<span class="lineNum">     214 </span>                :    unsigned char InstState;         // Flags
<span class="lineNum">     215 </span>                :    unsigned char CurrentState;      // State
<span class="lineNum">     216 </span>                :    
<span class="lineNum">     217 </span>                :    unsigned short ID;
<span class="lineNum">     218 </span>                :    unsigned long Flags;
<span class="lineNum">     219 </span>                : };
<span class="lineNum">     220 </span>                : 
<span class="lineNum">     221 </span>                : struct pkgCache::PackageFile
<span class="lineNum">     222 </span>                : {
<span class="lineNum">     223 </span>                :    // Names
<span class="lineNum">     224 </span>                :    map_ptrloc FileName;        // Stringtable
<span class="lineNum">     225 </span>                :    map_ptrloc Archive;         // Stringtable
<span class="lineNum">     226 </span>                :    map_ptrloc Component;       // Stringtable
<span class="lineNum">     227 </span>                :    map_ptrloc Version;         // Stringtable
<span class="lineNum">     228 </span>                :    map_ptrloc Origin;          // Stringtable
<span class="lineNum">     229 </span>                :    map_ptrloc Label;           // Stringtable
<span class="lineNum">     230 </span>                :    map_ptrloc Architecture;    // Stringtable
<span class="lineNum">     231 </span>                :    map_ptrloc Site;            // Stringtable
<span class="lineNum">     232 </span>                :    map_ptrloc IndexType;       // Stringtable
<span class="lineNum">     233 </span>                :    unsigned long Size;            
<span class="lineNum">     234 </span>                :    unsigned long Flags;
<span class="lineNum">     235 </span>                :    
<span class="lineNum">     236 </span>                :    // Linked list
<span class="lineNum">     237 </span>                :    map_ptrloc NextFile;        // PackageFile
<span class="lineNum">     238 </span>                :    unsigned short ID;
<span class="lineNum">     239 </span>                :    time_t mtime;                  // Modification time for the file
<span class="lineNum">     240 </span>                : };
<span class="lineNum">     241 </span>                : 
<span class="lineNum">     242 </span>                : struct pkgCache::VerFile
<span class="lineNum">     243 </span>                : {
<span class="lineNum">     244 </span>                :    map_ptrloc File;           // PackageFile
<span class="lineNum">     245 </span>                :    map_ptrloc NextFile;       // PkgVerFile
<span class="lineNum">     246 </span>                :    map_ptrloc Offset;         // File offset
<span class="lineNum">     247 </span>                :    unsigned short Size;
<span class="lineNum">     248 </span>                : };
<span class="lineNum">     249 </span>                : 
<span class="lineNum">     250 </span>                : struct pkgCache::DescFile
<span class="lineNum">     251 </span>                : {
<span class="lineNum">     252 </span>                :    map_ptrloc File;           // PackageFile
<span class="lineNum">     253 </span>                :    map_ptrloc NextFile;       // PkgVerFile
<span class="lineNum">     254 </span>                :    map_ptrloc Offset;         // File offset
<span class="lineNum">     255 </span>                :    unsigned short Size;
<span class="lineNum">     256 </span>                : };
<span class="lineNum">     257 </span>                : 
<span class="lineNum">     258 </span>                : struct pkgCache::Version
<span class="lineNum">     259 </span>                : {
<span class="lineNum">     260 </span>                :    map_ptrloc VerStr;            // Stringtable
<span class="lineNum">     261 </span>                :    map_ptrloc Section;           // StringTable (StringItem)
<span class="lineNum">     262 </span>                :    map_ptrloc Arch;              // StringTable
<span class="lineNum">     263 </span>                :       
<span class="lineNum">     264 </span>                :    // Lists
<span class="lineNum">     265 </span>                :    map_ptrloc FileList;          // VerFile
<span class="lineNum">     266 </span>                :    map_ptrloc NextVer;           // Version
<span class="lineNum">     267 </span>                :    map_ptrloc DescriptionList;   // Description
<span class="lineNum">     268 </span>                :    map_ptrloc DependsList;       // Dependency
<span class="lineNum">     269 </span>                :    map_ptrloc ParentPkg;         // Package
<span class="lineNum">     270 </span>                :    map_ptrloc ProvidesList;      // Provides
<span class="lineNum">     271 </span>                :    
<span class="lineNum">     272 </span>                :    map_ptrloc Size;              // These are the .deb size
<span class="lineNum">     273 </span>                :    map_ptrloc InstalledSize;
<span class="lineNum">     274 </span>                :    unsigned short Hash;
<span class="lineNum">     275 </span>                :    unsigned short ID;
<span class="lineNum">     276 </span>                :    unsigned char Priority;
<span class="lineNum">     277 </span>                : };
<span class="lineNum">     278 </span>                : 
<span class="lineNum">     279 </span>                : struct pkgCache::Description
<span class="lineNum">     280 </span>                : {
<span class="lineNum">     281 </span>                :    // Language Code store the description translation language code. If
<span class="lineNum">     282 </span>                :    // the value has a 0 lenght then this is readed using the Package
<span class="lineNum">     283 </span>                :    // file else the Translation-CODE are used.
<span class="lineNum">     284 </span>                :    map_ptrloc language_code;     // StringTable
<span class="lineNum">     285 </span>                :    map_ptrloc md5sum;            // StringTable
<span class="lineNum">     286 </span>                : 
<span class="lineNum">     287 </span>                :    // Linked list 
<span class="lineNum">     288 </span>                :    map_ptrloc FileList;          // DescFile
<span class="lineNum">     289 </span>                :    map_ptrloc NextDesc;          // Description
<span class="lineNum">     290 </span>                :    map_ptrloc ParentPkg;         // Package
<span class="lineNum">     291 </span>                : 
<span class="lineNum">     292 </span>                :    unsigned short ID;
<span class="lineNum">     293 </span>                : };
<span class="lineNum">     294 </span>                : 
<span class="lineNum">     295 </span>                : struct pkgCache::Dependency
<span class="lineNum">     296 </span>                : {
<span class="lineNum">     297 </span>                :    map_ptrloc Version;         // Stringtable
<span class="lineNum">     298 </span>                :    map_ptrloc Package;         // Package
<span class="lineNum">     299 </span>                :    map_ptrloc NextDepends;     // Dependency
<span class="lineNum">     300 </span>                :    map_ptrloc NextRevDepends;  // Dependency
<span class="lineNum">     301 </span>                :    map_ptrloc ParentVer;       // Version
<span class="lineNum">     302 </span>                :    
<span class="lineNum">     303 </span>                :    // Specific types of depends
<span class="lineNum">     304 </span>                :    map_ptrloc ID;   
<span class="lineNum">     305 </span>                :    unsigned char Type;
<span class="lineNum">     306 </span>                :    unsigned char CompareOp;
<span class="lineNum">     307 </span>                : };
<span class="lineNum">     308 </span>                : 
<span class="lineNum">     309 </span>                : struct pkgCache::Provides
<span class="lineNum">     310 </span>                : {
<span class="lineNum">     311 </span>                :    map_ptrloc ParentPkg;        // Pacakge
<span class="lineNum">     312 </span>                :    map_ptrloc Version;          // Version
<span class="lineNum">     313 </span>                :    map_ptrloc ProvideVersion;   // Stringtable
<span class="lineNum">     314 </span>                :    map_ptrloc NextProvides;     // Provides
<span class="lineNum">     315 </span>                :    map_ptrloc NextPkgProv;      // Provides
<span class="lineNum">     316 </span>                : };
<span class="lineNum">     317 </span>                : 
<span class="lineNum">     318 </span>                : struct pkgCache::StringItem
<span class="lineNum">     319 </span>                : {
<span class="lineNum">     320 </span>                :    map_ptrloc String;        // Stringtable
<span class="lineNum">     321 </span>                :    map_ptrloc NextItem;      // StringItem
<span class="lineNum">     322 </span>                : };
<span class="lineNum">     323 </span>                : 
<span class="lineNum">     324 </span>                : #include &lt;apt-pkg/cacheiterators.h&gt;
<span class="lineNum">     325 </span>                : 
<span class="lineNum">     326 </span><span class="lineCov">             19 : inline pkgCache::PkgIterator pkgCache::PkgBegin() </span>
<span class="lineNum">     327 </span><span class="lineCov">             19 :        {return PkgIterator(*this);};</span>
<span class="lineNum">     328 </span>                : inline pkgCache::PkgIterator pkgCache::PkgEnd() 
<span class="lineNum">     329 </span>                :        {return PkgIterator(*this,PkgP);};
<span class="lineNum">     330 </span>                : inline pkgCache::PkgFileIterator pkgCache::FileBegin()
<span class="lineNum">     331 </span>                :        {return PkgFileIterator(*this,PkgFileP + HeaderP-&gt;FileList);};
<span class="lineNum">     332 </span>                : inline pkgCache::PkgFileIterator pkgCache::FileEnd()
<span class="lineNum">     333 </span>                :        {return PkgFileIterator(*this,PkgFileP);};
<span class="lineNum">     334 </span>                : 
<span class="lineNum">     335 </span>                : // Oh I wish for Real Name Space Support
<span class="lineNum">     336 </span>                : class pkgCache::Namespace
<span class="lineNum">     337 </span>                : {   
<span class="lineNum">     338 </span>                :    public:
<span class="lineNum">     339 </span>                : 
<span class="lineNum">     340 </span>                :    typedef pkgCache::PkgIterator PkgIterator;
<span class="lineNum">     341 </span>                :    typedef pkgCache::VerIterator VerIterator;
<span class="lineNum">     342 </span>                :    typedef pkgCache::DescIterator DescIterator;
<span class="lineNum">     343 </span>                :    typedef pkgCache::DepIterator DepIterator;
<span class="lineNum">     344 </span>                :    typedef pkgCache::PrvIterator PrvIterator;
<span class="lineNum">     345 </span>                :    typedef pkgCache::PkgFileIterator PkgFileIterator;
<span class="lineNum">     346 </span>                :    typedef pkgCache::VerFileIterator VerFileIterator;   
<span class="lineNum">     347 </span>                :    typedef pkgCache::Version Version;
<span class="lineNum">     348 </span>                :    typedef pkgCache::Description Description;
<span class="lineNum">     349 </span>                :    typedef pkgCache::Package Package;
<span class="lineNum">     350 </span>                :    typedef pkgCache::Header Header;
<span class="lineNum">     351 </span>                :    typedef pkgCache::Dep Dep;
<span class="lineNum">     352 </span>                :    typedef pkgCache::Flag Flag;
<span class="lineNum">     353 </span>                : };
<span class="lineNum">     354 </span>                : 
<span class="lineNum">     355 </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>