apt  0.9.7.5ubuntu5.1
version.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description /*{{{*/
3 // $Id: version.h,v 1.8 2001/05/27 05:55:27 jgg Exp $
4 /* ######################################################################
5 
6  Version - Versioning system..
7 
8  The versioning system represents how versions are compared, represented
9  and how dependencies are evaluated. As a general rule versioning
10  systems are not compatible unless specifically allowed by the
11  TestCompatibility query.
12 
13  The versions are stored in a global list of versions, but that is just
14  so that they can be queried when someone does 'apt-get -v'.
15  pkgSystem provides the proper means to access the VS for the active
16  system.
17 
18  ##################################################################### */
19  /*}}}*/
20 #ifndef PKGLIB_VERSION_H
21 #define PKGLIB_VERSION_H
22 
23 #include <apt-pkg/strutl.h>
24 #include <string>
25 
26 #ifndef APT_8_CLEANER_HEADERS
27 using std::string;
28 #endif
29 
31 {
32  public:
33  // Global list of VS's
34  static pkgVersioningSystem **GlobalList;
35  static unsigned long GlobalListLen;
36  static pkgVersioningSystem *GetVS(const char *Label);
37 
38  const char *Label;
39 
40  // Compare versions..
41  virtual int DoCmpVersion(const char *A,const char *Aend,
42  const char *B,const char *Bend) = 0;
43 
44  virtual bool CheckDep(const char *PkgVer,int Op,const char *DepVer) = 0;
45  virtual int DoCmpReleaseVer(const char *A,const char *Aend,
46  const char *B,const char *Bend) = 0;
47  virtual std::string UpstreamVersion(const char *A) = 0;
48 
49  // See if the given VS is compatible with this one..
50  virtual bool TestCompatibility(pkgVersioningSystem const &Against)
51  {return this == &Against;};
52 
53  // Shortcuts
54  APT_MKSTRCMP(CmpVersion,DoCmpVersion);
55  APT_MKSTRCMP(CmpReleaseVer,DoCmpReleaseVer);
56 
58  virtual ~pkgVersioningSystem() {};
59 };
60 
61 #endif