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