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

ObjectStatStrategy.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:       ObjectStatStrategy.h
00014 
00015    Author:     Gabriele Strattner <gs@suse.de>
00016    Maintainer: Michael Andres <ma@suse.de>
00017 
00018    
00019 /-*/
00020 #ifndef ObjectStatStrategy_h
00021 #define ObjectStatStrategy_h
00022 
00023 #include  <y2pm/PMSelectable.h>
00024 
00025 //------------------------------------------------------------
00026 // Abstract base class for strategies to get status for packages or patches 
00027 //------------------------------------------------------------
00028 class ObjectStatStrategy
00029 {
00030 
00031 public:
00032     
00033     ObjectStatStrategy( );
00034     
00035     virtual ~ObjectStatStrategy() = 0; 
00036 
00043     virtual PMSelectable::UI_Status getPackageStatus ( PMObjectPtr objPtr );
00044 
00051     virtual bool setObjectStatus ( PMSelectable::UI_Status newstatus,
00052                                     PMObjectPtr objPtr
00053                                     );
00062     virtual bool keyToStatus( const int & key,
00063                               PMObjectPtr objPtr,
00064                               PMSelectable::UI_Status & newStat );
00065     
00071     virtual bool toggleStatus( PMObjectPtr objPtr,
00072                                 PMSelectable::UI_Status & newStat );
00073 };
00074 
00075 //------------------------------------------------------------
00076 // Class for strategies to handle status of packages
00077 //------------------------------------------------------------
00078 class PackageStatStrategy : public ObjectStatStrategy
00079 {
00080 public:
00081 
00082     PackageStatStrategy( );
00083     
00084     virtual ~PackageStatStrategy() {}
00085     
00086 };
00087 
00088 //------------------------------------------------------------
00089 // Class for strategies to handle dependencies
00090 //------------------------------------------------------------
00091 class DependencyStatStrategy : public ObjectStatStrategy
00092 {
00093 public:
00094 
00095     DependencyStatStrategy( );
00096     
00097     virtual ~DependencyStatStrategy() {}
00098     
00099 };
00100 
00101 //------------------------------------------------------------
00102 // Class for strategies of update
00103 //------------------------------------------------------------
00104 class UpdateStatStrategy : public ObjectStatStrategy
00105 {
00106 public:
00107 
00108     UpdateStatStrategy( );
00109     
00110     virtual ~UpdateStatStrategy() {}
00111     
00112 };
00113 
00114 //------------------------------------------------------------
00115 // Class for strategies to handle status of packages belonging to a patch
00116 //------------------------------------------------------------
00117 class PatchPkgStatStrategy : public ObjectStatStrategy
00118 {
00119 public:
00120 
00121     PatchPkgStatStrategy( );
00122     
00123     virtual ~PatchPkgStatStrategy() {}
00124 
00129     virtual bool setObjectStatus( PMSelectable::UI_Status newstatus, PMObjectPtr objPtr );
00130 
00131 };
00132 
00133     
00134 //------------------------------------------------------------
00135 // Class for strategies to handle status of patches
00136 //------------------------------------------------------------
00137 class PatchStatStrategy : public ObjectStatStrategy
00138 {
00139 public:
00140 
00141     PatchStatStrategy( );
00142     
00143     virtual ~PatchStatStrategy() {}
00144 
00153     virtual bool keyToStatus( const int & key,
00154                               PMObjectPtr objPtr,
00155                               PMSelectable::UI_Status & newStat );
00156     
00162     virtual bool toggleStatus( PMObjectPtr objPtr,
00163                                 PMSelectable::UI_Status & newStat );
00164 
00171     virtual bool setObjectStatus( PMSelectable::UI_Status newstatus, PMObjectPtr objPtr );
00172 };
00173 
00174 
00175 //------------------------------------------------------------
00176 // Class for strategies to handle status of available packages
00177 //------------------------------------------------------------
00178 class AvailableStatStrategy : public ObjectStatStrategy
00179 {
00180 public:
00181     
00182     AvailableStatStrategy( );
00183     
00184     virtual ~AvailableStatStrategy() {}
00185 
00193     virtual PMSelectable::UI_Status getPackageStatus ( PMObjectPtr  objPtr );
00194 
00202     virtual bool setObjectStatus( PMSelectable::UI_Status newstatus,
00203                                    PMObjectPtr objPtr );
00204 };
00205 
00206 #endif
00207 

Generated on Wed Sep 14 10:52:54 2005 for yast2-ncurses by  doxygen 1.4.4