libzypp 8.13.6
|
00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00013 #include "zypp/target/TargetCallbackReceiver.h" 00014 00015 #include "zypp/target/rpm/RpmCallbacks.h" 00016 00018 namespace zypp 00019 { 00020 00021 namespace target 00022 { 00023 00024 RpmInstallPackageReceiver::RpmInstallPackageReceiver (Resolvable::constPtr res) 00025 : callback::ReceiveReport<rpm::RpmInstallReport> () 00026 , _resolvable (res) 00027 , _level( target::rpm::InstallResolvableReport::RPM ) 00028 , _abort (false) 00029 { 00030 } 00031 00032 RpmInstallPackageReceiver::~RpmInstallPackageReceiver () 00033 { 00034 } 00035 00036 void RpmInstallPackageReceiver::reportbegin() 00037 { 00038 } 00039 00040 void RpmInstallPackageReceiver::reportend() 00041 { 00042 } 00043 00045 void RpmInstallPackageReceiver::start( const Pathname & name ) 00046 { 00047 _report->start( _resolvable ); 00048 _abort = false; 00049 } 00050 00055 bool RpmInstallPackageReceiver::progress( unsigned percent ) 00056 { 00057 _abort = ! _report->progress( percent, _resolvable ); 00058 return _abort; 00059 } 00060 00061 rpm::RpmInstallReport::Action 00062 RpmInstallPackageReceiver::problem( Exception & excpt_r ) 00063 { 00064 rpm::InstallResolvableReport::Action user = 00065 _report->problem( _resolvable 00066 , rpm::InstallResolvableReport::INVALID 00067 , excpt_r.asUserHistory() 00068 , _level 00069 ); 00070 00071 switch (user) { 00072 case rpm::InstallResolvableReport::RETRY: 00073 return rpm::RpmInstallReport::RETRY; 00074 case rpm::InstallResolvableReport::ABORT: 00075 _abort = true; 00076 return rpm::RpmInstallReport::ABORT; 00077 case rpm::InstallResolvableReport::IGNORE: 00078 return rpm::RpmInstallReport::IGNORE; 00079 } 00080 00081 return rpm::RpmInstallReport::problem( excpt_r ); 00082 } 00083 00084 void RpmInstallPackageReceiver::finishInfo( const std::string & info_r ) 00085 { 00086 _finishInfo = info_r; 00087 } 00088 00090 void RpmInstallPackageReceiver::finish() 00091 { 00092 _report->finish( _resolvable, rpm::InstallResolvableReport::NO_ERROR, _finishInfo, _level ); 00093 } 00094 00096 void RpmInstallPackageReceiver::finish( Exception & excpt_r ) 00097 { 00098 _report->finish( _resolvable, rpm::InstallResolvableReport::INVALID, std::string(), _level ); 00099 } 00100 00101 void RpmInstallPackageReceiver::tryLevel( target::rpm::InstallResolvableReport::RpmLevel level_r ) 00102 { 00103 _level = level_r; 00104 } 00105 00106 00110 00111 RpmRemovePackageReceiver::RpmRemovePackageReceiver (Resolvable::constPtr res) 00112 : callback::ReceiveReport<rpm::RpmRemoveReport> () 00113 , _resolvable (res) 00114 , _abort(false) 00115 { 00116 } 00117 00118 RpmRemovePackageReceiver::~RpmRemovePackageReceiver () 00119 { 00120 } 00121 00122 void RpmRemovePackageReceiver::reportbegin() 00123 { 00124 } 00125 00126 void RpmRemovePackageReceiver::reportend() 00127 { 00128 } 00129 00131 void RpmRemovePackageReceiver::start( const std::string & name ) 00132 { 00133 _report->start( _resolvable ); 00134 _abort = false; 00135 } 00136 00141 bool RpmRemovePackageReceiver::progress( unsigned percent ) 00142 { 00143 _abort = ! _report->progress( percent, _resolvable ); 00144 return _abort; 00145 } 00146 00147 rpm::RpmRemoveReport::Action 00148 RpmRemovePackageReceiver::problem( Exception & excpt_r ) 00149 { 00150 rpm::RemoveResolvableReport::Action user = 00151 _report->problem( _resolvable 00152 , rpm::RemoveResolvableReport::INVALID 00153 , excpt_r.asUserHistory() 00154 ); 00155 00156 switch (user) { 00157 case rpm::RemoveResolvableReport::RETRY: 00158 return rpm::RpmRemoveReport::RETRY; 00159 case rpm::RemoveResolvableReport::ABORT: 00160 _abort = true; 00161 return rpm::RpmRemoveReport::ABORT; 00162 case rpm::RemoveResolvableReport::IGNORE: 00163 return rpm::RpmRemoveReport::IGNORE; 00164 } 00165 00166 return rpm::RpmRemoveReport::problem( excpt_r ); 00167 } 00168 00169 void RpmRemovePackageReceiver::finishInfo( const std::string & info_r ) 00170 { 00171 _finishInfo = info_r; 00172 } 00173 00175 void RpmRemovePackageReceiver::finish() 00176 { 00177 _report->progress( 100, _resolvable ); 00178 _report->finish( _resolvable, rpm::RemoveResolvableReport::NO_ERROR, _finishInfo ); 00179 } 00180 00182 void RpmRemovePackageReceiver::finish( Exception & excpt_r ) 00183 { 00184 _report->finish( _resolvable, rpm::RemoveResolvableReport::INVALID, std::string() ); 00185 } 00186 00188 } // namespace target 00190 00192 } // namespace zypp