- initial import of revision 374 from cnc
[apt.git] / apt-pkg / rpm / rpmversion.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description                                                          /*{{{*/
3 // $Id: rpmversion.h,v 1.1 2002/07/23 17:54:51 niemeyer Exp $
4 /* ######################################################################
5
6    RPM Version - Versioning system for RPM
7
8    This implements the RPM versioning system.
9    
10    ##################################################################### */
11                                                                         /*}}}*/
12 #ifndef PKGLIB_RPMVERSION_H
13 #define PKGLIB_RPMVERSION_H
14
15 #ifdef __GNUG__
16 #pragma interface "apt-pkg/rpmversion.h"
17 #endif 
18
19 #include <apt-pkg/version.h>
20 #include <apt-pkg/strutl.h>    
21     
22 class rpmVersioningSystem : public pkgVersioningSystem
23 {     
24    void ParseVersion(const char *V, const char *VEnd, 
25                      char **Epoch, char **Version, char **Release);
26    
27    public:
28    
29    // Compare versions..
30    virtual int DoCmpVersion(const char *A,const char *Aend,
31                             const char *B,const char *Bend);
32    virtual int DoCmpVersionArch(const char *A,const char *Aend,
33                                 const char *AA,const char *AAend,
34                                 const char *B,const char *Bend,
35                                 const char *BA,const char *BAend);
36    virtual bool CheckDep(const char *PkgVer,int Op,const char *DepVer);
37    virtual bool CheckDep(const char *PkgVer,pkgCache::DepIterator Dep);
38    virtual int DoCmpReleaseVer(const char *A,const char *Aend,
39                              const char *B,const char *Bend)
40    {
41       return DoCmpVersion(A,Aend,B,Bend);
42    }   
43    virtual string UpstreamVersion(const char *A);
44
45    rpmVersioningSystem();
46 };
47
48 extern rpmVersioningSystem rpmVS;
49
50 #endif