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

PMPackageManager.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:       PMPackageManager.h
00014 
00015   Author:     Michael Andres <ma@suse.de>
00016   Maintainer: Michael Andres <ma@suse.de>
00017 
00018 /-*/
00019 #ifndef PMPackageManager_h
00020 #define PMPackageManager_h
00021 
00022 #include <iosfwd>
00023 #include <list>
00024 
00025 #include <y2util/YRpmGroupsTree.h>
00026 
00027 #include <y2pm/PMError.h>
00028 #include <y2pm/PMManager.h>
00029 #include <y2pm/PMPackage.h>
00030 #include <y2pm/PMPackageManager_update.h>
00031 #include <y2pm/PkgDu.h>
00032 
00034 //
00035 //      CLASS NAME : PMPackageManager
00039 class PMPackageManager : public PMManager {
00040 
00041   friend std::ostream & operator<<( std::ostream & str, const PMPackageManager & obj );
00042 
00043   PMPackageManager & operator=( const PMPackageManager & );
00044   PMPackageManager            ( const PMPackageManager & );
00045 
00046   private:
00047 
00048     friend class Y2PM;
00049     PMPackageManager();
00050     virtual ~PMPackageManager();
00051 
00052   private:
00053 
00058     virtual PMObjectPtr assertObjectType( const PMObjectPtr & object_r ) const;
00059 
00063     virtual void prePSI();
00067     virtual void postPSI();
00068 
00069   private:
00070 
00074     PMManager::PMSelectableVec _update_items;
00075 
00076   private:
00077 
00078     YRpmGroupsTree * _rpmGroupsTree;
00079 
00080   public:
00081 
00087     void getPackagesToInsDel( std::list<PMPackagePtr> & dellist_r,
00088                               std::list<PMPackagePtr> & instlist_r,
00089                               std::list<PMPackagePtr> & srclist_r );
00090 
00098     void doUpdate( PMUpdateStats & opt_stats_r );
00099 
00103     unsigned updateSize() const { return _update_items.size(); }
00104 
00108     bool updateEmpty() const { return _update_items.empty(); }
00109 
00113     PMSelectableVec::const_iterator updateBegin() const { return _update_items.begin(); }
00114 
00118     PMSelectableVec::const_iterator updateEnd() const { return _update_items.end(); }
00119 
00120 
00124     YRpmGroupsTree * rpmGroupsTree() const { return _rpmGroupsTree; }
00125 
00132     YStringTreeItem * addRpmGroup( const std::string & rpmGroup )
00133         { return _rpmGroupsTree->addRpmGroup( rpmGroup ); }
00134 
00138     std::string rpmGroup( const YStringTreeItem * node )
00139         { return _rpmGroupsTree->rpmGroup( node ); }
00140 
00144     std::string translatedRpmGroup( const YStringTreeItem * node )
00145         { return _rpmGroupsTree->translatedRpmGroup( node ); }
00146 
00147 
00149     // Disk usage calcualtion
00151   private:
00152 
00153     PkgDuMaster _du_master;
00154 
00155   public:
00156 
00157     typedef PkgDuMaster::MountPoint MountPoint;
00158 
00162     void setMountPoints( const std::set<MountPoint> & mountpoints_r ) {
00163       _du_master.setMountPoints( mountpoints_r );
00164     }
00165 
00176     const PkgDuMaster & getDu();
00177 
00187     const PkgDuMaster & updateDu();
00188 
00189 
00193     PkgDuMaster & countDuInstalled( PkgDuMaster & dudata ) const;
00194 
00198     PkgDuMaster & countDuCandidates( PkgDuMaster & dudata ) const;
00199 
00203     PkgDuMaster & countDuSelected( PkgDuMaster & dudata ) const;
00204 
00205 };
00206 
00208 
00209 #endif // PMPackageManager_h

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