00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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
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
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 }
00085
00086 #endif // MediaCallbacks_h