ResStatus.cc

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00012 #include <iostream>
00013 //#include "zypp/base/Logger.h"
00014 
00015 #include "zypp/ResStatus.h"
00016 
00017 using std::endl;
00018 
00020 namespace zypp
00021 { 
00022 
00023   const ResStatus ResStatus::toBeInstalled               (UNINSTALLED, UNDETERMINED, TRANSACT);
00024   const ResStatus ResStatus::toBeInstalledSoft           (UNINSTALLED, UNDETERMINED, TRANSACT, SOFT_INSTALL);
00025   const ResStatus ResStatus::toBeUninstalled             (INSTALLED,   UNDETERMINED, TRANSACT);
00026   const ResStatus ResStatus::impossible                  (UNINSTALLED, UNDETERMINED, KEEP_STATE, EXPLICIT_INSTALL, EXPLICIT_REMOVE, IMPOSSIBLE);
00027   const ResStatus ResStatus::toBeUninstalledSoft         (INSTALLED,   UNDETERMINED, TRANSACT, EXPLICIT_INSTALL, SOFT_REMOVE);
00028   const ResStatus ResStatus::toBeUninstalledDueToUnlink  (INSTALLED,   UNDETERMINED, TRANSACT, EXPLICIT_INSTALL, DUE_TO_UNLINK);
00029   const ResStatus ResStatus::toBeUninstalledDueToObsolete(INSTALLED,   UNDETERMINED, TRANSACT, EXPLICIT_INSTALL, DUE_TO_OBSOLETE);
00030   const ResStatus ResStatus::toBeUninstalledDueToUpgrade (INSTALLED,   UNDETERMINED, TRANSACT, EXPLICIT_INSTALL, DUE_TO_UPGRADE);
00031   const ResStatus ResStatus::installed                   (INSTALLED,   UNDETERMINED);
00032   const ResStatus ResStatus::uninstalled                 (UNINSTALLED, UNDETERMINED);
00033   const ResStatus ResStatus::incomplete                  (INSTALLED,   INCOMPLETE);
00034   const ResStatus ResStatus::complete                    (INSTALLED,   SATISFIED);
00035   const ResStatus ResStatus::satisfied                   (UNINSTALLED, SATISFIED);
00036   const ResStatus ResStatus::unneeded                    (UNINSTALLED, UNNEEDED);
00037   const ResStatus ResStatus::needed                      (UNINSTALLED, INCOMPLETE);
00038 
00040   //
00041   //    METHOD NAME : ResStatus::ResStatus
00042   //    METHOD TYPE : Ctor
00043   //
00044   ResStatus::ResStatus()
00045   {}
00046 
00048   //
00049   //    METHOD NAME : ResStatus::ResStatus
00050   //    METHOD TYPE : Ctor
00051   //
00052   ResStatus::ResStatus( bool isInstalled_r )
00053   : _bitfield( isInstalled_r ? INSTALLED : UNINSTALLED )
00054   {}
00055 
00057   //
00058   //    METHOD NAME : ResStatus::~ResStatus
00059   //    METHOD TYPE : Dtor
00060   //
00061   ResStatus::~ResStatus()
00062   {}
00063 
00064 
00065   ResStatus::ResStatus (enum StateValue s, enum EstablishValue e, enum TransactValue t, enum InstallDetailValue i, enum RemoveDetailValue r, enum SolverStateValue ssv)
00066     : _bitfield (s)
00067   {
00068     fieldValueAssign<EstablishField>(e);
00069     fieldValueAssign<TransactField>(t);
00070     if (t == TRANSACT) {
00071         if (s == INSTALLED) fieldValueAssign<TransactDetailField>(r);
00072         else fieldValueAssign<TransactDetailField>(i);
00073     }
00074     if (ssv != NORMAL) {
00075         fieldValueAssign<SolverStateField>(ssv);
00076     }
00077   }
00078 
00079 
00080   /******************************************************************
00081   **
00082   **    FUNCTION NAME : operator<<
00083   **    FUNCTION TYPE : std::ostream &
00084   */
00085   std::ostream & operator<<( std::ostream & str, const ResStatus & obj )
00086   {
00087     str << (obj.isInstalled() ? "I" : "U");
00088 
00089     str << (obj.isEstablishedUneeded() ? "U" :
00090         ( obj.isEstablishedSatisfied() ? "S" :
00091         ( obj.isEstablishedIncomplete() ? "I" : "_") ) );
00092 
00093     str << (obj.transacts () ? "T"
00094                              : (obj.isLocked() ? "L" : "_") );
00095 
00096     if (obj.isBySolver()) str << "s";
00097     else if (obj.isByApplLow()) str << "l";
00098     else if (obj.isByApplHigh()) str << "h";
00099     else if (obj.isByUser()) str << "u";
00100 
00101     str << (obj.isToBeUninstalledDueToObsolete() ? "O" :
00102         ( obj.isToBeUninstalledDueToUnlink() ? "L" :
00103         ( obj.isToBeUninstalledDueToUpgrade() ? "U" :
00104         ( obj.isToBeInstalledSoft() ? "S" : "_" ) ) ) );
00105 
00106     str << (obj.isSeen() ? "@" :
00107         ( obj.isImpossible() ? "X" : "" ) );
00108 
00109     return str;
00110   }
00111 
00113 } // namespace zypp

Generated on Thu Jul 6 00:07:22 2006 for zypp by  doxygen 1.4.6