1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/ZYppCommitResult.cc
14 #include "zypp/base/LogTools.h"
16 #include "zypp/ZYppCommitResult.h"
18 ///////////////////////////////////////////////////////////////////
20 { /////////////////////////////////////////////////////////////////
22 ///////////////////////////////////////////////////////////////////
24 // CLASS NAME : ZYppCommitResult::Impl
26 ///////////////////////////////////////////////////////////////////
28 class ZYppCommitResult::Impl
36 sat::Transaction _transaction;
37 TransactionStepList _transactionStepList;
38 UpdateNotifications _updateMessages;
41 friend Impl * rwcowClone<Impl>( const Impl * rhs );
42 /** clone for RWCOW_pointer */
43 Impl * clone() const { return new Impl( *this ); }
46 ///////////////////////////////////////////////////////////////////
48 // CLASS NAME : ZYppCommitResult
50 ///////////////////////////////////////////////////////////////////
52 ZYppCommitResult::ZYppCommitResult()
53 : _result(0), _pimpl( new Impl )
56 ZYppCommitResult::ZYppCommitResult( const Pathname & root_r )
57 : _result(0), _pimpl( new Impl )
58 { _pimpl->_root = root_r; }
60 const Pathname & ZYppCommitResult::root() const
61 { return _pimpl->_root; }
63 const sat::Transaction & ZYppCommitResult::transaction() const
64 { return _pimpl->_transaction; }
66 sat::Transaction & ZYppCommitResult::rTransaction()
67 { return _pimpl->_transaction; }
69 const ZYppCommitResult::TransactionStepList & ZYppCommitResult::transactionStepList() const
70 { return _pimpl->_transactionStepList; }
72 ZYppCommitResult::TransactionStepList & ZYppCommitResult::rTransactionStepList()
73 { return _pimpl->_transactionStepList; }
75 const UpdateNotifications & ZYppCommitResult::updateMessages() const
76 { return _pimpl->_updateMessages; }
78 UpdateNotifications & ZYppCommitResult::rUpdateMessages()
79 { return _pimpl->_updateMessages; }
81 ZYppCommitResult::InsDelCnt ZYppCommitResult::totalCount() const
84 for_( it, _pimpl->_transaction.actionBegin(), _pimpl->_transaction.actionEnd() )
86 ++( it->stepType() == sat::Transaction::TRANSACTION_ERASE ? ret.second : ret.first );
92 ZYppCommitResult::InsDelCnt ZYppCommitResult::stepStageCount( sat::Transaction::StepStage stage_r ) const
95 for_( it, _pimpl->_transaction.actionBegin(), _pimpl->_transaction.actionEnd() )
97 if ( it->stepStage() != stage_r )
99 ++( it->stepType() == sat::Transaction::TRANSACTION_ERASE ? ret.second : ret.first );
104 void ZYppCommitResult::resultCount( InsDelCnt & total_r, InsDelCnt & done_r, InsDelCnt & error_r, InsDelCnt & skipped_r ) const
106 total_r = done_r = error_r = skipped_r = InsDelCnt();
107 for_( it, _pimpl->_transaction.actionBegin(), _pimpl->_transaction.actionEnd() )
109 ++( it->stepType() == sat::Transaction::TRANSACTION_ERASE ? total_r.second : total_r.first );
110 switch ( it->stepStage() )
112 case sat::Transaction::STEP_DONE:
113 ++( it->stepType() == sat::Transaction::TRANSACTION_ERASE ? done_r.second : done_r.first );
115 case sat::Transaction::STEP_ERROR:
116 ++( it->stepType() == sat::Transaction::TRANSACTION_ERASE ? error_r.second : error_r.first );
118 case sat::Transaction::STEP_TODO:
119 ++( it->stepType() == sat::Transaction::TRANSACTION_ERASE ? skipped_r.second : skipped_r.first );
125 ///////////////////////////////////////////////////////////////////
127 std::ostream & operator<<( std::ostream & str, const ZYppCommitResult::InsDelCnt & obj )
128 { return str << obj.first << '/' << obj.second; }
130 std::ostream & operator<<( std::ostream & str, const ZYppCommitResult & obj )
132 ZYppCommitResult::InsDelCnt result[4];
133 obj.resultCount( result[0], result[1], result[2], result[3] );
135 str << "CommitResult "
136 << " (ins/del total " << result[0]
137 << ", done " << result[1]
138 << ", error " << result[2]
139 << ", skipped " << result[3]
140 << ", updateMessages " << obj.updateMessages().size()
142 << std::endl << obj.transaction();
146 /////////////////////////////////////////////////////////////////
148 ///////////////////////////////////////////////////////////////////