libzypp 9.41.1
|
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 Pathname & root_r ) 00057 : _result(0), _pimpl( new Impl ) 00058 { _pimpl->_root = root_r; } 00059 00060 const Pathname & ZYppCommitResult::root() const 00061 { return _pimpl->_root; } 00062 00063 const sat::Transaction & ZYppCommitResult::transaction() const 00064 { return _pimpl->_transaction; } 00065 00066 sat::Transaction & ZYppCommitResult::rTransaction() 00067 { return _pimpl->_transaction; } 00068 00069 const ZYppCommitResult::TransactionStepList & ZYppCommitResult::transactionStepList() const 00070 { return _pimpl->_transactionStepList; } 00071 00072 ZYppCommitResult::TransactionStepList & ZYppCommitResult::rTransactionStepList() 00073 { return _pimpl->_transactionStepList; } 00074 00075 const UpdateNotifications & ZYppCommitResult::updateMessages() const 00076 { return _pimpl->_updateMessages; } 00077 00078 UpdateNotifications & ZYppCommitResult::rUpdateMessages() 00079 { return _pimpl->_updateMessages; } 00080 00082 00083 std::ostream & operator<<( std::ostream & str, const ZYppCommitResult & obj ) 00084 { 00085 DefaultIntegral<unsigned,0> result[4]; 00086 for_( it, obj.transaction().actionBegin(), obj.transaction().actionEnd() ) 00087 { 00088 ++result[0]; 00089 switch ( it->stepStage() ) 00090 { 00091 case sat::Transaction::STEP_DONE : ++result[1]; break; 00092 case sat::Transaction::STEP_ERROR : ++result[2]; break; 00093 case sat::Transaction::STEP_TODO : ++result[3]; break; 00094 } 00095 } 00096 str << "CommitResult " 00097 << " (total " << result[0] 00098 << ", done " << result[1] 00099 << ", error " << result[2] 00100 << ", skipped " << result[3] 00101 << ", updateMessages " << obj.updateMessages().size() 00102 << ")"; 00103 return str; 00104 } 00105 00107 } // namespace zypp