Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

MediaCallbacks.h

Go to the documentation of this file.
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

Generated on Fri Nov 9 14:30:31 2007 for yast2-packagemanager by doxygen 1.3.6