Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

PMYouPackageDataProvider.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                                                                      |
00003 |                      __   __    ____ _____ ____                      |
00004 |                      \ \ / /_ _/ ___|_   _|___ \                     |
00005 |                       \ V / _` \___ \ | |   __) |                    |
00006 |                        | | (_| |___) || |  / __/                     |
00007 |                        |_|\__,_|____/ |_| |_____|                    |
00008 |                                                                      |
00009 |                               core system                            |
00010 |                                                     (C) 2002 SuSE AG |
00011 \----------------------------------------------------------------------/
00012 
00013    File:       PMYouPackageDataProvider.h
00014    Purpose:    Implements PackageDataProvider for YOU patches.
00015    Author:     Cornelius Schumacher <cschum@suse.de>
00016    Maintainer: Cornelius Schumacher <cschum@suse.de>
00017 
00018 /-*/
00019 
00020 #ifndef PMYouPackageDataProvider_h
00021 #define PMYouPackageDataProvider_h
00022 
00023 #include <y2pm/PMYouPackageDataProviderPtr.h>
00024 #include <y2pm/PMPackageDataProvider.h>
00025 #include <y2pm/PMPackage.h>
00026 #include <y2pm/PMObject.h>
00027 #include <y2pm/PMYouPatchInfo.h>
00028 
00029 #include <y2util/YRpmGroupsTree.h>
00030 
00031 
00032 class PMYouPackageDataProvider : public PMPackageDataProvider {
00033         REP_BODY(PMYouPackageDataProvider);
00034 
00035         PMYouPatchInfoPtr _patchInfo;
00036 
00037     public:
00038 
00039         PMYouPackageDataProvider( const PMYouPatchInfoPtr & );
00040 
00041         virtual ~PMYouPackageDataProvider();
00042 
00043     public:
00047         void setSummary( const PMPackagePtr &pkg, const std::string &label );
00048 
00052         std::string summary( const PMPackage & pkg_r ) const;
00053 
00057         void setSrcLabel( const PMPackagePtr &pkg, const std::string &label );
00058 
00062         std::string instSrcLabel( const PMPackage & pkg_r ) const;
00063 
00067         void setSize( const PMPackagePtr &pkg, const FSize & );
00068 
00072         FSize size( const PMPackage & ) const;
00073 
00077         void setLocation( const PMPackagePtr &pkg, const std::string &str );
00078 
00082         std::string location( const PMPackage & ) const;
00083 
00087         std::string group( const PMPackage & pkg_r ) const;
00088 
00092         YStringTreeItem *group_ptr( const PMPackage & pkg_r ) const;
00093 
00097         void setRpmGroup( const PMPackagePtr &, const std::string &group );
00098 
00102         void setExternalUrl( const PMPackagePtr &pkg, const std::string &str );
00103 
00107         std::string externalUrl( const PMPackage & ) const;
00108 
00112         void setPatchRpmBaseVersions( const PMPackagePtr &pkg,
00113                                       const std::list<PkgEdition> &editions );
00114 
00118         std::list<PkgEdition> patchRpmBaseVersions( const PMPackage & ) const;
00119 
00123         void setArchiveSize( const PMPackagePtr &, const FSize & );
00124 
00128         FSize archivesize( const PMPackage & ) const;
00129 
00133         void setPatchRpmSize( const PMPackagePtr &, const FSize & );
00134 
00138         FSize patchRpmSize( const PMPackage & ) const;
00139 
00143         void setForceInstall( const PMPackagePtr &, bool );
00144         
00148         bool forceInstall( const PMPackage & ) const;
00149 
00153         void setMD5sum( const PMPackagePtr &, const std::string& md5sum );
00154         
00158         std::string md5sum( const PMPackage & ) const;
00159 
00163         void setPatchRpmMD5sum( const PMPackagePtr &, const std::string& md5sum );
00164         
00168         std::string patchRpmMD5( const PMPackage & ) const;
00169 
00170 
00175         virtual void du( const PMPackage & pkg_r, PkgDu & dudata_r ) const;
00176 
00177         void addDelta(PMPackagePtr pkg, const PMPackageDelta& delta);
00178 
00179         virtual std::list<PMPackageDelta>  deltas( const PMPackage & pkg_r ) const;
00180 
00181     private:
00182         std::map<PMPackagePtr,std::string> _summaries;
00183         std::map<PMPackagePtr,std::string> _srcLabels;
00184         std::map<PMPackagePtr,FSize> _sizes;
00185         std::map<PMPackagePtr,std::string> _locations;
00186         std::map<PMPackagePtr,std::string> _externalUrls;
00187         std::map<PMPackagePtr,std::list<PkgEdition> > _patchRpmBaseVersions;
00188         std::map<PMPackagePtr,YStringTreeItem *> _rpmGroups;
00189         std::map<PMPackagePtr,FSize> _archiveSizes;
00190         std::map<PMPackagePtr,FSize> _patchRpmSizes;
00191         std::map<PMPackagePtr,bool> _forceInstalls;
00192         std::map<PMPackagePtr,std::list<PMPackageDelta> > _deltas;
00193         std::map<PMPackagePtr,std::string> _md5sum;
00194         std::map<PMPackagePtr,std::string> _patchrpmmd5sum;
00195 };
00196 
00197 #endif // PMYouPackageDataProvider_h

Generated on Mon Sep 12 21:52:13 2005 for yast2-packagemanager by  doxygen 1.4.4