00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | (C) SuSE GmbH | 00011 \----------------------------------------------------------------------/ 00012 00013 File: MediaCallbacks.h 00014 00015 Author: Michael Andres <ma@suse.de> 00016 Maintainer: Michael Andres <ma@suse.de> 00017 00018 Purpose: Callbacks triggered by Media 00019 00020 /-*/ 00021 #ifndef MediaCallbacks_h 00022 #define MediaCallbacks_h 00023 00024 #include <iosfwd> 00025 00026 #include <y2util/Url.h> 00027 00028 #include <y2pm/PMCallbacks.h> 00029 00031 namespace MediaCallbacks { 00033 00035 // Reporting progress of download 00037 struct DownloadProgressCallback : public RedirectCallback<DownloadProgressCallback> { 00038 virtual void start( const Url & url_r, const Pathname & localpath_r ) = 0; 00039 virtual void progress( const ProgressData & prg ) = 0; 00040 virtual void stop( PMError error ) = 0; 00041 }; 00042 00043 class DownloadProgressReport : public Report<DownloadProgressCallback> { 00044 virtual void start( const Url & url_r, const Pathname & localpath_r ) { 00045 DownloadProgressCallback::start( url_r, localpath_r ); 00046 } 00047 virtual void progress( const ProgressData & prg ) { 00048 DownloadProgressCallback::progress( prg ); 00049 } 00050 virtual void stop( PMError error ) { 00051 DownloadProgressCallback::stop( error ); 00052 } 00053 }; 00054 00055 extern DownloadProgressReport downloadProgressReport; 00056 00057 #if 0 00058 00059 // Reporting @ 00061 struct @Callback : public RedirectCallback<@Callback> { 00062 virtual void start() = 0; 00063 virtual void progress( const ProgressData & prg ) = 0; 00064 virtual void stop( PMError error ) = 0; 00065 }; 00066 00067 class @Report : public Report<@Callback> { 00068 virtual void start() { 00069 @Callback::start(); 00070 } 00071 virtual void progress( const ProgressData & prg ) { 00072 @Callback::progress( prg ); 00073 } 00074 virtual void stop( PMError error ) { 00075 @Callback::stop( error ); 00076 } 00077 }; 00078 00079 extern @Report @Report; 00080 #endif 00081 00083 } // namespace MediaCallbacks 00085 00086 #endif // MediaCallbacks_h
1.4.4