ZYppCommitResult.cc
Go to the documentation of this file.00001
00002
00003
00004
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
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
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 }