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
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