Main Page | Namespace List | Class Hierarchy | Class List | 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 class PMYouPackageDataProvider : public PMPackageDataProvider {
00032         REP_BODY(PMYouPackageDataProvider);
00033 
00034         PMYouPatchInfoPtr _patchInfo;
00035 
00036     public:
00037 
00038         PMYouPackageDataProvider( const PMYouPatchInfoPtr & );
00039 
00040         virtual ~PMYouPackageDataProvider();
00041 
00042     public:
00046         void setSummary( const PMPackagePtr &pkg, const std::string &label );
00047 
00051         std::string summary( const PMPackage & pkg_r ) const;
00052 
00056         void setSrcLabel( const PMPackagePtr &pkg, const std::string &label );
00057 
00061         std::string instSrcLabel( const PMPackage & pkg_r ) const;
00062 
00066         void setSize( const PMPackagePtr &pkg, const FSize & );
00067 
00071         FSize size( const PMPackage & ) const;
00072 
00076         void setLocation( const PMPackagePtr &pkg, const std::string &str );
00077 
00081         std::string location( const PMPackage & ) const;
00082 
00086         std::string group( const PMPackage & pkg_r ) const;
00087 
00091         YStringTreeItem *group_ptr( const PMPackage & pkg_r ) const;
00092 
00096         void setRpmGroup( const PMPackagePtr &, const std::string &group );
00097 
00101         void setExternalUrl( const PMPackagePtr &pkg, const std::string &str );
00102 
00106         std::string externalUrl( const PMPackage & ) const;
00107 
00111         void setPatchRpmBaseVersions( const PMPackagePtr &pkg,
00112                                       const std::list<PkgEdition> &editions );
00113 
00117         std::list<PkgEdition> patchRpmBaseVersions( const PMPackage & ) const;
00118 
00122         void setArchiveSize( const PMPackagePtr &, const FSize & );
00123 
00127         FSize archivesize( const PMPackage & ) const;
00128 
00132         void setPatchRpmSize( const PMPackagePtr &, const FSize & );
00133 
00137         FSize patchRpmSize( const PMPackage & ) const;
00138 
00142         void setForceInstall( const PMPackagePtr &, bool );
00143         
00147         bool forceInstall( const PMPackage & ) const;
00148 
00153         virtual void du( const PMPackage & pkg_r, PkgDu & dudata_r ) const;
00154 
00155     private:
00156         std::map<PMPackagePtr,std::string> _summaries;
00157         std::map<PMPackagePtr,std::string> _srcLabels;
00158         std::map<PMPackagePtr,FSize> _sizes;
00159         std::map<PMPackagePtr,std::string> _locations;
00160         std::map<PMPackagePtr,std::string> _externalUrls;
00161         std::map<PMPackagePtr,std::list<PkgEdition> > _patchRpmBaseVersions;
00162         std::map<PMPackagePtr,YStringTreeItem *> _rpmGroups;
00163         std::map<PMPackagePtr,FSize> _archiveSizes;
00164         std::map<PMPackagePtr,FSize> _patchRpmSizes;
00165         std::map<PMPackagePtr,bool> _forceInstalls;
00166 };
00167 
00168 #endif // PMYouPackageDataProvider_h

Generated on Fri Nov 9 14:30:31 2007 for yast2-packagemanager by doxygen 1.3.6