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

PMPackageDataProvider.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:       PMPackageDataProvider.h
00014 
00015   Author:     Michael Andres <ma@suse.de>
00016   Maintainer: Michael Andres <ma@suse.de>
00017 
00018   Purpose: Common interface to be realized by all PackageDataProvider.
00019 
00020 /-*/
00021 #ifndef PMPackageDataProvider_h
00022 #define PMPackageDataProvider_h
00023 
00024 #include <iosfwd>
00025 #include <string>
00026 
00027 #include <y2util/Date.h>
00028 #include <y2util/FSize.h>
00029 #include <y2util/Vendor.h>
00030 #include <y2util/Pathname.h>
00031 #include <y2util/YRpmGroupsTree.h>
00032 
00033 #include <y2pm/PkgSplit.h>
00034 
00035 #include <y2pm/PMError.h>
00036 #include <y2pm/PMPackageDataProviderPtr.h>
00037 #include <y2pm/PMPackagePtr.h>
00038 #include <y2pm/InstSrcPtr.h>
00039 
00040 class PkgDu;
00041 
00043 //
00044 //      CLASS NAME : PMPackageDataProvider
00055 class PMPackageDataProvider : public CountedRep {
00056   REP_BODY(PMPackageDataProvider);
00057 
00058   public:
00059 
00061     // default for unprovided values
00063 
00064     // PMObject attributes
00065     static std::string            summary()     { return std::string(); }
00066     static std::list<std::string> description() { return std::list<std::string>(); }
00067     static std::list<std::string> insnotify()   { return std::list<std::string>(); }
00068     static std::list<std::string> delnotify()   { return std::list<std::string>(); }
00069     static FSize                  size()        { return FSize(0); }
00070     static bool                   providesSources() { return false; }
00071     static std::string            instSrcLabel()    { return std::string(); }
00072     static Vendor                 instSrcVendor()   { return Vendor(); }
00073     static unsigned               instSrcRank()     { return unsigned(-1); }
00074 
00075     // PMPackage attributes
00076     static PkgSplitSet            splitprovides() { return PkgSplitSet(); }
00077     static Date                   buildtime()   { return Date(0); }
00078     static std::string            buildhost()   { return std::string(); }
00079     static Date                   installtime() { return Date(0); }
00080     static std::string            distribution(){ return std::string(); }
00081     static Vendor                 vendor()      { return Vendor(); }
00082     static std::string            license()     { return std::string(); }
00083     static std::list<std::string> licenseToConfirm() { return std::list<std::string>(); }
00084     static std::string            packager()    { return std::string(); }
00085     static std::string            group()       { return std::string(); }
00086     static YStringTreeItem *      group_ptr()   { return 0; }
00087     static std::list<std::string> changelog()   { return std::list<std::string>(); }
00088     static std::string            url()         { return std::string(); }
00089     static std::string            os()          { return std::string(); }
00090     static std::list<std::string> prein()       { return std::list<std::string>(); }
00091     static std::list<std::string> postin()      { return std::list<std::string>(); }
00092     static std::list<std::string> preun()       { return std::list<std::string>(); }
00093     static std::list<std::string> postun()      { return std::list<std::string>(); }
00094     static std::string            sourceloc()   { return std::string(); }
00095     static FSize                  sourcesize()  { return FSize(0); }
00096     static FSize                  archivesize() { return FSize(0); }
00097     static std::list<std::string> authors()     { return std::list<std::string>(); }
00098     static std::list<std::string> filenames()   { return std::list<std::string>(); }
00099     // suse packages values
00100     static std::list<std::string> recommends()  { return std::list<std::string>(); }
00101     static std::list<std::string> suggests()    { return std::list<std::string>(); }
00102     static std::string            location()    { return std::string(); }
00103     static unsigned int           medianr()     { return 0; }
00104     static std::list<std::string> keywords()    { return std::list<std::string>(); }
00105     static std::string            externalUrl() { return std::string(); }
00106     static std::list<PkgEdition>  patchRpmBaseVersions() { return std::list<PkgEdition>(); }
00107     static FSize                  patchRpmSize() { return FSize( 0 ); }
00108     static bool                   forceInstall() { return false; }
00109 
00110     static bool isRemote()                      { return false; }
00111     // physical access to the rpm file.
00112     static PMError providePkgToInstall(Pathname& path_r) { path_r = Pathname(); return PMError::E_error; }
00113     // physical access to the src.rpm file.
00114     static PMError provideSrcPkgToInstall(Pathname& path_r) { path_r = Pathname(); return PMError::E_error; }
00115     // source for this package, needed for callbacks
00116     static constInstSrcPtr source()             { return constInstSrcPtr(0); }
00117 
00118     // Internally used by PMSelectable.
00119     static bool prefererCandidate() { return false; }
00120 
00121     // dudata is special
00122     static void du( PkgDu & dudata_r );
00123 
00124   protected:
00125 
00126     PMPackageDataProvider();
00127 
00128     virtual ~PMPackageDataProvider();
00129 
00133     PMPackagePtr mkPtr( const PMPackage & pkg_r ) const { return const_cast<PMPackage*>(&pkg_r); }
00134 
00135   public:
00136 
00138     // Overload values you can provide
00140 
00141     // PMObject attributes
00142     virtual std::string            summary     ( const PMPackage & pkg_r ) const { return summary(); }
00143     virtual std::list<std::string> description ( const PMPackage & pkg_r ) const { return description(); }
00144     virtual std::list<std::string> insnotify   ( const PMPackage & pkg_r ) const { return insnotify(); }
00145     virtual std::list<std::string> delnotify   ( const PMPackage & pkg_r ) const { return delnotify(); }
00146     virtual FSize                  size        ( const PMPackage & pkg_r ) const { return size(); }
00147     virtual bool                   providesSources( const PMPackage & pkg_r ) const { return providesSources(); }
00148     virtual std::string            instSrcLabel   ( const PMPackage & pkg_r ) const { return instSrcLabel(); }
00149     virtual Vendor                 instSrcVendor  ( const PMPackage & pkg_r ) const { return instSrcVendor(); }
00150     virtual unsigned               instSrcRank    ( const PMPackage & pkg_r ) const { return instSrcRank(); }
00151 
00152     // PMPackage attributes
00153     virtual PkgSplitSet            splitprovides( const PMPackage & pkg_r ) const { return splitprovides(); }
00154     virtual Date                   buildtime   ( const PMPackage & pkg_r ) const { return buildtime(); }
00155     virtual std::string            buildhost   ( const PMPackage & pkg_r ) const { return buildhost(); }
00156     virtual Date                   installtime ( const PMPackage & pkg_r ) const { return installtime(); }
00157     virtual std::string            distribution( const PMPackage & pkg_r ) const { return distribution(); }
00158     virtual Vendor                 vendor      ( const PMPackage & pkg_r ) const { return vendor(); }
00159     virtual std::string            license     ( const PMPackage & pkg_r ) const { return license(); }
00160     virtual std::list<std::string> licenseToConfirm( const PMPackage & pkg_r ) const { return licenseToConfirm(); }
00161     virtual std::string            packager    ( const PMPackage & pkg_r ) const { return packager(); }
00162     virtual std::string            group       ( const PMPackage & pkg_r ) const { return group(); }
00163     virtual YStringTreeItem *      group_ptr   ( const PMPackage & pkg_r ) const { return group_ptr(); }
00164     virtual std::list<std::string> changelog   ( const PMPackage & pkg_r ) const { return changelog(); }
00165     virtual std::string            url         ( const PMPackage & pkg_r ) const { return url(); }
00166     virtual std::string            os          ( const PMPackage & pkg_r ) const { return os(); }
00167     virtual std::list<std::string> prein       ( const PMPackage & pkg_r ) const { return prein(); }
00168     virtual std::list<std::string> postin      ( const PMPackage & pkg_r ) const { return postin(); }
00169     virtual std::list<std::string> preun       ( const PMPackage & pkg_r ) const { return preun(); }
00170     virtual std::list<std::string> postun      ( const PMPackage & pkg_r ) const { return postun(); }
00171     virtual std::string            sourceloc   ( const PMPackage & pkg_r ) const { return sourceloc(); }
00172     virtual FSize                  sourcesize  ( const PMPackage & pkg_r ) const { return sourcesize(); }
00173     virtual FSize                  archivesize ( const PMPackage & pkg_r ) const { return archivesize(); }
00174     virtual std::list<std::string> authors     ( const PMPackage & pkg_r ) const { return authors(); }
00175     virtual std::list<std::string> filenames   ( const PMPackage & pkg_r ) const { return filenames(); }
00176     // suse packages values
00177     virtual std::list<std::string> recommends  ( const PMPackage & pkg_r ) const { return recommends(); }
00178     virtual std::list<std::string> suggests    ( const PMPackage & pkg_r ) const { return suggests(); }
00179     virtual std::string            location    ( const PMPackage & pkg_r ) const { return location(); }
00180     virtual unsigned int           medianr     ( const PMPackage & pkg_r ) const { return medianr(); }
00181     virtual std::list<std::string> keywords    ( const PMPackage & pkg_r ) const { return keywords(); }
00182     virtual std::string            externalUrl ( const PMPackage & pkg_r ) const { return externalUrl(); }
00183     virtual std::list<PkgEdition>  patchRpmBaseVersions( const PMPackage & pkg_r ) const { return patchRpmBaseVersions(); }
00184     virtual FSize                  patchRpmSize( const PMPackage & pkg_r ) const { return patchRpmSize(); }
00185     virtual bool                   forceInstall( const PMPackage & pkg_r ) const { return forceInstall(); }
00186 
00187     virtual bool                   isRemote    ( const PMPackage & pkg_r ) const { return isRemote(); }
00188     // physical access to the rpm file.
00189     virtual PMError providePkgToInstall( const PMPackage & pkg_r, Pathname& path_r ) const { return providePkgToInstall(path_r); }
00190     // physical access to the src.rpm file.
00191     virtual PMError provideSrcPkgToInstall( const PMPackage & pkg_r, Pathname& path_r ) const { return provideSrcPkgToInstall(path_r); }
00192     // source for this package, needed for callbacks
00193     virtual constInstSrcPtr source( const PMPackage & pkg_r ) const { return source(); }
00194 
00195     // Internally used by PMSelectable.
00196     virtual bool prefererCandidate( const PMPackage & pkg_r ) const { return prefererCandidate(); }
00197 
00198     // dudata is special
00199     virtual void du( const PMPackage & pkg_r, PkgDu & dudata_r ) const { return du( dudata_r ); }
00200 };
00201 
00203 
00204 #endif // PMPackageDataProvider_h

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