00001
00002
00003
00004
00005
00006
00007
00008
00012 #include <iostream>
00013
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
00042
00043
00044 ResStatus::ResStatus()
00045 {}
00046
00048
00049
00050
00051
00052 ResStatus::ResStatus( bool isInstalled_r )
00053 : _bitfield( isInstalled_r ? INSTALLED : UNINSTALLED )
00054 {}
00055
00057
00058
00059
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
00083
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 }