]>
Commit | Line | Data |
---|---|---|
da6ee469 JF |
1 | // -*- mode: cpp; mode: fold -*- |
2 | // Description /*{{{*/ | |
3 | // $Id: versionmatch.h,v 1.4 2001/05/29 03:07:12 jgg Exp $ | |
4 | /* ###################################################################### | |
5 | ||
6 | Version Matching | |
7 | ||
8 | This module takes a matching string and a type and locates the version | |
9 | record that satisfies the constraint described by the matching string. | |
10 | ||
11 | Version: 1.2* | |
12 | Release: o=Debian,v=2.1*,c=main | |
13 | Release: v=2.1* | |
14 | Release: * | |
15 | Origin: ftp.debian.org | |
16 | ||
17 | Release may be a complex type that can specify matches for any of: | |
18 | Version (v= with prefix) | |
19 | Origin (o=) | |
20 | Archive (a=) | |
21 | Label (l=) | |
22 | Component (c=) | |
23 | If there are no equals signs in the string then it is scanned in short | |
24 | form - if it starts with a number it is Version otherwise it is an | |
25 | Archive. | |
26 | ||
27 | Release may be a '*' to match all releases. | |
28 | ||
29 | ##################################################################### */ | |
30 | /*}}}*/ | |
31 | #ifndef PKGLIB_VERSIONMATCH_H | |
32 | #define PKGLIB_VERSIONMATCH_H | |
33 | ||
da6ee469 JF |
34 | |
35 | #include <string> | |
36 | #include <apt-pkg/pkgcache.h> | |
37 | ||
38 | using std::string; | |
39 | ||
40 | class pkgVersionMatch | |
41 | { | |
42 | // Version Matching | |
43 | string VerStr; | |
44 | bool VerPrefixMatch; | |
45 | ||
46 | // Release Matching | |
47 | string RelVerStr; | |
48 | bool RelVerPrefixMatch; | |
49 | string RelOrigin; | |
50 | string RelArchive; | |
51 | string RelLabel; | |
52 | string RelComponent; | |
53 | bool MatchAll; | |
54 | ||
55 | // Origin Matching | |
56 | string OrSite; | |
57 | ||
58 | public: | |
59 | ||
60 | enum MatchType {None = 0,Version,Release,Origin} Type; | |
61 | ||
62 | bool MatchVer(const char *A,string B,bool Prefix); | |
63 | bool FileMatch(pkgCache::PkgFileIterator File); | |
64 | pkgCache::VerIterator Find(pkgCache::PkgIterator Pkg); | |
65 | ||
66 | pkgVersionMatch(string Data,MatchType Type); | |
67 | }; | |
68 | ||
69 | #endif |