Deprecate MediaAccess::downloads (accidentally deleted)
[platform/upstream/libzypp.git] / zypp / ResStatus.cc
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /** \file       zypp/ResStatus.cc
10  *
11 */
12 #include <iostream>
13 //#include "zypp/base/Logger.h"
14
15 #include "zypp/ResStatus.h"
16
17 using std::endl;
18
19 ///////////////////////////////////////////////////////////////////
20 namespace zypp
21 { /////////////////////////////////////////////////////////////////
22
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);
27
28   ///////////////////////////////////////////////////////////////////
29   //
30   //    METHOD NAME : ResStatus::ResStatus
31   //    METHOD TYPE : Ctor
32   //
33   ResStatus::ResStatus()
34   {}
35
36   ///////////////////////////////////////////////////////////////////
37   //
38   //    METHOD NAME : ResStatus::ResStatus
39   //    METHOD TYPE : Ctor
40   //
41   ResStatus::ResStatus( bool isInstalled_r )
42   : _bitfield( isInstalled_r ? INSTALLED : UNINSTALLED )
43   {}
44
45   ///////////////////////////////////////////////////////////////////
46   //
47   //    METHOD NAME : ResStatus::~ResStatus
48   //    METHOD TYPE : Dtor
49   //
50   ResStatus::~ResStatus()
51   {}
52
53
54   ResStatus::ResStatus (enum StateValue s, enum ValidateValue v, enum TransactValue t, enum InstallDetailValue i, enum RemoveDetailValue r, enum SolverStateValue ssv)
55     : _bitfield (s)
56   {
57     fieldValueAssign<ValidateField>(v);
58     fieldValueAssign<TransactField>(t);
59     if (t == TRANSACT) {
60         if (s == INSTALLED) fieldValueAssign<TransactDetailField>(r);
61         else fieldValueAssign<TransactDetailField>(i);
62     }
63     if (ssv != NORMAL) {
64         fieldValueAssign<SolverStateField>(ssv);
65     }
66   }
67
68
69   /******************************************************************
70   **
71   **    FUNCTION NAME : operator<<
72   **    FUNCTION TYPE : std::ostream &
73   */
74   std::ostream & operator<<( std::ostream & str, const ResStatus & obj )
75   {
76     str << (obj.isInstalled() ? "I" : "U");
77
78     str << (obj.isBroken() ? "B" :
79         ( obj.isSatisfied() ? "S" :
80         ( obj.isNonRelevant() ? "N" : "_") ) );
81
82     str << (obj.transacts () ? "T"
83                              : (obj.isLocked() ? "L" : "_") );
84
85     if (obj.isBySolver()) str << "s";
86     else if (obj.isByApplLow()) str << "l";
87     else if (obj.isByApplHigh()) str << "h";
88     else if (obj.isByUser()) str << "u";
89
90     str << (obj.isToBeUninstalledDueToObsolete() ? "O" :
91         ( obj.isToBeUninstalledDueToUpgrade() ? "U" :
92         ( obj.isToBeInstalledSoft() ? "S" : "_" ) ) );
93
94     str << (obj.isSeen() ? "@" : "" );
95
96     str << (obj.isRecommended() ? "r" : "" );
97
98     str << (obj.isSuggested() ? "s" : "" );
99
100     return str;
101   }
102
103
104 #define OUTS(X) case ResStatus::X: return str << #X; break
105
106   std::ostream & operator<<( std::ostream & str, ResStatus::TransactValue obj )
107   {
108     switch ( obj )
109     {
110       OUTS( KEEP_STATE );
111       OUTS( LOCKED );
112       OUTS( TRANSACT );
113     }
114     return str;
115   }
116
117   std::ostream & operator<<( std::ostream & str, ResStatus::TransactByValue obj )
118   {
119     switch ( obj )
120     {
121       OUTS( SOLVER );
122       OUTS( APPL_LOW );
123       OUTS( APPL_HIGH );
124       OUTS( USER );
125     }
126     return str;
127   }
128
129   /////////////////////////////////////////////////////////////////
130 } // namespace zypp
131 ///////////////////////////////////////////////////////////////////