libzypp
10.5.0
|
00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00013 #include <iostream> 00014 #include "zypp/base/LogTools.h" 00015 00016 #include "zypp/ZYppCommitResult.h" 00017 00019 namespace zypp 00020 { 00021 00023 // 00024 // CLASS NAME : ZYppCommitResult::Impl 00025 // 00027 00028 class ZYppCommitResult::Impl 00029 { 00030 public: 00031 Impl() 00032 {} 00033 00034 public: 00035 Pathname _root; 00036 sat::Transaction _transaction; 00037 TransactionStepList _transactionStepList; 00038 UpdateNotifications _updateMessages; 00039 00040 private: 00041 friend Impl * rwcowClone<Impl>( const Impl * rhs ); 00043 Impl * clone() const { return new Impl( *this ); } 00044 }; 00045 00047 // 00048 // CLASS NAME : ZYppCommitResult 00049 // 00051 00052 ZYppCommitResult::ZYppCommitResult() 00053 : _result(0), _pimpl( new Impl ) 00054 {} 00055 00056 ZYppCommitResult::ZYppCommitResult( const ZYppCommitResult & lhs_r ) 00057 : _result(0) 00058 , _errors( lhs_r._errors ) 00059 , _remaining( lhs_r._remaining ) 00060 , _srcremaining( lhs_r._srcremaining ) 00061 , _pimpl( lhs_r._pimpl ) 00062 {} 00063 00064 ZYppCommitResult::ZYppCommitResult( const Pathname & root_r ) 00065 : _result(0), _pimpl( new Impl ) 00066 { _pimpl->_root = root_r; } 00067 00068 ZYppCommitResult::~ZYppCommitResult() 00069 {} 00070 00071 const Pathname & ZYppCommitResult::root() const 00072 { return _pimpl->_root; } 00073 00074 const sat::Transaction & ZYppCommitResult::transaction() const 00075 { return _pimpl->_transaction; } 00076 00077 sat::Transaction & ZYppCommitResult::rTransaction() 00078 { return _pimpl->_transaction; } 00079 00080 const ZYppCommitResult::TransactionStepList & ZYppCommitResult::transactionStepList() const 00081 { return _pimpl->_transactionStepList; } 00082 00083 ZYppCommitResult::TransactionStepList & ZYppCommitResult::rTransactionStepList() 00084 { return _pimpl->_transactionStepList; } 00085 00086 const UpdateNotifications & ZYppCommitResult::updateMessages() const 00087 { return _pimpl->_updateMessages; } 00088 00089 UpdateNotifications & ZYppCommitResult::rUpdateMessages() 00090 { return _pimpl->_updateMessages; } 00091 00093 00094 std::ostream & operator<<( std::ostream & str, const ZYppCommitResult & obj ) 00095 { 00096 DefaultIntegral<unsigned,0> result[4]; 00097 for_( it, obj.transaction().actionBegin(), obj.transaction().actionEnd() ) 00098 { 00099 ++result[0]; 00100 switch ( it->stepStage() ) 00101 { 00102 case sat::Transaction::STEP_DONE : ++result[1]; break; 00103 case sat::Transaction::STEP_ERROR : ++result[2]; break; 00104 case sat::Transaction::STEP_TODO : ++result[3]; break; 00105 } 00106 } 00107 str << "CommitResult " 00108 << " (total " << result[0] 00109 << ", done " << result[1] 00110 << ", error " << result[2] 00111 << ", skipped " << result[3] 00112 << ", updateMessages " << obj.updateMessages().size() 00113 << ")"; 00114 return str; 00115 } 00116 00118 } // namespace zypp