00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | (C) SuSE Linux Products GmbH | 00011 \----------------------------------------------------------------------/ 00012 00013 File: YUMImpl.h 00014 00015 Author: Michael Andres <ma@suse.de> 00016 Maintainer: Michael Andres <ma@suse.de> 00017 00018 Purpose: YUM installation source implementation 00019 00020 /-*/ 00021 #ifndef YUMImpl_h 00022 #define YUMImpl_h 00023 00024 #include <iosfwd> 00025 00026 #include "y2pm/InstSrcDataYUM.h" 00027 #include "y2pm/YUMParser.h" 00028 #include "YUMRepodata.h" 00029 00031 namespace YUM 00032 { 00033 00035 // 00036 // CLASS NAME : Impl 00040 class Impl : public Rep 00041 { 00042 Impl & operator=( const Impl & ); 00043 Impl ( const Impl & ); 00044 00045 public: 00049 typedef InstSrcError Error; 00050 00054 Impl( InstSrcDataYUM & parent, const Pathname & repoDir_r ); 00055 00059 virtual 00060 ~Impl() 00061 {} 00062 00066 virtual std::ostream & 00067 dumpOn( std::ostream & str ) const; 00068 00072 const std::list<PMPackagePtr> & 00073 getPackages() const 00074 { return _packages; } 00075 00076 public: 00077 00081 constInstSrcPtr 00082 instSrc() const 00083 { return _parent._instSrc; } 00084 00088 PMError 00089 providePkgToInstall( const Pathname & pkgfile_r, Pathname & path_r ) const; 00090 00094 const Repodata & 00095 repodata() const 00096 { return _repodata; } 00097 00098 private: 00099 00100 bool 00101 scanPrimary( YUMPrimaryParser & iter_r ); 00102 00103 private: 00107 InstSrcDataYUM & _parent; 00108 00112 Repodata _repodata; 00113 00117 std::list<PMPackagePtr> _packages; 00118 }; 00119 00121 00123 } // namespace YUM 00125 #endif // YUMImpl_h
1.4.4