/
ZYppCommitResult.cc
119 lines (97 loc) · 3.75 KB
/
ZYppCommitResult.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/*---------------------------------------------------------------------\
| ____ _ __ __ ___ |
| |__ / \ / / . \ . \ |
| / / \ V /| _/ _/ |
| / /__ | | | | | | |
| /_____||_| |_| |_| |
| |
\---------------------------------------------------------------------*/
/** \file zypp/ZYppCommitResult.cc
*
*/
#include <iostream>
#include "zypp/base/LogTools.h"
#include "zypp/ZYppCommitResult.h"
///////////////////////////////////////////////////////////////////
namespace zypp
{ /////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
//
// CLASS NAME : ZYppCommitResult::Impl
//
///////////////////////////////////////////////////////////////////
class ZYppCommitResult::Impl
{
public:
Impl()
{}
public:
Pathname _root;
sat::Transaction _transaction;
TransactionStepList _transactionStepList;
UpdateNotifications _updateMessages;
private:
friend Impl * rwcowClone<Impl>( const Impl * rhs );
/** clone for RWCOW_pointer */
Impl * clone() const { return new Impl( *this ); }
};
///////////////////////////////////////////////////////////////////
//
// CLASS NAME : ZYppCommitResult
//
///////////////////////////////////////////////////////////////////
ZYppCommitResult::ZYppCommitResult()
: _result(0), _pimpl( new Impl )
{}
ZYppCommitResult::ZYppCommitResult( const ZYppCommitResult & lhs_r )
: _result(0)
, _errors( lhs_r._errors )
, _remaining( lhs_r._remaining )
, _srcremaining( lhs_r._srcremaining )
, _pimpl( lhs_r._pimpl )
{}
ZYppCommitResult::ZYppCommitResult( const Pathname & root_r )
: _result(0), _pimpl( new Impl )
{ _pimpl->_root = root_r; }
ZYppCommitResult::~ZYppCommitResult()
{}
const Pathname & ZYppCommitResult::root() const
{ return _pimpl->_root; }
const sat::Transaction & ZYppCommitResult::transaction() const
{ return _pimpl->_transaction; }
sat::Transaction & ZYppCommitResult::rTransaction()
{ return _pimpl->_transaction; }
const ZYppCommitResult::TransactionStepList & ZYppCommitResult::transactionStepList() const
{ return _pimpl->_transactionStepList; }
ZYppCommitResult::TransactionStepList & ZYppCommitResult::rTransactionStepList()
{ return _pimpl->_transactionStepList; }
const UpdateNotifications & ZYppCommitResult::updateMessages() const
{ return _pimpl->_updateMessages; }
UpdateNotifications & ZYppCommitResult::rUpdateMessages()
{ return _pimpl->_updateMessages; }
///////////////////////////////////////////////////////////////////
std::ostream & operator<<( std::ostream & str, const ZYppCommitResult & obj )
{
DefaultIntegral<unsigned,0> result[4];
for_( it, obj.transaction().actionBegin(), obj.transaction().actionEnd() )
{
++result[0];
switch ( it->stepStage() )
{
case sat::Transaction::STEP_DONE : ++result[1]; break;
case sat::Transaction::STEP_ERROR : ++result[2]; break;
case sat::Transaction::STEP_TODO : ++result[3]; break;
}
}
str << "CommitResult "
<< " (total " << result[0]
<< ", done " << result[1]
<< ", error " << result[2]
<< ", skipped " << result[3]
<< ", updateMessages " << obj.updateMessages().size()
<< ")";
return str;
}
/////////////////////////////////////////////////////////////////
} // namespace zypp
///////////////////////////////////////////////////////////////////