Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

InstSrcDataPLAIN.h

Go to the documentation of this file.
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 

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