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.asUserString()
00068 , _level
00069 );
00070
00071 switch (user) {
00072 case rpm::InstallResolvableReport::RETRY:
00073 return rpm::RpmInstallReport::RETRY;
00074 case rpm::InstallResolvableReport::ABORT:
00075 return rpm::RpmInstallReport::ABORT;
00076 case rpm::InstallResolvableReport::IGNORE:
00077 return rpm::RpmInstallReport::IGNORE;
00078 }
00079
00080 return rpm::RpmInstallReport::problem( excpt_r );
00081 }
00082
00084 void RpmInstallPackageReceiver::finish()
00085 {
00086 _report->finish( _resolvable, rpm::InstallResolvableReport::NO_ERROR, std::string(), _level );
00087 }
00088
00090 void RpmInstallPackageReceiver::finish( Exception & excpt_r )
00091 {
00092 _report->finish( _resolvable, rpm::InstallResolvableReport::INVALID, std::string(), _level );
00093 }
00094
00095 void RpmInstallPackageReceiver::tryLevel( target::rpm::InstallResolvableReport::RpmLevel level_r )
00096 {
00097 _level = level_r;
00098 }
00099
00100
00104
00105 RpmRemovePackageReceiver::RpmRemovePackageReceiver (Resolvable::constPtr res)
00106 : callback::ReceiveReport<rpm::RpmRemoveReport> ()
00107 , _resolvable (res)
00108 {
00109 }
00110
00111 RpmRemovePackageReceiver::~RpmRemovePackageReceiver ()
00112 {
00113 }
00114
00115 void RpmRemovePackageReceiver::reportbegin()
00116 {
00117 }
00118
00119 void RpmRemovePackageReceiver::reportend()
00120 {
00121 }
00122
00124 void RpmRemovePackageReceiver::start( const std::string & name )
00125 {
00126 _report->start( _resolvable );
00127 }
00128
00133 bool RpmRemovePackageReceiver::progress( unsigned percent )
00134 {
00135 return _report->progress( percent, _resolvable );
00136 }
00137
00138 rpm::RpmRemoveReport::Action
00139 RpmRemovePackageReceiver::problem( Exception & excpt_r )
00140 {
00141 rpm::RemoveResolvableReport::Action user =
00142 _report->problem( _resolvable
00143 , rpm::RemoveResolvableReport::INVALID
00144 , excpt_r.asUserString()
00145 );
00146
00147 switch (user) {
00148 case rpm::RemoveResolvableReport::RETRY:
00149 return rpm::RpmRemoveReport::RETRY;
00150 case rpm::RemoveResolvableReport::ABORT:
00151 return rpm::RpmRemoveReport::ABORT;
00152 case rpm::RemoveResolvableReport::IGNORE:
00153 return rpm::RpmRemoveReport::IGNORE;
00154 }
00155
00156 return rpm::RpmRemoveReport::problem( excpt_r );
00157 }
00158
00160 void RpmRemovePackageReceiver::finish()
00161 {
00162 _report->finish( _resolvable, rpm::RemoveResolvableReport::NO_ERROR, std::string() );
00163 }
00164
00166 void RpmRemovePackageReceiver::finish( Exception & excpt_r )
00167 {
00168 _report->finish( _resolvable, rpm::RemoveResolvableReport::INVALID, std::string() );
00169 }
00170
00172 }
00174
00176 }