00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
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