1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/ResStatus.cc
13 //#include "zypp/base/Logger.h"
15 #include "zypp/ResStatus.h"
19 ///////////////////////////////////////////////////////////////////
21 { /////////////////////////////////////////////////////////////////
23 const ResStatus ResStatus::toBeInstalled (UNINSTALLED, UNDETERMINED, TRANSACT);
24 const ResStatus ResStatus::toBeUninstalled (INSTALLED, UNDETERMINED, TRANSACT);
25 const ResStatus ResStatus::toBeUninstalledDueToUpgrade (INSTALLED, UNDETERMINED, TRANSACT, EXPLICIT_INSTALL, DUE_TO_UPGRADE);
26 const ResStatus ResStatus::toBeUninstalledDueToObsolete(INSTALLED, UNDETERMINED, TRANSACT, EXPLICIT_INSTALL, DUE_TO_OBSOLETE);
28 ///////////////////////////////////////////////////////////////////
30 // METHOD NAME : ResStatus::ResStatus
33 ResStatus::ResStatus()
36 ///////////////////////////////////////////////////////////////////
38 // METHOD NAME : ResStatus::ResStatus
41 ResStatus::ResStatus( bool isInstalled_r )
42 : _bitfield( isInstalled_r ? INSTALLED : UNINSTALLED )
45 ///////////////////////////////////////////////////////////////////
47 // METHOD NAME : ResStatus::~ResStatus
50 ResStatus::~ResStatus()
54 ResStatus::ResStatus (enum StateValue s, enum ValidateValue v, enum TransactValue t, enum InstallDetailValue i, enum RemoveDetailValue r)
57 fieldValueAssign<ValidateField>(v);
58 fieldValueAssign<TransactField>(t);
60 if (s == INSTALLED) fieldValueAssign<TransactDetailField>(r);
61 else fieldValueAssign<TransactDetailField>(i);
67 // NOTE: Strings defined here are written to the history file
68 // and used by zypper. Do not change them!
69 static const char* strBROKEN = "needed";
70 static const char* strSATISFIED = "applied";
71 static const char* strNONRELEVANT = "not-needed";
72 static const char* strUNDETERMINED = "undetermined";
75 std::string ResStatus::validateValueAsString( ValidateValue val_r )
77 const char* ret = strUNDETERMINED;
80 case BROKEN: ret = strBROKEN; break;
81 case SATISFIED: ret = strSATISFIED; break;
82 case NONRELEVANT: ret = strNONRELEVANT; break;
83 case UNDETERMINED:break;// to avoid default:
88 ResStatus::ValidateValue ResStatus::stringToValidateValue( const std::string & str_r )
90 ValidateValue ret = UNDETERMINED;
91 if ( str_r == strBROKEN ) ret = BROKEN;
92 else if ( str_r == strSATISFIED ) ret = SATISFIED;
93 else if ( str_r == strNONRELEVANT ) ret = NONRELEVANT;
97 /******************************************************************
99 ** FUNCTION NAME : operator<<
100 ** FUNCTION TYPE : std::ostream &
102 std::ostream & operator<<( std::ostream & str, const ResStatus & obj )
104 str << (obj.isInstalled() ? "I" : "U");
106 str << (obj.isBroken() ? "B" :
107 ( obj.isSatisfied() ? "S" :
108 ( obj.isNonRelevant() ? "N" : "_") ) );
110 str << (obj.transacts () ? "T"
111 : (obj.isLocked() ? "L" : "_") );
113 if (obj.isBySolver()) str << "s";
114 else if (obj.isByApplLow()) str << "l";
115 else if (obj.isByApplHigh()) str << "h";
116 else if (obj.isByUser()) str << "u";
118 str << (obj.isToBeUninstalledDueToObsolete() ? "O" :
119 ( obj.isToBeUninstalledDueToUpgrade() ? "U" :
120 ( obj.isToBeInstalledSoft() ? "S" : "_" ) ) );
122 str << (obj.isRecommended() ? "r" : "" );
123 str << (obj.isSuggested() ? "s" : "" );
124 str << (obj.isOrphaned() ? "o" : "" );
125 str << (obj.isUnneeded() ? "u" : "" );
131 #define OUTS(X) case ResStatus::X: return str << #X; break
133 std::ostream & operator<<( std::ostream & str, ResStatus::TransactValue obj )
144 std::ostream & operator<<( std::ostream & str, ResStatus::TransactByValue obj )
156 /////////////////////////////////////////////////////////////////
158 ///////////////////////////////////////////////////////////////////