00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | (C) SuSE GmbH | 00011 \----------------------------------------------------------------------/ 00012 00013 File: InstSrcDataPLAIN.h 00014 00015 Author: Michael Andres <ma@suse.de> 00016 Maintainer: Michael Andres <ma@suse.de> 00017 00018 Purpose: 00019 00020 /-*/ 00021 #ifndef InstSrcDataPLAIN_h 00022 #define InstSrcDataPLAIN_h 00023 00024 #include <iosfwd> 00025 #include <list> 00026 00027 #include <y2pm/InstSrcDataPLAINPtr.h> 00028 #include <y2pm/InstSrcData.h> 00029 #include <y2pm/PMPackage.h> 00030 #include <y2pm/RpmHeaderPtr.h> 00031 00032 class RpmHeaderCache; 00033 00035 // 00036 // CLASS NAME : InstSrcDataPLAIN 00040 class InstSrcDataPLAIN : public InstSrcData { 00041 REP_BODY(InstSrcDataPLAIN); 00042 00043 public: 00044 00048 typedef InstSrcError Error; 00049 00050 private: 00051 00052 RpmHeaderCache & _cache; 00053 00057 std::list<PMPackagePtr> _packages; 00058 00059 protected: 00060 00064 InstSrcDataPLAIN( const Pathname & cachefile_r ); 00065 00066 00067 friend class PMPLAINPackageDataProvider; 00068 00072 constRpmHeaderPtr getHeaderAt( unsigned _cachepos ) const; 00073 00074 PMError providePkgToInstall( const Pathname & pkgfile_r, Pathname & path_r ) const; 00075 00076 public: 00077 00078 virtual ~InstSrcDataPLAIN(); 00079 00083 const std::list<PMPackagePtr> & getPackages() const { return _packages; } 00084 00085 public: 00086 00096 static PMError tryGetDescr( InstSrcDescrPtr & ndescr_r, 00097 const InstSrcPtr source_r, 00098 MediaAccessPtr media_r, 00099 const Pathname & product_dir_r, 00100 const Url & mediaurl_r ); 00101 00111 static PMError tryGetData( InstSrcDataPtr & ndata_r, const InstSrcPtr source_r ); 00112 00113 public: 00114 00115 virtual std::ostream & dumpOn( std::ostream & str ) const; 00116 }; 00117 00119 00120 #endif // InstSrcDataPLAIN_h 00121