PackageDelta.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00012 #ifndef ZYPP_SOURCE_PACKAGEDELTA_H
00013 #define ZYPP_SOURCE_PACKAGEDELTA_H
00014 
00015 #include <iosfwd>
00016 #include <list>
00017 
00018 #include "zypp/Date.h"
00019 #include "zypp/ByteCount.h"
00020 #include "zypp/Arch.h"
00021 #include "zypp/Edition.h"
00022 #include "zypp/CheckSum.h"
00023 #include "zypp/Pathname.h"
00024 
00026 namespace zypp
00027 { 
00028 
00029   namespace packagedelta
00030   { 
00031 
00033 
00034     class BaseVersion
00035     {
00036     public:
00037       BaseVersion( const Edition & edition,
00038                    const CheckSum & checksum,
00039                    const Date & buildtime )
00040       : _edition( edition )
00041       , _checksum( checksum )
00042       , _buildtime( buildtime )
00043       {}
00044 
00045       Edition edition() const
00046       { return _edition; }
00047 
00048       CheckSum checksum() const
00049       { return _checksum; }
00050 
00051       Date buildtime() const
00052       { return _buildtime; }
00053 
00054     private:
00055       Edition  _edition;
00056       CheckSum _checksum;
00057       Date     _buildtime;
00058     };
00059 
00061     std::ostream & operator<<( std::ostream & str, const BaseVersion & obj );
00062 
00064     inline bool operator==( const BaseVersion & lhs, const BaseVersion & rhs )
00065     { return lhs.edition() == rhs.edition(); }
00066 
00068     inline bool operator!=( const BaseVersion & lhs, const BaseVersion & rhs )
00069     { return ! (lhs == rhs); }
00070 
00072 
00074     namespace detail
00075     { 
00076 
00077 
00078 
00080     } // namespace detail
00082 
00083 
00085 
00086     class PatchRpm
00087     {
00088     public:
00089       PatchRpm( const Arch & arch,
00090                 const Pathname & filename,
00091                 const ByteCount & downloadsize,
00092                 const CheckSum & checksum,
00093                 const Date & buildtime,
00094                 const std::list<BaseVersion> & base_versions,
00095                 const unsigned media_nr )
00096       : _arch( arch)
00097       , _filename( filename )
00098       , _downloadsize( downloadsize )
00099       , _checksum( checksum )
00100       , _buildtime( buildtime )
00101       , _base_versions( base_versions )
00102       , _media_nr( media_nr )
00103       {}
00104 
00105       Arch arch() const
00106       { return _arch; }
00107 
00108       Pathname filename() const
00109       { return _filename; }
00110 
00111       ByteCount downloadsize() const
00112       { return _downloadsize; }
00113 
00114       CheckSum checksum() const
00115       { return _checksum; }
00116 
00117       Date buildtime() const
00118       { return _buildtime; }
00119 
00120       const std::list<BaseVersion> & baseVersions() const
00121       { return _base_versions; }
00122 
00123       unsigned mediaNr() const
00124       { return _media_nr; }
00125 
00126     private:
00127       Arch                   _arch;
00128       Pathname               _filename;
00129       ByteCount              _downloadsize;
00130       CheckSum               _checksum;
00131       Date                   _buildtime;
00132       std::list<BaseVersion> _base_versions;
00133       unsigned               _media_nr;
00134     };
00135 
00137     std::ostream & operator<<( std::ostream & str, const PatchRpm & obj );
00138 
00140 
00141 
00142     class DeltaRpm
00143     {
00144     public:
00145       DeltaRpm( const Arch & arch,
00146                 const Pathname & filename,
00147                 const ByteCount & downloadsize,
00148                 const CheckSum & checksum,
00149                 const Date & buildtime,
00150                 const BaseVersion & base_version,
00151                 const unsigned media_nr )
00152       : _arch( arch)
00153       , _filename( filename )
00154       , _downloadsize( downloadsize )
00155       , _checksum( checksum )
00156       , _buildtime( buildtime )
00157       , _base_version( base_version )
00158       , _media_nr( media_nr )
00159       {}
00160 
00161       Arch arch() const
00162       { return _arch; }
00163 
00164       Pathname filename() const
00165       { return _filename; }
00166 
00167       ByteCount downloadsize() const
00168       { return _downloadsize; }
00169 
00170       CheckSum checksum() const
00171       { return _checksum; }
00172 
00173       Date buildtime() const
00174       { return _buildtime; }
00175 
00176       BaseVersion baseVersion() const
00177       { return _base_version; }
00178 
00179       unsigned mediaNr() const
00180       { return _media_nr; }
00181 
00182     private:
00183       Arch        _arch;
00184       Pathname    _filename;
00185       ByteCount   _downloadsize;
00186       CheckSum    _checksum;
00187       Date        _buildtime;
00188       BaseVersion _base_version;
00189       unsigned    _media_nr;
00190     };
00191 
00193     std::ostream & operator<<( std::ostream & str, const DeltaRpm & obj );
00194 
00196 
00198   } // namespace packagedelta
00201 } // namespace zypp
00203 #endif // ZYPP_SOURCE_PACKAGEDELTA_H

Generated on Thu Jul 6 00:07:23 2006 for zypp by  doxygen 1.4.6